much better way of fixing exact searching that doesn't break shit

pull/225/head
Aevann 2024-02-28 22:06:41 +02:00
parent 8b984a510e
commit 1cb7b72d62
1 changed files with 20 additions and 8 deletions

View File

@ -224,11 +224,17 @@ def searchcomments(v):
if 'q' in criteria:
text = criteria['full_text']
comments = comments.filter(
Comment.body_ts.bool_op("@@")(
func.websearch_to_tsquery("english", text)
if text.startswith('"') and text.endswith('"'):
search_text = escape_for_search(text[1:-1])
comments = comments.filter(
Comment.body.ilike(f'%{search_text}%')
)
else:
comments = comments.filter(
Comment.body_ts.bool_op("@@")(
func.websearch_to_tsquery("english", text)
)
)
)
if 'nsfw' in criteria:
nsfw = criteria['nsfw'].lower().strip() == 'true'
@ -323,11 +329,17 @@ def searchmessages(v):
if 'q' in criteria:
text = criteria['full_text']
comments = comments.filter(
Comment.body_ts.bool_op("@@")(
func.websearch_to_tsquery("english", text)
if text.startswith('"') and text.endswith('"'):
search_text = escape_for_search(text[1:-1])
comments = comments.filter(
Comment.body.ilike(f'%{search_text}%')
)
else:
comments = comments.filter(
Comment.body_ts.bool_op("@@")(
func.websearch_to_tsquery("english", text)
)
)
)
comments = apply_time_filter(t, comments, Comment)