Enable user search, disable tweet search

This commit is contained in:
Zed 2023-07-10 03:23:13 +02:00
parent d1f80446ef
commit 9d9849054c
3 changed files with 37 additions and 29 deletions

View File

@ -13,34 +13,38 @@ export search
proc createSearchRouter*(cfg: Config) =
router search:
# get "/search/?":
# let q = @"q"
# if q.len > 500:
# resp Http400, showError("Search input too long.", cfg)
get "/search/?":
let q = @"q"
if q.len > 500:
resp Http400, showError("Search input too long.", cfg)
# let
# prefs = cookiePrefs()
# query = initQuery(params(request))
# title = "Search" & (if q.len > 0: " (" & q & ")" else: "")
let
prefs = cookiePrefs()
query = initQuery(params(request))
title = "Search" & (if q.len > 0: " (" & q & ")" else: "")
# case query.kind
# of users:
# if "," in q:
# redirect("/" & q)
# var users: Result[User]
# try:
# users = await getUserSearch(query, getCursor())
# except InternalError:
# users = Result[User](beginning: true, query: query)
# resp renderMain(renderUserSearch(users, prefs), request, cfg, prefs, title)
# of tweets:
# let
# tweets = await getGraphSearch(query, getCursor())
# rss = "/search/rss?" & genQueryUrl(query)
# resp renderMain(renderTweetSearch(tweets, prefs, getPath()),
# request, cfg, prefs, title, rss=rss)
# else:
# resp Http404, showError("Invalid search", cfg)
case query.kind
of users:
if "," in q:
redirect("/" & q)
var users: Result[User]
try:
users = await getUserSearch(query, getCursor())
except InternalError:
users = Result[User](beginning: true, query: query)
resp renderMain(renderUserSearch(users, prefs), request, cfg, prefs, title)
of tweets:
# let
# tweets = await getGraphSearch(query, getCursor())
# rss = "/search/rss?" & genQueryUrl(query)
# resp renderMain(renderTweetSearch(tweets, prefs, getPath()),
# request, cfg, prefs, title, rss=rss)
var fakeTimeline = Timeline(beginning: true)
fakeTimeline.content.add Tweet(tombstone: "Tweet search is unavailable for now")
resp renderMain(renderTweetSearch(fakeTimeline, prefs, getPath()), request, cfg, prefs, title)
else:
resp Http404, showError("Invalid search", cfg)
get "/hashtag/@hash":
redirect("/search?q=" & encodeUrl("#" & @"hash"))

View File

@ -56,7 +56,10 @@ proc fetchProfile*(after: string; query: Query; skipRail=false;
of posts: await getGraphUserTweets(userId, TimelineKind.tweets, after)
of replies: await getGraphUserTweets(userId, TimelineKind.replies, after)
of media: await getGraphUserTweets(userId, TimelineKind.media, after)
else: await getGraphSearch(query, after)
else: Profile(tweets: Timeline(beginning: true, content: @[Chain(content:
@[Tweet(tombstone: "Tweet search is unavailable for now")]
)]))
# else: await getGraphSearch(query, after)
result.user = await user
result.photoRail = await rail

View File

@ -1,5 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-only
import strutils, strformat, sequtils, algorithm, uri, options
import strutils, strformat, algorithm, uri, options
import karax/[karaxdsl, vdom]
import ".."/[types, query, formatters]
@ -123,5 +123,6 @@ proc renderTimelineTweets*(results: Timeline; prefs: Prefs; path: string;
else:
renderThread(thread.content, prefs, path)
renderMore(results.query, results.bottom)
if results.bottom.len > 0:
renderMore(results.query, results.bottom)
renderToTop()