parent
6b437d5f87
commit
fd20fcf3ee
|
@ -5,13 +5,14 @@ import jester
|
||||||
|
|
||||||
import types, config, prefs
|
import types, config, prefs
|
||||||
import views/[general, about]
|
import views/[general, about]
|
||||||
import routes/[preferences, timeline, media, search, rss]
|
import routes/[preferences, timeline, status, media, search, rss]
|
||||||
|
|
||||||
const configPath {.strdefine.} = "./nitter.conf"
|
const configPath {.strdefine.} = "./nitter.conf"
|
||||||
let cfg = getConfig(configPath)
|
let cfg = getConfig(configPath)
|
||||||
|
|
||||||
createPrefRouter(cfg)
|
createPrefRouter(cfg)
|
||||||
createTimelineRouter(cfg)
|
createTimelineRouter(cfg)
|
||||||
|
createStatusRouter(cfg)
|
||||||
createSearchRouter(cfg)
|
createSearchRouter(cfg)
|
||||||
createMediaRouter(cfg)
|
createMediaRouter(cfg)
|
||||||
createRssRouter(cfg)
|
createRssRouter(cfg)
|
||||||
|
@ -32,6 +33,7 @@ routes:
|
||||||
extend rss, ""
|
extend rss, ""
|
||||||
extend search, ""
|
extend search, ""
|
||||||
extend timeline, ""
|
extend timeline, ""
|
||||||
|
extend status, ""
|
||||||
extend media, ""
|
extend media, ""
|
||||||
|
|
||||||
runForever()
|
runForever()
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
import asyncdispatch, strutils, sequtils, uri
|
||||||
|
|
||||||
|
import jester
|
||||||
|
|
||||||
|
import router_utils
|
||||||
|
import ".."/[api, prefs, types, utils, cache, formatters, agents, query]
|
||||||
|
import ../views/[general, profile, timeline, status, search]
|
||||||
|
|
||||||
|
export uri, sequtils
|
||||||
|
export router_utils
|
||||||
|
export api, cache, formatters, query, agents
|
||||||
|
export profile, status
|
||||||
|
|
||||||
|
proc createStatusRouter*(cfg: Config) =
|
||||||
|
setProfileCacheTime(cfg.profileCacheTime)
|
||||||
|
|
||||||
|
router status:
|
||||||
|
get "/@name/status/@id":
|
||||||
|
cond '.' notin @"name"
|
||||||
|
let prefs = cookiePrefs()
|
||||||
|
|
||||||
|
let conversation = await getTweet(@"name", @"id", getAgent())
|
||||||
|
if conversation == nil or conversation.tweet.id.len == 0:
|
||||||
|
if conversation != nil and conversation.tweet.tombstone.len > 0:
|
||||||
|
resp Http404, showError(conversation.tweet.tombstone, cfg.title)
|
||||||
|
else:
|
||||||
|
resp Http404, showError("Tweet not found", cfg.title)
|
||||||
|
|
||||||
|
let path = getPath()
|
||||||
|
let title = pageTitle(conversation.tweet.profile)
|
||||||
|
let desc = conversation.tweet.text
|
||||||
|
let html = renderConversation(conversation, prefs, path)
|
||||||
|
|
||||||
|
if conversation.tweet.video.isSome():
|
||||||
|
let thumb = get(conversation.tweet.video).thumb
|
||||||
|
let vidUrl = getVideoEmbed(conversation.tweet.id)
|
||||||
|
resp renderMain(html, prefs, cfg.title, title, desc, path, images = @[thumb],
|
||||||
|
`type`="video", video=vidUrl)
|
||||||
|
elif conversation.tweet.gif.isSome():
|
||||||
|
let thumb = get(conversation.tweet.gif).thumb
|
||||||
|
let vidUrl = getVideoEmbed(conversation.tweet.id)
|
||||||
|
resp renderMain(html, prefs, cfg.title, title, desc, path, images = @[thumb],
|
||||||
|
`type`="video", video=vidUrl)
|
||||||
|
else:
|
||||||
|
resp renderMain(html, prefs, cfg.title, title, desc, path,
|
||||||
|
images=conversation.tweet.photos, `type`="photo")
|
||||||
|
|
||||||
|
get "/@name/status/@id/photo/1":
|
||||||
|
redirect("/$1/status/$2" % [@"name", @"id"])
|
||||||
|
|
||||||
|
get "/i/web/status/@id":
|
||||||
|
redirect("/i/status/" & @"id")
|
|
@ -6,8 +6,6 @@ import router_utils
|
||||||
import ".."/[api, prefs, types, utils, cache, formatters, agents, query]
|
import ".."/[api, prefs, types, utils, cache, formatters, agents, query]
|
||||||
import ../views/[general, profile, timeline, status, search]
|
import ../views/[general, profile, timeline, status, search]
|
||||||
|
|
||||||
include "../views/rss.nimf"
|
|
||||||
|
|
||||||
export uri, sequtils
|
export uri, sequtils
|
||||||
export router_utils
|
export router_utils
|
||||||
export api, cache, formatters, query, agents
|
export api, cache, formatters, query, agents
|
||||||
|
|
Loading…
Reference in New Issue