このリポジトリは2023-09-09にアーカイブされています。 ファイルの閲覧とクローンは可能ですが、プッシュ、イシューの作成、プルリクエストはできません。
Nitter-mod/src/routes/status.nim

55 行
1.8 KiB
Nim
Raw 通常表示 履歴

2019-10-26 22:34:30 +09:00
import asyncdispatch, strutils, sequtils, uri, options
2019-09-20 21:10:10 +09:00
import jester
import router_utils
2019-09-21 08:08:30 +09:00
import ".."/[api, types, formatters, agents]
2019-09-20 22:03:18 +09:00
import ../views/[general, status]
2019-09-20 21:10:10 +09:00
2019-10-26 22:34:30 +09:00
export uri, sequtils, options
2019-09-20 21:10:10 +09:00
export router_utils
2019-09-20 22:03:18 +09:00
export api, formatters, agents
export status
2019-09-20 21:10:10 +09:00
proc createStatusRouter*(cfg: Config) =
router status:
get "/@name/status/@id/?":
2019-09-20 21:10:10 +09:00
cond '.' notin @"name"
let prefs = cookiePrefs()
let conversation = await getTweet(@"name", @"id", @"max_position", getAgent())
if conversation == nil or conversation.tweet.id == 0:
var error = "Tweet not found"
2019-09-20 21:10:10 +09:00
if conversation != nil and conversation.tweet.tombstone.len > 0:
error = conversation.tweet.tombstone
2019-10-21 14:59:22 +09:00
resp Http404, showError(error, cfg)
2019-09-20 21:10:10 +09:00
2019-12-08 20:38:55 +09:00
var
2020-03-29 16:15:05 +09:00
title = pageTitle(conversation.tweet)
2020-03-30 06:20:00 +09:00
ogTitle = pageTitle(conversation.tweet.profile)
2019-09-21 05:56:27 +09:00
desc = conversation.tweet.text
2019-12-08 20:38:55 +09:00
images = conversation.tweet.photos
video = ""
2019-09-20 21:10:10 +09:00
if conversation.tweet.video.isSome():
2019-12-08 20:38:55 +09:00
images = @[get(conversation.tweet.video).thumb]
video = getVideoEmbed(cfg, conversation.tweet.id)
2019-09-20 21:10:10 +09:00
elif conversation.tweet.gif.isSome():
2019-12-08 20:38:55 +09:00
images = @[get(conversation.tweet.gif).thumb]
video = getGifUrl(get(conversation.tweet.gif).url)
2019-12-08 20:38:55 +09:00
let html = renderConversation(conversation, prefs, getPath() & "#m")
2020-03-30 06:20:00 +09:00
resp renderMain(html, request, cfg, title, desc,
images=images, video=video, ogTitle=ogTitle)
2019-10-01 10:28:55 +09:00
2019-12-08 20:38:55 +09:00
get "/@name/@s/@id/@m/?@i?":
cond @"s" in ["status", "statuses"]
cond @"m" in ["video", "photo"]
2019-09-20 21:10:10 +09:00
redirect("/$1/status/$2" % [@"name", @"id"])
get "/@name/statuses/@id/?":
redirect("/$1/status/$2" % [@"name", @"id"])
2019-09-20 21:10:10 +09:00
get "/i/web/status/@id":
redirect("/i/status/" & @"id")