Skip to content
Snippets Groups Projects
Commit 514d1b31 authored by Zed's avatar Zed
Browse files

Add temporary token fail safe

parent 7b40c8eb
No related branches found
No related tags found
No related merge requests found
......@@ -29,10 +29,11 @@ proc genHeaders*(token: Token = nil): HttpHeaders =
})
proc fetch*(url: Uri; oldApi=false): Future[JsonNode] {.async.} =
var
token = await getToken()
client = newAsyncHttpClient(headers=genHeaders(token))
var token = await getToken()
if token.tok.len == 0:
result = newJNull()
var client = newAsyncHttpClient(headers=genHeaders(token))
try:
let
resp = await client.get($url)
......@@ -54,5 +55,4 @@ proc fetch*(url: Uri; oldApi=false): Future[JsonNode] {.async.} =
echo "error: ", url
result = newJNull()
finally:
try: client.close()
except: discard
client.close()
import asyncdispatch, httpclient, times, sequtils, strutils, json
import types, agents, consts
var tokenPool {.threadvar.}: seq[Token]
var
tokenPool {.threadvar.}: seq[Token]
lastFailed: Time
minFail = initDuration(seconds=10)
proc fetchToken(): Future[Token] {.async.} =
if getTime() - lastFailed < minFail:
return Token()
let
headers = newHttpHeaders({
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
......@@ -26,8 +32,9 @@ proc fetchToken(): Future[Token] {.async.} =
result = Token(tok: tok, remaining: 187, reset: time + 15.minutes,
init: time, lastUse: time)
except Exception as e:
lastFailed = getTime()
echo "fetching token failed: ", e.msg
return Token()
result = Token()
finally:
client.close()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment