このリポジトリは2023-09-09にアーカイブされています。 ファイルの閲覧とクローンは可能ですが、プッシュ、イシューの作成、プルリクエストはできません。
Nitter-mod/src/config.nim

46 行
1.6 KiB
Nim
Raw 通常表示 履歴

2021-12-27 10:37:38 +09:00
# SPDX-License-Identifier: AGPL-3.0-only
2019-07-31 11:23:16 +09:00
import parsecfg except Config
import types, strutils
2019-07-31 11:23:16 +09:00
proc get*[T](config: parseCfg.Config; s, v: string; default: T): T =
2019-07-31 11:23:16 +09:00
let val = config.getSectionValue(s, v)
if val.len == 0: return default
when T is int: parseInt(val)
elif T is bool: parseBool(val)
elif T is string: val
proc getConfig*(path: string): (Config, parseCfg.Config) =
2019-07-31 11:23:16 +09:00
var cfg = loadConfig(path)
let conf = Config(
2019-07-31 11:23:16 +09:00
address: cfg.get("Server", "address", "0.0.0.0"),
port: cfg.get("Server", "port", 8080),
useHttps: cfg.get("Server", "https", true),
httpMaxConns: cfg.get("Server", "httpMaxConnections", 100),
title: cfg.get("Server", "title", "Nitter"),
hostname: cfg.get("Server", "hostname", "nitter.net"),
2020-06-01 09:26:04 +09:00
staticDir: cfg.get("Server", "staticDir", "./public"),
2019-07-31 11:23:16 +09:00
2020-06-09 22:04:38 +09:00
hmacKey: cfg.get("Config", "hmacKey", "secretkey"),
base64Media: cfg.get("Config", "base64Media", false),
minTokens: cfg.get("Config", "tokenCount", 10),
2021-12-28 14:21:22 +09:00
enableRss: cfg.get("Config", "enableRSS", true),
2021-10-01 01:03:07 +09:00
proxy: cfg.get("Config", "proxy", ""),
proxyAuth: cfg.get("Config", "proxyAuth", ""),
2020-06-09 22:04:38 +09:00
2020-06-01 09:26:04 +09:00
listCacheTime: cfg.get("Cache", "listMinutes", 120),
rssCacheTime: cfg.get("Cache", "rssMinutes", 10),
redisHost: cfg.get("Cache", "redisHost", "localhost"),
redisPort: cfg.get("Cache", "redisPort", 6379),
redisConns: cfg.get("Cache", "redisConnections", 20),
redisMaxConns: cfg.get("Cache", "redisMaxConnections", 30),
redisPassword: cfg.get("Cache", "redisPassword", ""),
replaceYouTube: cfg.get("Preferences", "replaceYouTube", "piped.kavin.rocks")
2019-07-31 11:23:16 +09:00
)
return (conf, cfg)