diff --git a/src/nitter.nim b/src/nitter.nim index f81dc1c8f..01b6ec6da 100644 --- a/src/nitter.nim +++ b/src/nitter.nim @@ -36,7 +36,8 @@ setCacheTimes(cfg) setHmacKey(cfg.hmacKey) setProxyEncoding(cfg.base64Media) setMaxHttpConns(cfg.httpMaxConns) -setHttpProxy(cfg.proxy, cfg.proxyAuth) +media.setHttpProxy(cfg.proxy, cfg.proxyAuth) +http_pool.setHttpProxy(cfg.proxy, cfg.proxyAuth) initAboutPage(cfg.staticDir) waitFor initRedisPool(cfg) diff --git a/src/routes/media.nim b/src/routes/media.nim index de510616b..6336cc704 100644 --- a/src/routes/media.nim +++ b/src/routes/media.nim @@ -14,8 +14,17 @@ const m3u8Mime* = "application/vnd.apple.mpegurl" maxAge* = "max-age=604800" +var + proxy: Proxy + +proc setHttpProxy*(url: string; auth: string) = + if url.len > 0: + proxy = newProxy(url, auth) + else: + proxy = nil + proc safeFetch*(url: string): Future[string] {.async.} = - let client = newAsyncHttpClient() + let client = newAsyncHttpClient(proxy=proxy) try: result = await client.getContent(url) except: discard finally: client.close() @@ -32,7 +41,7 @@ proc proxyMedia*(req: jester.Request; url: string): Future[HttpCode] {.async.} = result = Http200 let request = req.getNativeReq() - client = newAsyncHttpClient() + client = newAsyncHttpClient(proxy=proxy) try: let res = await client.get(url)