Add skipTid field for cookie session TID handling
This commit is contained in:
+5
-10
@@ -11,11 +11,11 @@ proc genParams(variables: string; fieldToggles = ""): seq[(string, string)] =
|
|||||||
if fieldToggles.len > 0:
|
if fieldToggles.len > 0:
|
||||||
result.add ("fieldToggles", fieldToggles)
|
result.add ("fieldToggles", fieldToggles)
|
||||||
|
|
||||||
proc apiUrl(endpoint, variables: string; fieldToggles = ""): ApiUrl =
|
proc apiUrl(endpoint, variables: string; fieldToggles = ""; skipTid = false): ApiUrl =
|
||||||
return ApiUrl(endpoint: endpoint, params: genParams(variables, fieldToggles))
|
return ApiUrl(endpoint: endpoint, params: genParams(variables, fieldToggles), skipTid: skipTid)
|
||||||
|
|
||||||
proc apiReq(endpoint, variables: string; fieldToggles = ""): ApiReq =
|
proc apiReq(endpoint, variables: string; fieldToggles = ""; skipTid = false): ApiReq =
|
||||||
let url = apiUrl(endpoint, variables, fieldToggles)
|
let url = apiUrl(endpoint, variables, fieldToggles, skipTid)
|
||||||
return ApiReq(cookie: url, oauth: url)
|
return ApiReq(cookie: url, oauth: url)
|
||||||
|
|
||||||
proc mediaUrl(id, cursor: string; count=20): ApiReq =
|
proc mediaUrl(id, cursor: string; count=20): ApiReq =
|
||||||
@@ -32,12 +32,7 @@ proc userTweetsUrl(id: string; cursor: string): ApiReq =
|
|||||||
# )
|
# )
|
||||||
|
|
||||||
proc userTweetsAndRepliesUrl(id: string; cursor: string): ApiReq =
|
proc userTweetsAndRepliesUrl(id: string; cursor: string): ApiReq =
|
||||||
return apiReq(graphUserTweetsAndRepliesV2, restIdVars % [id, cursor, "20"])
|
return apiReq(graphUserTweetsAndRepliesV2, restIdVars % [id, cursor, "20"], skipTid=true)
|
||||||
#let cookieVars = userTweetsAndRepliesVars % [id, cursor]
|
|
||||||
# result = ApiReq(
|
|
||||||
# cookie: apiUrl(graphUserTweetsAndReplies, cookieVars, userTweetsFieldToggles),
|
|
||||||
# oauth: apiUrl(graphUserTweetsAndRepliesV2, restIdVars % [id, cursor, "20"])
|
|
||||||
# )
|
|
||||||
|
|
||||||
proc tweetDetailUrl(id: string; cursor: string): ApiReq =
|
proc tweetDetailUrl(id: string; cursor: string): ApiReq =
|
||||||
return apiReq(graphTweet, tweetVars % [id, cursor])
|
return apiReq(graphTweet, tweetVars % [id, cursor])
|
||||||
|
|||||||
+6
-3
@@ -63,7 +63,7 @@ proc getOauthHeader(url, oauthToken, oauthTokenSecret: string): string =
|
|||||||
proc getCookieHeader(authToken, ct0: string): string =
|
proc getCookieHeader(authToken, ct0: string): string =
|
||||||
"auth_token=" & authToken & "; ct0=" & ct0
|
"auth_token=" & authToken & "; ct0=" & ct0
|
||||||
|
|
||||||
proc genHeaders*(session: Session, url: Uri): Future[HttpHeaders] {.async.} =
|
proc genHeaders*(session: Session, url: Uri, skipTid: bool): Future[HttpHeaders] {.async.} =
|
||||||
result = newHttpHeaders({
|
result = newHttpHeaders({
|
||||||
"accept": "*/*",
|
"accept": "*/*",
|
||||||
"accept-encoding": "gzip",
|
"accept-encoding": "gzip",
|
||||||
@@ -91,7 +91,7 @@ proc genHeaders*(session: Session, url: Uri): Future[HttpHeaders] {.async.} =
|
|||||||
result["sec-fetch-dest"] = "empty"
|
result["sec-fetch-dest"] = "empty"
|
||||||
result["sec-fetch-mode"] = "cors"
|
result["sec-fetch-mode"] = "cors"
|
||||||
result["sec-fetch-site"] = "same-origin"
|
result["sec-fetch-site"] = "same-origin"
|
||||||
if disableTid or "/1.1/" in url.path:
|
if disableTid or skipTid or "/1.1/" in url.path:
|
||||||
result["authorization"] = bearerToken2
|
result["authorization"] = bearerToken2
|
||||||
else:
|
else:
|
||||||
result["authorization"] = bearerToken
|
result["authorization"] = bearerToken
|
||||||
@@ -115,7 +115,10 @@ template fetchImpl(result, fetchBody) {.dirty.} =
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
var resp: AsyncResponse
|
var resp: AsyncResponse
|
||||||
let headers = await genHeaders(session, url)
|
let skipTid = case session.kind
|
||||||
|
of oauth: req.oauth.skipTid
|
||||||
|
of cookie: req.cookie.skipTid
|
||||||
|
let headers = await genHeaders(session, url, skipTid)
|
||||||
|
|
||||||
pool.use(headers):
|
pool.use(headers):
|
||||||
template getContent =
|
template getContent =
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ type
|
|||||||
ApiUrl* = object
|
ApiUrl* = object
|
||||||
endpoint*: string
|
endpoint*: string
|
||||||
params*: seq[(string, string)]
|
params*: seq[(string, string)]
|
||||||
|
skipTid*: bool
|
||||||
|
|
||||||
ApiReq* = object
|
ApiReq* = object
|
||||||
oauth*: ApiUrl
|
oauth*: ApiUrl
|
||||||
|
|||||||
Reference in New Issue
Block a user