diff --git a/src/apiutils.nim b/src/apiutils.nim index 404c824..74ca646 100644 --- a/src/apiutils.nim +++ b/src/apiutils.nim @@ -30,12 +30,13 @@ proc genParams*(pars: openArray[(string, string)] = @[]; cursor=""; else: result &= ("cursor", cursor) -proc genHeaders*(token: Token = nil): HttpHeaders = +#proc genHeaders*(token: Token = nil): HttpHeaders = +proc genHeaders*(): HttpHeaders = result = newHttpHeaders({ "connection": "keep-alive", "authorization": auth, "content-type": "application/json", - "x-guest-token": if token == nil: "" else: token.tok, + #"x-guest-token": if token == nil: "" else: token.tok, "x-twitter-active-user": "yes", "authority": "api.twitter.com", "accept-encoding": "gzip", @@ -44,20 +45,20 @@ proc genHeaders*(token: Token = nil): HttpHeaders = "DNT": "1" }) -template updateToken() = - if resp.headers.hasKey(rlRemaining): - let - remaining = parseInt(resp.headers[rlRemaining]) - reset = parseInt(resp.headers[rlReset]) - token.setRateLimit(api, remaining, reset) +#template updateToken() = +# if resp.headers.hasKey(rlRemaining): +# let +# remaining = parseInt(resp.headers[rlRemaining]) +# reset = parseInt(resp.headers[rlReset]) +# token.setRateLimit(api, remaining, reset) template fetchImpl(result, additional_headers, fetchBody) {.dirty.} = once: pool = HttpPool() - var token = await getToken(api) - if token.tok.len == 0: - raise rateLimitError() + #var token = await getToken(api) + #if token.tok.len == 0: + # raise rateLimitError() if len(cfg.cookieHeader) != 0: additional_headers.add("Cookie", cfg.cookieHeader) @@ -66,7 +67,8 @@ template fetchImpl(result, additional_headers, fetchBody) {.dirty.} = try: var resp: AsyncResponse - var headers = genHeaders(token) + #var headers = genHeaders(token) + var headers = genHeaders() for key, value in additional_headers.pairs(): headers.add(key, value) pool.use(headers): @@ -87,7 +89,7 @@ template fetchImpl(result, additional_headers, fetchBody) {.dirty.} = let remaining = parseInt(resp.headers[rlRemaining]) reset = parseInt(resp.headers[rlReset]) - token.setRateLimit(api, remaining, reset) + #token.setRateLimit(api, remaining, reset) if result.len > 0: if resp.headers.getOrDefault("content-encoding") == "gzip": @@ -97,35 +99,35 @@ template fetchImpl(result, additional_headers, fetchBody) {.dirty.} = let errors = result.fromJson(Errors) if errors in {expiredToken, badToken, authorizationError}: echo "fetch error: ", errors - release(token, invalid=true) + #release(token, invalid=true) raise rateLimitError() elif errors in {rateLimited}: # rate limit hit, resets after 24 hours #setLimited(account, api) raise rateLimitError() elif result.startsWith("429 Too Many Requests"): - echo "[accounts] 429 error, API: ", api, ", token: ", token[] + #echo "[accounts] 429 error, API: ", api, ", token: ", token[] #account.apis[api].remaining = 0 # rate limit hit, resets after the 15 minute window raise rateLimitError() fetchBody - release(token, used=true) + #release(token, used=true) if resp.status == $Http400: raise newException(InternalError, $url) except InternalError as e: raise e except BadClientError as e: - release(token, used=true) + #release(token, used=true) raise e except OSError as e: raise e except Exception as e: - echo "error: ", e.name, ", msg: ", e.msg, ", token: ", token[], ", url: ", url - if "length" notin e.msg and "descriptor" notin e.msg: - release(token, invalid=true) + #echo "error: ", e.name, ", msg: ", e.msg, ", token: ", token[], ", url: ", url + #if "length" notin e.msg and "descriptor" notin e.msg: + #release(token, invalid=true) raise rateLimitError() template retry(bod) = @@ -145,12 +147,12 @@ proc fetch*(url: Uri; api: Api; additional_headers: HttpHeaders = newHttpHeaders echo resp.status, ": ", body, " --- url: ", url result = newJNull() - updateToken() + #updateToken() let error = result.getError if error in {expiredToken, badToken}: echo "fetch error: ", result.getError - release(token, invalid=true) + #release(token, invalid=true) raise rateLimitError() proc fetchRaw*(url: Uri; api: Api; additional_headers: HttpHeaders = newHttpHeaders()): Future[string] {.async.} = @@ -160,11 +162,11 @@ proc fetchRaw*(url: Uri; api: Api; additional_headers: HttpHeaders = newHttpHead echo resp.status, ": ", result, " --- url: ", url result.setLen(0) - updateToken() + #updateToken() if result.startsWith("{\"errors"): let errors = result.fromJson(Errors) if errors in {expiredToken, badToken}: echo "fetch error: ", errors - release(token, invalid=true) - raise rateLimitError() \ No newline at end of file + #release(token, invalid=true) + raise rateLimitError() diff --git a/src/views/general.nim b/src/views/general.nim index f788d9b..13e85c6 100644 --- a/src/views/general.nim +++ b/src/views/general.nim @@ -111,7 +111,7 @@ proc renderHead*(prefs: Prefs; cfg: Config; req: Request; titleText=""; desc=""; let formattedTime = timeObj.format("yyyy/MM/dd HH:mm:ss") siteName = &"Nitter • {formattedTime}" - + meta(property="og:site_name", content=siteName) if banner.len > 0 and not banner.startsWith('#'): @@ -152,7 +152,7 @@ proc renderHead*(prefs: Prefs; cfg: Config; req: Request; titleText=""; desc=""; if context != "": author = encodeUrl(context & "\n") & author - + if contextUrl != "": url = contextUrl