Sfoglia il codice sorgente

Minor token changes

Zed 6 anni fa
parent
commit
1fb78f8047
5 ha cambiato i file con 7 aggiunte e 10 eliminazioni
  1. 1 1
      src/api.nim
  2. 1 2
      src/apiutils.nim
  3. 1 2
      src/parserutils.nim
  4. 4 4
      src/tokens.nim
  5. 0 1
      src/types.nim

+ 1 - 1
src/api.nim

@@ -1,4 +1,4 @@
-import asyncdispatch, httpclient, uri, json, strutils, options
+import asyncdispatch, httpclient, uri, strutils, json
 import types, query, formatters, consts, apiutils, parser
 
 proc getGraphProfile*(username: string): Future[Profile] {.async.} =

+ 1 - 2
src/apiutils.nim

@@ -36,7 +36,6 @@ proc fetch*(url: Uri; retried=false; oldApi=false): Future[JsonNode] {.async.} =
 
     const rl = "x-rate-limit-"
     if not oldApi and resp.headers.hasKey(rl & "limit"):
-      token.limit = parseInt(resp.headers[rl & "limit"])
       token.remaining = parseInt(resp.headers[rl & "remaining"])
       token.reset = fromUnix(parseInt(resp.headers[rl & "reset"]))
 
@@ -54,7 +53,7 @@ proc fetch*(url: Uri; retried=false; oldApi=false): Future[JsonNode] {.async.} =
       echo "bad token"
   except:
     echo "error: ", url
-    return nil
+    result = nil
   finally:
     if keepToken:
       token.release()

+ 1 - 2
src/parserutils.nim

@@ -19,8 +19,7 @@ template `?`*(js: JsonNode): untyped =
 template `with`*(ident, value, body): untyped =
   block:
     let ident {.inject.} = value
-    if ident != nil:
-      body
+    if ident != nil: body
 
 template `with`*(ident; value: JsonNode; body): untyped =
   block:

+ 4 - 4
src/tokens.nim

@@ -19,11 +19,11 @@ proc fetchToken(): Future[Token] {.async.} =
   except: discard
 
   if pos == -1: echo "token parse fail"; return
-  result = Token(tok: resp[pos+3 .. pos+21], limit: 187, remaining: 187,
+  result = Token(tok: resp[pos+3 .. pos+21], remaining: 187,
                  reset: getTime() + 15.minutes, init: getTime())
 
 proc expired(token: Token): bool {.inline.} =
-  const expirationTime = 1.hours
+  const expirationTime = 2.hours
   result = token.init < getTime() - expirationTime
 
 proc isLimited(token: Token): bool {.inline.} =
@@ -54,6 +54,6 @@ proc poolTokens*(amount: int) {.async.} =
 
 proc initTokenPool*(cfg: Config) {.async.} =
   while true:
-    if tokenPool.filterIt(not it.isLimited).len < cfg.minTokens:
-      await poolTokens(min(5, cfg.minTokens - tokenPool.len))
+    if tokenPool.countIt(not it.isLimited) < cfg.minTokens:
+      await poolTokens(min(3, cfg.minTokens - tokenPool.len))
     await sleepAsync(4000)

+ 0 - 1
src/types.nim

@@ -6,7 +6,6 @@ genPrefsType()
 type
   Token* = ref object
     tok*: string
-    limit*: int
     remaining*: int
     reset*: Time
     init*: Time