1
0
mirror of https://github.com/zedeus/nitter.git synced 2026-01-30 23:32:48 -05:00

Add preliminary support for nitter-proxy

This commit is contained in:
Zed
2025-12-06 05:15:01 +01:00
parent 663f5a52e1
commit 51b54852dc
5 changed files with 16 additions and 1 deletions

View File

@@ -26,6 +26,7 @@ enableRSS = true # set this to false to disable RSS feeds
enableDebug = false # enable request logs and debug endpoints (/.sessions)
proxy = "" # http/https url, SOCKS proxies are not supported
proxyAuth = ""
apiProxy = "" # nitter-proxy host, e.g. localhost:7000
disableTid = false # enable this if cookie-based auth is failing
# Change default preferences here, see src/prefs_impl.nim for a complete list

View File

@@ -13,10 +13,17 @@ const
var
pool: HttpPool
disableTid: bool
apiProxy: string
proc setDisableTid*(disable: bool) =
disableTid = disable
proc setApiProxy*(url: string) =
if url.len > 0:
apiProxy = url.strip(chars={'/'}) & "/"
if "http" notin apiProxy:
apiProxy = "http://" & apiProxy
proc toUrl(req: ApiReq; sessionKind: SessionKind): Uri =
case sessionKind
of oauth:
@@ -99,6 +106,10 @@ template fetchImpl(result, fetchBody) {.dirty.} =
var resp: AsyncResponse
pool.use(await genHeaders(session, url)):
template getContent =
# TODO: this is a temporary simple implementation
if apiProxy.len > 0:
resp = await c.get(($url).replace("https://", apiProxy))
else:
resp = await c.get($url)
result = await resp.body

View File

@@ -41,6 +41,7 @@ proc getConfig*(path: string): (Config, parseCfg.Config) =
enableDebug: cfg.get("Config", "enableDebug", false),
proxy: cfg.get("Config", "proxy", ""),
proxyAuth: cfg.get("Config", "proxyAuth", ""),
apiProxy: cfg.get("Config", "apiProxy", ""),
disableTid: cfg.get("Config", "disableTid", false)
)

View File

@@ -37,6 +37,7 @@ setHmacKey(cfg.hmacKey)
setProxyEncoding(cfg.base64Media)
setMaxHttpConns(cfg.httpMaxConns)
setHttpProxy(cfg.proxy, cfg.proxyAuth)
setApiProxy(cfg.apiProxy)
setDisableTid(cfg.disableTid)
initAboutPage(cfg.staticDir)

View File

@@ -275,6 +275,7 @@ type
enableDebug*: bool
proxy*: string
proxyAuth*: string
apiProxy*: string
disableTid*: bool
rssCacheTime*: int