parent
							
								
									6b437d5f87
								
							
						
					
					
						commit
						fd20fcf3ee
					
				| 
						 | 
				
			
			@ -5,13 +5,14 @@ import jester
 | 
			
		|||
 | 
			
		||||
import types, config, prefs
 | 
			
		||||
import views/[general, about]
 | 
			
		||||
import routes/[preferences, timeline, media, search, rss]
 | 
			
		||||
import routes/[preferences, timeline, status, media, search, rss]
 | 
			
		||||
 | 
			
		||||
const configPath {.strdefine.} = "./nitter.conf"
 | 
			
		||||
let cfg = getConfig(configPath)
 | 
			
		||||
 | 
			
		||||
createPrefRouter(cfg)
 | 
			
		||||
createTimelineRouter(cfg)
 | 
			
		||||
createStatusRouter(cfg)
 | 
			
		||||
createSearchRouter(cfg)
 | 
			
		||||
createMediaRouter(cfg)
 | 
			
		||||
createRssRouter(cfg)
 | 
			
		||||
| 
						 | 
				
			
			@ -32,6 +33,7 @@ routes:
 | 
			
		|||
  extend rss, ""
 | 
			
		||||
  extend search, ""
 | 
			
		||||
  extend timeline, ""
 | 
			
		||||
  extend status, ""
 | 
			
		||||
  extend media, ""
 | 
			
		||||
 | 
			
		||||
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 ../views/[general, profile, timeline, status, search]
 | 
			
		||||
 | 
			
		||||
include "../views/rss.nimf"
 | 
			
		||||
 | 
			
		||||
export uri, sequtils
 | 
			
		||||
export router_utils
 | 
			
		||||
export api, cache, formatters, query, agents
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue