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
HTML 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';
}