Merge branch 'config-rss-toggle'

This commit is contained in:
Zed 2021-12-28 06:18:21 +01:00
commit 9b202e414b
5 changed files with 10 additions and 6 deletions

View file

@ -28,6 +28,7 @@ tokenCount = 10
# the limit gets reset every 15 minutes, and the pool is filled up so there's # the limit gets reset every 15 minutes, and the pool is filled up so there's
# always at least $tokenCount usable tokens. again, only increase this if # always at least $tokenCount usable tokens. again, only increase this if
# you receive major bursts all the time # you receive major bursts all the time
enableRSS = true # set this to false to disable RSS feeds
# Change default preferences here, see src/prefs_impl.nim for a complete list # Change default preferences here, see src/prefs_impl.nim for a complete list
[Preferences] [Preferences]

View file

@ -26,6 +26,7 @@ proc getConfig*(path: string): (Config, parseCfg.Config) =
hmacKey: cfg.get("Config", "hmacKey", "secretkey"), hmacKey: cfg.get("Config", "hmacKey", "secretkey"),
base64Media: cfg.get("Config", "base64Media", false), base64Media: cfg.get("Config", "base64Media", false),
minTokens: cfg.get("Config", "tokenCount", 10), minTokens: cfg.get("Config", "tokenCount", 10),
enableRSS: cfg.get("Config", "enableRSS", true),
listCacheTime: cfg.get("Cache", "listMinutes", 120), listCacheTime: cfg.get("Cache", "listMinutes", 120),
rssCacheTime: cfg.get("Cache", "rssMinutes", 10), rssCacheTime: cfg.get("Cache", "rssMinutes", 10),

View file

@ -48,6 +48,7 @@ createStatusRouter(cfg)
createSearchRouter(cfg) createSearchRouter(cfg)
createMediaRouter(cfg) createMediaRouter(cfg)
createEmbedRouter(cfg) createEmbedRouter(cfg)
if cfg.enableRSS:
createRssRouter(cfg) createRssRouter(cfg)
settings: settings:

View file

@ -216,6 +216,7 @@ type
hmacKey*: string hmacKey*: string
base64Media*: bool base64Media*: bool
minTokens*: int minTokens*: int
enableRSS*: bool
rssCacheTime*: int rssCacheTime*: int
listCacheTime*: int listCacheTime*: int

View file

@ -11,7 +11,7 @@ const
doctype = "<!DOCTYPE html>\n" doctype = "<!DOCTYPE html>\n"
lp = readFile("public/lp.svg") lp = readFile("public/lp.svg")
proc renderNavbar*(title, rss: string; req: Request): VNode = proc renderNavbar*(cfg: Config, rss: string; req: Request): VNode =
let twitterPath = getTwitterLink(req.path, req.params) let twitterPath = getTwitterLink(req.path, req.params)
var path = $(parseUri(req.path) ? filterParams(req.params)) var path = $(parseUri(req.path) ? filterParams(req.params))
if "/status" in path: path.add "#m" if "/status" in path: path.add "#m"
@ -19,13 +19,13 @@ proc renderNavbar*(title, rss: string; req: Request): VNode =
buildHtml(nav): buildHtml(nav):
tdiv(class="inner-nav"): tdiv(class="inner-nav"):
tdiv(class="nav-item"): tdiv(class="nav-item"):
a(class="site-name", href="/"): text title a(class="site-name", href="/"): text cfg.title
a(href="/"): img(class="site-logo", src="/logo.png", alt="Logo") a(href="/"): img(class="site-logo", src="/logo.png", alt="Logo")
tdiv(class="nav-item right"): tdiv(class="nav-item right"):
icon "search", title="Search", href="/search" icon "search", title="Search", href="/search"
if rss.len > 0: if cfg.enableRSS and rss.len > 0:
icon "rss-feed", title="RSS Feed", href=rss icon "rss-feed", title="RSS Feed", href=rss
icon "bird", title="Open in Twitter", href=twitterPath icon "bird", title="Open in Twitter", href=twitterPath
a(href="https://liberapay.com/zedeus"): verbatim lp a(href="https://liberapay.com/zedeus"): verbatim lp
@ -58,7 +58,7 @@ proc renderHead*(prefs: Prefs; cfg: Config; titleText=""; desc=""; video="";
link(rel="search", type="application/opensearchdescription+xml", title=cfg.title, link(rel="search", type="application/opensearchdescription+xml", title=cfg.title,
href=opensearchUrl) href=opensearchUrl)
if rss.len > 0: if cfg.enableRSS and rss.len > 0:
link(rel="alternate", type="application/rss+xml", href=rss, title="RSS feed") link(rel="alternate", type="application/rss+xml", href=rss, title="RSS feed")
if prefs.hlsPlayback: if prefs.hlsPlayback:
@ -121,7 +121,7 @@ proc renderMain*(body: VNode; req: Request; cfg: Config; prefs=defaultPrefs;
renderHead(prefs, cfg, titleText, desc, video, images, banner, ogTitle, theme, rss) renderHead(prefs, cfg, titleText, desc, video, images, banner, ogTitle, theme, rss)
body: body:
renderNavbar(cfg.title, rss, req) renderNavbar(cfg, rss, req)
tdiv(class="container"): tdiv(class="container"):
body body