duckduckgo: fix parsing due to HTML change - frontends - front-ends for some sites (experiment)
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 7a1838d494e6bcfef16149a4423022d38356b0bc
(DIR) parent 07a5a89d2c8b3dab2fc85ff616e98d34b0edcd21
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Sun, 25 Oct 2020 13:34:44 +0100
duckduckgo: fix parsing due to HTML change
instead of looking at the prefix uddg= search for the needle, because the
prefix was changed to "//duckduckgo.com/l/?uddg=".
Diffstat:
M duckduckgo/duckduckgo.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
---
(DIR) diff --git a/duckduckgo/duckduckgo.c b/duckduckgo/duckduckgo.c
@@ -131,6 +131,8 @@ xmldataentity(XMLParser *x, const char *d, size_t dl)
void
xmltagend(XMLParser *x, const char *t, size_t tl, int isshort)
{
+ char *p;
+
if (!isresult)
return;
@@ -148,9 +150,9 @@ xmltagend(XMLParser *x, const char *t, size_t tl, int isshort)
isurl = 0;
if (!strcmp(t, "div")) {
/* decode url and remove "tracking"/usage part via DDG */
- if (!strncmp(result.url, "uddg=", sizeof("uddg=") - 1)) {
- if (decodeparam(result.urldecoded, sizeof(result.urldecoded),
- result.url + sizeof("uddg=") - 1) == -1)
+ if ((p = strstr(result.url, "uddg="))) {
+ p += sizeof("uddg=") - 1;
+ if (decodeparam(result.urldecoded, sizeof(result.urldecoded), p) == -1)
result.urldecoded[0] = '\0';
}