|
@@ -57,7 +57,7 @@ template expired(token: Token): untyped =
|
|
|
token.lastUse < time - maxLastUse
|
|
token.lastUse < time - maxLastUse
|
|
|
|
|
|
|
|
template isLimited(token: Token): untyped =
|
|
template isLimited(token: Token): untyped =
|
|
|
- token == nil or (token.remaining <= 1 and token.reset > getTime()) or
|
|
|
|
|
|
|
+ token == nil or (token.remaining <= 5 and token.reset > getTime()) or
|
|
|
token.expired
|
|
token.expired
|
|
|
|
|
|
|
|
proc release*(token: Token; invalid=false) =
|
|
proc release*(token: Token; invalid=false) =
|
|
@@ -79,8 +79,6 @@ proc getToken*(): Future[Token] {.async.} =
|
|
|
if result == nil:
|
|
if result == nil:
|
|
|
raise rateLimitError()
|
|
raise rateLimitError()
|
|
|
|
|
|
|
|
- dec result.remaining
|
|
|
|
|
-
|
|
|
|
|
proc poolTokens*(amount: int) {.async.} =
|
|
proc poolTokens*(amount: int) {.async.} =
|
|
|
var futs: seq[Future[Token]]
|
|
var futs: seq[Future[Token]]
|
|
|
for i in 0 ..< amount:
|
|
for i in 0 ..< amount:
|