Support both web and Android sessions

This commit is contained in:
Zed
2025-02-25 05:46:18 +00:00
parent 4f9ba9c7d6
commit 661be438ec
4 changed files with 47 additions and 18 deletions

View File

@@ -1,15 +1,24 @@
import std/strutils
import jsony
import ../types/session
from ../../types import Session
from ../../types import Session, SessionKind
proc parseSession*(raw: string): Session =
let
session = raw.fromJson(RawSession)
id = session.oauthToken[0 ..< session.oauthToken.find('-')]
let session = raw.fromJson(RawSession)
result = Session(
id: parseBiggestInt(id),
oauthToken: session.oauthToken,
oauthSecret: session.oauthTokenSecret
)
case session.kind
of "oauth":
let id = session.oauthToken[0 ..< session.oauthToken.find('-')]
result = Session(
kind: oauth,
id: parseBiggestInt(id),
oauthToken: session.oauthToken,
oauthSecret: session.oauthTokenSecret
)
of "cookie":
result = Session(
kind: cookie,
id: 999,
ct0: session.ct0,
authToken: session.authToken
)

View File

@@ -1,4 +1,8 @@
type
RawSession* = object
kind*: string
oauthToken*: string
oauthTokenSecret*: string
ct0*: string
authToken*: string