1
0

Add support for viewing account info

Fixes #1381
This commit is contained in:
Zed
2026-03-30 00:58:02 +02:00
parent 741060c78b
commit e7e7050c6e
12 changed files with 281 additions and 6 deletions
+18 -2
View File
@@ -4,13 +4,13 @@ import jester, karax/vdom
import router_utils
import ".."/[types, redis_cache, formatters, query, api]
import ../views/[general, profile, timeline, status, search]
import ../views/[general, profile, timeline, status, search, about_account]
export vdom
export uri, sequtils
export router_utils
export redis_cache, formatters, query, api
export profile, timeline, status
export profile, timeline, status, about_account
proc getQuery*(request: Request; tab, name: string; prefs: Prefs): Query =
let view = request.params.getOrDefault("view")
@@ -57,6 +57,7 @@ proc fetchProfile*(after: string; query: Query; skipRail=false): Future[Profile]
getCachedPhotoRail(userId)
user = getCachedUser(name)
info = getCachedAccountInfo(name, fetch=false)
result =
case query.kind
@@ -67,6 +68,7 @@ proc fetchProfile*(after: string; query: Query; skipRail=false): Future[Profile]
result.user = await user
result.photoRail = await rail
result.accountInfo = await info
result.tweets.query = query
@@ -119,6 +121,20 @@ proc createTimelineRouter*(cfg: Config) =
resp Http400, showError("Missing screen_name parameter", cfg)
redirect("/" & username)
get "/@name/about/?":
cond @"name".allCharsInSet({'a'..'z', 'A'..'Z', '0'..'9', '_'})
let
prefs = requestPrefs()
name = @"name"
info = await getCachedAccountInfo(name)
if info.suspended:
resp showError(getSuspended(name), cfg)
if info.username.len == 0:
resp Http404, showError("User \"" & name & "\" not found", cfg)
let aboutHtml = renderAboutAccount(info)
resp renderMain(aboutHtml, request, cfg, prefs,
"About @" & info.username)
get "/@name/?@tab?/?":
cond '.' notin @"name"
cond @"name" notin ["pic", "gif", "video", "search", "settings", "login", "intent", "i"]