From 43a2bd529c9f28a066256d67958c1eb8f319d528 Mon Sep 17 00:00:00 2001 From: Zed Date: Mon, 23 Sep 2019 16:12:20 +0200 Subject: [PATCH] Improve endpoint parity with twitter --- src/nitter.nim | 12 +++++++++--- src/routes/search.nim | 3 +++ src/routes/unsupported.nim | 20 ++++++++++++++++++++ 3 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 src/routes/unsupported.nim diff --git a/src/nitter.nim b/src/nitter.nim index 55e08d6..9e3e452 100644 --- a/src/nitter.nim +++ b/src/nitter.nim @@ -5,11 +5,13 @@ import jester import types, config, prefs import views/[general, about] -import routes/[preferences, timeline, status, media, search, rss, list] +import routes/[ + preferences, timeline, status, media, search, rss, list, unsupported] const configPath {.strdefine.} = "./nitter.conf" let cfg = getConfig(configPath) +createUnsupportedRouter(cfg) createPrefRouter(cfg) createTimelineRouter(cfg) createListRouter(cfg) @@ -30,9 +32,13 @@ routes: get "/about": resp renderMain(renderAbout(), request, cfg.title) - get "/about/feature": - resp renderMain(renderFeature(), request, cfg.title) + get "/explore": + redirect("/about") + get "/help": + redirect("/about") + + extend unsupported, "" extend preferences, "" extend rss, "" extend search, "" diff --git a/src/routes/search.nim b/src/routes/search.nim index 89497cd..5606f3d 100644 --- a/src/routes/search.nim +++ b/src/routes/search.nim @@ -28,3 +28,6 @@ proc createSearchRouter*(cfg: Config) = resp renderMain(renderTweetSearch(tweets, prefs, getPath()), request, cfg.title) else: resp Http404, showError("Invalid search.", cfg.title) + + get "/hashtag/@hash": + redirect("/search?text=" & encodeUrl("#" & @"hash")) diff --git a/src/routes/unsupported.nim b/src/routes/unsupported.nim new file mode 100644 index 0000000..9f092f7 --- /dev/null +++ b/src/routes/unsupported.nim @@ -0,0 +1,20 @@ +import jester + +import router_utils +import ../types +import ../views/[general, about] + +proc createUnsupportedRouter*(cfg: Config) = + router unsupported: + get "/about/feature": + resp renderMain(renderFeature(), request, cfg.title) + + get "/intent/?@i?": + resp renderMain(renderFeature(), request, cfg.title) + + get "/login/?@i?": + resp renderMain(renderFeature(), request, cfg.title) + + get "/i/@i?/?@j?": + cond @"i" != "status" + resp renderMain(renderFeature(), request, cfg.title)