Fix domain search when pattern looks like domain

When searching for "npr.org" and viewing the .org TLD, use the host part
("npr") for matching instead of the full pattern ("npr.org").

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
primal
2026-02-01 19:19:21 -05:00
parent 7011b126fe
commit 81146fd572
+19
View File
@@ -550,6 +550,15 @@ func (c *Crawler) handleAPIDomains(w http.ResponseWriter, r *http.Request) {
ORDER BY host ASC
LIMIT $4 OFFSET $5
`, tldFilter, status, strings.ToLower(searchQuery.Pattern), limit, offset)
} else if searchQuery.DomainHost != "" && strings.ToLower(searchQuery.DomainTLD) == strings.ToLower(tldFilter) {
// Domain-like search with matching TLD - search for exact host
rows, err = c.db.Query(`
SELECT host, tld, status, last_error, feeds_found
FROM domains
WHERE tld = $1 AND status = $2 AND LOWER(host) = $3
ORDER BY host ASC
LIMIT $4 OFFSET $5
`, tldFilter, status, strings.ToLower(searchQuery.DomainHost), limit, offset)
} else {
searchPattern := "%" + strings.ToLower(searchQuery.Pattern) + "%"
rows, err = c.db.Query(`
@@ -562,6 +571,7 @@ func (c *Crawler) handleAPIDomains(w http.ResponseWriter, r *http.Request) {
}
} else if tldFilter != "" && search != "" {
// Filter by TLD and search
// If search looks like a domain with matching TLD, use DomainHost for exact/pattern match
if searchQuery.ExactMatch {
rows, err = c.db.Query(`
SELECT host, tld, status, last_error, feeds_found
@@ -570,6 +580,15 @@ func (c *Crawler) handleAPIDomains(w http.ResponseWriter, r *http.Request) {
ORDER BY host ASC
LIMIT $3 OFFSET $4
`, tldFilter, strings.ToLower(searchQuery.Pattern), limit, offset)
} else if searchQuery.DomainHost != "" && strings.ToLower(searchQuery.DomainTLD) == strings.ToLower(tldFilter) {
// Domain-like search with matching TLD - search for exact host or pattern
rows, err = c.db.Query(`
SELECT host, tld, status, last_error, feeds_found
FROM domains
WHERE tld = $1 AND LOWER(host) = $2
ORDER BY host ASC
LIMIT $3 OFFSET $4
`, tldFilter, strings.ToLower(searchQuery.DomainHost), limit, offset)
} else {
searchPattern := "%" + strings.ToLower(searchQuery.Pattern) + "%"
rows, err = c.db.Query(`