diff --git a/proxychain/responsemodifers/generate_readable_outline.go b/proxychain/responsemodifers/generate_readable_outline.go index a73e963..05e29b1 100644 --- a/proxychain/responsemodifers/generate_readable_outline.go +++ b/proxychain/responsemodifers/generate_readable_outline.go @@ -69,12 +69,14 @@ func GenerateReadableOutline() proxychain.ResponseModification { "Success": true, "Image": extract.Metadata.Image, "Description": extract.Metadata.Description, + "Sitename": extract.Metadata.Sitename, "Hostname": extract.Metadata.Hostname, "Url": "/" + chain.Request.URL.String(), "Title": extract.Metadata.Title, // todo: modify CreateReadableDocument so we don't have

titles duplicated? "Date": extract.Metadata.Date.String(), - "Author": extract.Metadata.Author, - "Body": distilledHTML, + "Author": createWikipediaSearchLinks(extract.Metadata.Author), + //"Author": extract.Metadata.Author, + "Body": distilledHTML, } // ============================================================================ @@ -157,3 +159,34 @@ func rewriteHrefLinks(n *html.Node, baseURL string, apiPath string) { } recurse(n) } + +// createWikipediaSearchLinks takes in comma or semicolon separated terms, +// then turns them into links searching for the term. +func createWikipediaSearchLinks(searchTerms string) string { + semiColonSplit := strings.Split(searchTerms, ";") + + var links []string + for i, termGroup := range semiColonSplit { + commaSplit := strings.Split(termGroup, ",") + for _, term := range commaSplit { + trimmedTerm := strings.TrimSpace(term) + if trimmedTerm == "" { + continue + } + + encodedTerm := url.QueryEscape(trimmedTerm) + + wikiURL := fmt.Sprintf("https://en.wikipedia.org/w/index.php?search=%s", encodedTerm) + + link := fmt.Sprintf("%s", wikiURL, trimmedTerm) + links = append(links, link) + } + + // If it's not the last element in semiColonSplit, add a comma to the last link + if i < len(semiColonSplit)-1 { + links[len(links)-1] = links[len(links)-1] + "," + } + } + + return strings.Join(links, " ") +} diff --git a/proxychain/responsemodifers/generate_readable_outline.html b/proxychain/responsemodifers/generate_readable_outline.html index c849c9c..1057b59 100644 --- a/proxychain/responsemodifers/generate_readable_outline.html +++ b/proxychain/responsemodifers/generate_readable_outline.html @@ -31,8 +31,10 @@
+ + +
+