summaryrefslogtreecommitdiff
path: root/internal/processing/search.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/processing/search.go')
-rw-r--r--internal/processing/search.go31
1 files changed, 13 insertions, 18 deletions
diff --git a/internal/processing/search.go b/internal/processing/search.go
index a73315396..fbcfb02be 100644
--- a/internal/processing/search.go
+++ b/internal/processing/search.go
@@ -53,7 +53,7 @@ func (p *processor) SearchGet(ctx context.Context, authed *oauth.Auth, searchQue
var foundOne bool
// check if the query is something like @whatever_username@example.org -- this means it's a remote account
- if !foundOne && util.IsMention(searchQuery.Query) {
+ if _, domain, err := util.ExtractMentionParts(searchQuery.Query); err == nil && domain != "" {
l.Debug("search term is a mention, looking it up...")
foundAccount, err := p.searchAccountByMention(ctx, authed, searchQuery.Query, searchQuery.Resolve)
if err == nil && foundAccount != nil {
@@ -64,27 +64,22 @@ func (p *processor) SearchGet(ctx context.Context, authed *oauth.Auth, searchQue
}
// check if the query is a URI and just do a lookup for that, straight up
- if uri, err := url.Parse(query); err == nil && !foundOne {
- // 1. check if it's a status
- if foundStatus, err := p.searchStatusByURI(ctx, authed, uri, searchQuery.Resolve); err == nil && foundStatus != nil {
- foundStatuses = append(foundStatuses, foundStatus)
- foundOne = true
- l.Debug("got a status by searching by URI")
- }
+ if !foundOne {
+ if uri, err := url.Parse(query); err == nil {
+ // 1. check if it's a status
+ if foundStatus, err := p.searchStatusByURI(ctx, authed, uri, searchQuery.Resolve); err == nil && foundStatus != nil {
+ foundStatuses = append(foundStatuses, foundStatus)
+ l.Debug("got a status by searching by URI")
+ }
- // 2. check if it's an account
- if foundAccount, err := p.searchAccountByURI(ctx, authed, uri, searchQuery.Resolve); err == nil && foundAccount != nil {
- foundAccounts = append(foundAccounts, foundAccount)
- foundOne = true
- l.Debug("got an account by searching by URI")
+ // 2. check if it's an account
+ if foundAccount, err := p.searchAccountByURI(ctx, authed, uri, searchQuery.Resolve); err == nil && foundAccount != nil {
+ foundAccounts = append(foundAccounts, foundAccount)
+ l.Debug("got an account by searching by URI")
+ }
}
}
- if !foundOne {
- // we haven't found anything yet so search for text now
- l.Debug("nothing found by mention or by URI, will fall back to searching by text now")
- }
-
/*
FROM HERE ON we have our search results, it's just a matter of filtering them according to what this user is allowed to see,
and then converting them into our frontend format.