1
0
mirror of https://github.com/zedeus/nitter.git synced 2026-05-03 19:12:20 -04:00
Files
nitter/src/routes/preferences.nim
2026-02-09 21:54:57 +01:00

43 lines
1.1 KiB
Nim

# SPDX-License-Identifier: AGPL-3.0-only
import strutils, uri, os, algorithm
import jester
import router_utils
import ".."/[types, formatters]
import ../views/[general, preferences]
export preferences
proc findThemes*(dir: string): seq[string] =
for kind, path in walkDir(dir / "css" / "themes"):
let theme = path.splitFile.name
result.add theme.replace("_", " ").titleize
sort(result)
proc createPrefRouter*(cfg: Config) =
router preferences:
get "/settings":
let
prefs = requestPrefs()
prefsCode = encodePrefs(prefs)
prefsUrl = getUrlPrefix(cfg) & "/?prefs=" & prefsCode
html = renderPreferences(prefs, refPath(), findThemes(cfg.staticDir), prefsUrl)
resp renderMain(html, request, cfg, prefs, "Preferences")
get "/settings/@i?":
redirect("/settings")
post "/saveprefs":
genUpdatePrefs()
redirect(refPath())
post "/resetprefs":
genResetPrefs()
redirect("/settings?referer=" & encodeUrl(refPath()))
post "/enablehls":
savePref("hlsPlayback", "on", request)
redirect(refPath())