Add defaultTheme config option
This commit is contained in:
		
							parent
							
								
									b018dbdf27
								
							
						
					
					
						commit
						3e661bab8a
					
				| 
						 | 
				
			
			@ -9,3 +9,6 @@ hostname = "nitter.net"
 | 
			
		|||
[Cache]
 | 
			
		||||
directory = "./tmp"
 | 
			
		||||
profileMinutes = 10  # how long to cache profiles
 | 
			
		||||
 | 
			
		||||
[Config]
 | 
			
		||||
defaultTheme = "Dark"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,5 +21,7 @@ proc getConfig*(path: string): Config =
 | 
			
		|||
    hostname: cfg.get("Server", "hostname", "nitter.net"),
 | 
			
		||||
 | 
			
		||||
    cacheDir: cfg.get("Cache", "directory", "/tmp/nitter"),
 | 
			
		||||
    profileCacheTime: cfg.get("Cache", "profileMinutes", 10)
 | 
			
		||||
    profileCacheTime: cfg.get("Cache", "profileMinutes", 10),
 | 
			
		||||
 | 
			
		||||
    defaultTheme: cfg.get("Config", "defaultTheme", "Dark")
 | 
			
		||||
  )
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,9 +27,10 @@ withDb:
 | 
			
		|||
    discard
 | 
			
		||||
  Prefs.theme.safeAddColumn
 | 
			
		||||
 | 
			
		||||
proc getDefaultPrefs(hostname: string): Prefs =
 | 
			
		||||
proc getDefaultPrefs(cfg: Config): Prefs =
 | 
			
		||||
  result = genDefaultPrefs()
 | 
			
		||||
  result.replaceTwitter = hostname
 | 
			
		||||
  result.replaceTwitter = cfg.hostname
 | 
			
		||||
  result.theme = cfg.defaultTheme
 | 
			
		||||
 | 
			
		||||
proc cache*(prefs: var Prefs) =
 | 
			
		||||
  withDb:
 | 
			
		||||
| 
						 | 
				
			
			@ -40,18 +41,18 @@ proc cache*(prefs: var Prefs) =
 | 
			
		|||
    except AssertionError, KeyError:
 | 
			
		||||
      prefs.insert()
 | 
			
		||||
 | 
			
		||||
proc getPrefs*(id, hostname: string): Prefs =
 | 
			
		||||
proc getPrefs*(id: string; cfg: Config): Prefs =
 | 
			
		||||
  if id.len == 0:
 | 
			
		||||
    return getDefaultPrefs(hostname)
 | 
			
		||||
    return getDefaultPrefs(cfg)
 | 
			
		||||
 | 
			
		||||
  withDb:
 | 
			
		||||
    try:
 | 
			
		||||
      result.getOne("id = ?", id)
 | 
			
		||||
    except KeyError:
 | 
			
		||||
      result = getDefaultPrefs(hostname)
 | 
			
		||||
      result = getDefaultPrefs(cfg)
 | 
			
		||||
 | 
			
		||||
proc resetPrefs*(prefs: var Prefs; hostname: string) =
 | 
			
		||||
  var defPrefs = getDefaultPrefs(hostname)
 | 
			
		||||
proc resetPrefs*(prefs: var Prefs; cfg: Config) =
 | 
			
		||||
  var defPrefs = getDefaultPrefs(cfg)
 | 
			
		||||
  defPrefs.id = prefs.id
 | 
			
		||||
  cache(defPrefs)
 | 
			
		||||
  prefs = defPrefs
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -33,7 +33,7 @@ proc createPrefRouter*(cfg: Config) =
 | 
			
		|||
 | 
			
		||||
    post "/resetprefs":
 | 
			
		||||
      var prefs = cookiePrefs()
 | 
			
		||||
      resetPrefs(prefs, cfg.hostname)
 | 
			
		||||
      resetPrefs(prefs, cfg)
 | 
			
		||||
      savePrefs()
 | 
			
		||||
      redirect($(parseUri("/settings") ? filterParams(request.params)))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@ import ../utils, ../prefs
 | 
			
		|||
export utils, prefs
 | 
			
		||||
 | 
			
		||||
template cookiePrefs*(): untyped {.dirty.} =
 | 
			
		||||
  getPrefs(request.cookies.getOrDefault("preferences"), cfg.hostname)
 | 
			
		||||
  getPrefs(request.cookies.getOrDefault("preferences"), cfg)
 | 
			
		||||
 | 
			
		||||
template getPath*(): untyped {.dirty.} =
 | 
			
		||||
  $(parseUri(request.path) ? filterParams(request.params))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -177,6 +177,7 @@ type
 | 
			
		|||
    hostname*: string
 | 
			
		||||
    cacheDir*: string
 | 
			
		||||
    profileCacheTime*: int
 | 
			
		||||
    defaultTheme*: string
 | 
			
		||||
 | 
			
		||||
proc contains*(thread: Chain; tweet: Tweet): bool =
 | 
			
		||||
  thread.content.anyIt(it.id == tweet.id)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,7 @@ proc renderNavbar*(title, rss: string; req: Request): VNode =
 | 
			
		|||
 | 
			
		||||
proc renderMain*(body: VNode; req: Request; cfg: Config; titleText=""; desc="";
 | 
			
		||||
                 rss=""; `type`="article"; video=""; images: seq[string] = @[]): string =
 | 
			
		||||
  let prefs = getPrefs(req.cookies.getOrDefault("preferences"), cfg.hostname)
 | 
			
		||||
  let prefs = getPrefs(req.cookies.getOrDefault("preferences"), cfg)
 | 
			
		||||
  let theme = "/css/themes/" & toLowerAscii(prefs.theme) & ".css"
 | 
			
		||||
  let node = buildHtml(html(lang="en")):
 | 
			
		||||
    head:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue