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:
@@ -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(`
|
||||
|
||||
Reference in New Issue
Block a user