2020-11-08 05:46:03 +09:00
|
|
|
import asyncdispatch, strformat
|
2019-07-31 09:15:43 +09:00
|
|
|
from net import Port
|
2019-06-20 23:16:20 +09:00
|
|
|
|
2019-09-06 09:42:35 +09:00
|
|
|
import jester
|
2019-06-25 06:25:21 +09:00
|
|
|
|
2020-11-08 05:31:03 +09:00
|
|
|
import types, config, prefs, formatters, redis_cache, http_pool, tokens
|
2019-09-09 11:41:20 +09:00
|
|
|
import views/[general, about]
|
2019-09-23 23:12:20 +09:00
|
|
|
import routes/[
|
2019-12-30 19:41:09 +09:00
|
|
|
preferences, timeline, status, media, search, rss, list,
|
2020-06-09 23:45:21 +09:00
|
|
|
unsupported, embed, resolver, router_utils]
|
2019-06-20 23:16:20 +09:00
|
|
|
|
2019-07-31 09:15:43 +09:00
|
|
|
const configPath {.strdefine.} = "./nitter.conf"
|
2020-05-08 09:48:47 +09:00
|
|
|
let (cfg, fullCfg) = getConfig(configPath)
|
|
|
|
|
2020-06-10 03:29:05 +09:00
|
|
|
when defined(release):
|
2020-11-08 07:16:33 +09:00
|
|
|
import logging
|
2020-06-10 03:29:05 +09:00
|
|
|
# Silence Jester's query warning
|
|
|
|
addHandler(newConsoleLogger())
|
|
|
|
setLogFilter(lvlError)
|
2020-06-07 16:18:40 +09:00
|
|
|
|
|
|
|
let http = if cfg.useHttps: "https" else: "http"
|
|
|
|
stdout.write &"Starting Nitter at {http}://{cfg.hostname}\n"
|
|
|
|
stdout.flushFile
|
|
|
|
|
2020-05-08 09:48:47 +09:00
|
|
|
updateDefaultPrefs(fullCfg)
|
2020-06-01 09:25:39 +09:00
|
|
|
setCacheTimes(cfg)
|
2019-10-24 07:17:38 +09:00
|
|
|
setHmacKey(cfg.hmacKey)
|
2020-06-09 22:04:38 +09:00
|
|
|
setProxyEncoding(cfg.base64Media)
|
2020-11-08 05:31:03 +09:00
|
|
|
setMaxHttpConns(100)
|
2020-06-01 20:36:10 +09:00
|
|
|
|
2020-06-06 16:27:25 +09:00
|
|
|
waitFor initRedisPool(cfg)
|
2020-06-07 16:18:40 +09:00
|
|
|
stdout.write &"Connected to Redis at {cfg.redisHost}:{cfg.redisPort}\n"
|
|
|
|
stdout.flushFile
|
|
|
|
|
2020-06-01 09:25:39 +09:00
|
|
|
asyncCheck initTokenPool(cfg)
|
2019-10-24 07:17:38 +09:00
|
|
|
|
2019-09-23 23:12:20 +09:00
|
|
|
createUnsupportedRouter(cfg)
|
2019-12-30 19:41:09 +09:00
|
|
|
createResolverRouter(cfg)
|
2019-09-06 09:42:35 +09:00
|
|
|
createPrefRouter(cfg)
|
|
|
|
createTimelineRouter(cfg)
|
2019-09-21 08:08:30 +09:00
|
|
|
createListRouter(cfg)
|
2019-09-20 21:10:10 +09:00
|
|
|
createStatusRouter(cfg)
|
2019-09-14 05:24:58 +09:00
|
|
|
createSearchRouter(cfg)
|
2019-09-06 09:42:35 +09:00
|
|
|
createMediaRouter(cfg)
|
2019-12-06 23:15:56 +09:00
|
|
|
createEmbedRouter(cfg)
|
2019-09-15 19:10:43 +09:00
|
|
|
createRssRouter(cfg)
|
2019-07-31 09:15:43 +09:00
|
|
|
|
|
|
|
settings:
|
|
|
|
port = Port(cfg.port)
|
|
|
|
staticDir = cfg.staticDir
|
|
|
|
bindAddr = cfg.address
|
|
|
|
|
2019-06-20 23:16:20 +09:00
|
|
|
routes:
|
|
|
|
get "/":
|
2020-06-09 23:45:21 +09:00
|
|
|
resp renderMain(renderSearch(), request, cfg, themePrefs())
|
2019-06-20 23:16:20 +09:00
|
|
|
|
2019-09-09 11:41:20 +09:00
|
|
|
get "/about":
|
2020-06-09 23:45:21 +09:00
|
|
|
resp renderMain(renderAbout(), request, cfg, themePrefs())
|
2019-09-09 11:41:20 +09:00
|
|
|
|
2019-09-23 23:12:20 +09:00
|
|
|
get "/explore":
|
|
|
|
redirect("/about")
|
2019-09-23 08:55:02 +09:00
|
|
|
|
2019-09-23 23:12:20 +09:00
|
|
|
get "/help":
|
|
|
|
redirect("/about")
|
|
|
|
|
2019-10-18 07:45:54 +09:00
|
|
|
get "/i/redirect":
|
|
|
|
let url = decodeUrl(@"url")
|
2019-10-21 14:59:22 +09:00
|
|
|
if url.len == 0: resp Http404
|
2019-10-18 07:45:54 +09:00
|
|
|
redirect(replaceUrl(url, cookiePrefs()))
|
|
|
|
|
2019-10-07 23:47:53 +09:00
|
|
|
error Http404:
|
2019-10-21 14:59:22 +09:00
|
|
|
resp Http404, showError("Page not found", cfg)
|
2019-10-07 23:47:53 +09:00
|
|
|
|
2019-09-23 23:12:20 +09:00
|
|
|
extend unsupported, ""
|
2019-09-06 09:42:35 +09:00
|
|
|
extend preferences, ""
|
2019-12-30 19:41:09 +09:00
|
|
|
extend resolver, ""
|
2019-09-15 19:10:43 +09:00
|
|
|
extend rss, ""
|
2019-09-14 05:24:58 +09:00
|
|
|
extend search, ""
|
2019-09-06 09:42:35 +09:00
|
|
|
extend timeline, ""
|
2019-09-21 08:08:30 +09:00
|
|
|
extend list, ""
|
2019-09-20 21:10:10 +09:00
|
|
|
extend status, ""
|
2019-09-06 09:42:35 +09:00
|
|
|
extend media, ""
|
2019-12-06 23:15:56 +09:00
|
|
|
extend embed, ""
|