fix: Remove duplicated results for all search engines and both modes

This commit is contained in:
Pachakutiq
2025-04-10 16:59:31 +08:00
parent 8099dae3ce
commit 6691ebaadd
7 changed files with 30 additions and 21 deletions
+3 -14
View File
@@ -132,6 +132,7 @@ func (gogl *Google) acceptCookies(page *rod.Page) {
btnElms[3].Click(proto.InputMouseButtonLeft, 1)
}
func (gogl *Google) Search(query core.Query) ([]core.SearchResult, error) {
logrus.Tracef("Start Google search, query: %+v", query)
@@ -281,23 +282,11 @@ func (gogl *Google) Search(query core.Query) ([]core.SearchResult, error) {
srchRes.URL = href.String()
}
// Skip if URL is empty or we've already seen this URL
// Skip if URL is empty
if srchRes.URL == "" {
continue
}
// Check for duplicates
isDuplicate := false
for _, existing := range searchResults {
if existing.URL == srchRes.URL {
isDuplicate = true
break
}
}
if isDuplicate {
continue
}
// Get description using multiple fallback strategies
desc := ""
if descTag, err := resEl.Element("div[data-sncf='1'] div"); err == nil {
@@ -337,7 +326,7 @@ func (gogl *Google) Search(query core.Query) ([]core.SearchResult, error) {
searchResults = append(searchResults, srchRes)
}
return searchResults, nil
return core.DeduplicateResults(searchResults), nil
}
func (gogl *Google) SearchImage(query core.Query) ([]core.SearchResult, error) {
+1 -1
View File
@@ -115,7 +115,7 @@ func googleResultParser(response *http.Response) ([]core.SearchResult, error) {
}
logrus.Tracef("Google search document size: %d", len(doc.Text()))
return results, err
return core.DeduplicateResults(results), err
}
func Search(query core.Query) ([]core.SearchResult, error) {