fix: book search
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2026-03-22 17:21:16 -04:00
parent 4c1789fc16
commit 0704b5d650

View File

@@ -1,6 +1,7 @@
package search package search
import ( import (
"errors"
"fmt" "fmt"
"io" "io"
"net/url" "net/url"
@@ -9,14 +10,34 @@ import (
"github.com/PuerkitoBio/goquery" "github.com/PuerkitoBio/goquery"
) )
const ANNAS_ARCHIVE_SEARCH_URL = "https://%s/search?index=&q=%s&ext=epub&sort=&lang=en"
var annasArchiveDomains []string = []string{
"annas-archive.gl",
"annas-archive.pk",
"annas-archive.gd",
}
func searchAnnasArchive(query string) ([]SearchItem, error) { func searchAnnasArchive(query string) ([]SearchItem, error) {
searchURL := "https://annas-archive.li/search?index=&q=%s&ext=epub&sort=&lang=en" var allErrors []error
url := fmt.Sprintf(searchURL, url.QueryEscape(query))
body, err := getPage(url) for _, domain := range annasArchiveDomains {
if err != nil { url := fmt.Sprintf(ANNAS_ARCHIVE_SEARCH_URL, domain, url.QueryEscape(query))
return nil, err body, err := getPage(url)
if err != nil {
allErrors = append(allErrors, err)
continue
}
parsedItem, err := parseAnnasArchive(body)
if err != nil {
allErrors = append(allErrors, err)
continue
}
return parsedItem, nil
} }
return parseAnnasArchive(body)
return nil, fmt.Errorf("could not query annas-archive: %w", errors.Join(allErrors...))
} }
func parseAnnasArchive(body io.ReadCloser) ([]SearchItem, error) { func parseAnnasArchive(body io.ReadCloser) ([]SearchItem, error) {