summaryrefslogtreecommitdiffstats
path: root/g4f/Provider/npm/node_modules/funcaptcha/src/session.ts
diff options
context:
space:
mode:
Diffstat (limited to 'g4f/Provider/npm/node_modules/funcaptcha/src/session.ts')
-rw-r--r--g4f/Provider/npm/node_modules/funcaptcha/src/session.ts125
1 files changed, 0 insertions, 125 deletions
diff --git a/g4f/Provider/npm/node_modules/funcaptcha/src/session.ts b/g4f/Provider/npm/node_modules/funcaptcha/src/session.ts
deleted file mode 100644
index 9244daae..00000000
--- a/g4f/Provider/npm/node_modules/funcaptcha/src/session.ts
+++ /dev/null
@@ -1,125 +0,0 @@
-import { GetTokenResult } from "./api";
-import { Challenge, Challenge1, Challenge3, Challenge4 } from "./challenge";
-import http from "./http";
-import util from "./util";
-
-export interface TokenInfo {
- token: string;
- r: string;
- metabgclr: string;
- mainbgclr: string;
- guitextcolor: string;
- metaiconclr: string;
- meta_height: string;
- meta_width: string;
- meta: string;
- pk: string;
- dc: string;
- at: string;
- cdn_url: string;
- lurl: string;
- surl: string;
- smurl: string;
- // Enable keyboard biometrics
- kbio: boolean;
- // Enable mouse biometrics
- mbio: boolean;
- // Enable touch biometrics
- tbio: boolean;
-}
-
-export interface SessionOptions {
- userAgent?: string;
- proxy?: string;
-}
-
-let parseToken = (token: string): TokenInfo =>
- Object.fromEntries(
- token
- .split("|")
- .map((v) => v.split("=").map((v) => decodeURIComponent(v)))
- );
-
-export class Session {
- public token: string;
- public tokenInfo: TokenInfo;
- private userAgent: string;
- private proxy: string;
-
- constructor(
- token: string | GetTokenResult,
- sessionOptions?: SessionOptions
- ) {
- if (typeof token === "string") {
- this.token = token;
- } else {
- this.token = token.token;
- }
- if (!this.token.startsWith("token="))
- this.token = "token=" + this.token;
-
- this.tokenInfo = parseToken(this.token);
- this.tokenInfo.mbio = typeof(token) !== "string" ? token.mbio ?? false : false
- this.userAgent = sessionOptions?.userAgent || util.DEFAULT_USER_AGENT;
- this.proxy = sessionOptions?.proxy;
- }
-
- async getChallenge(): Promise<Challenge> {
- let res = await http(
- this.tokenInfo.surl,
- {
- path: "/fc/gfct/",
- method: "POST",
- body: util.constructFormData({
- sid: this.tokenInfo.r,
- render_type: "canvas",
- token: this.tokenInfo.token,
- analytics_tier: this.tokenInfo.at,
- "data%5Bstatus%5D": "init",
- lang: "en",
- apiBreakerVersion: "green"
- }),
- headers: {
- "User-Agent": this.userAgent,
- "Content-Type": "application/x-www-form-urlencoded",
- "Accept-Language": "en-US,en;q=0.9",
- "Sec-Fetch-Site": "same-origin",
- "Referer": this.getEmbedUrl()
- },
- },
- this.proxy
- );
-
- let data = JSON.parse(res.body.toString());
- data.token = this.token;
- data.tokenInfo = this.tokenInfo;
-
- if (data.game_data.gameType == 1) {
- return new Challenge1(data, {
- proxy: this.proxy,
- userAgent: this.userAgent,
- });
- } else if (data.game_data.gameType == 3) {
- return new Challenge3(data, {
- proxy: this.proxy,
- userAgent: this.userAgent,
- });
- } else if (data.game_data.gameType == 4) {
- return new Challenge4(data, {
- proxy: this.proxy,
- userAgent: this.userAgent,
- });
- } else {
- throw new Error(
- "Unsupported game type: " + data.game_data.gameType
- );
- }
- //return res.body.toString()
- }
-
- getEmbedUrl(): string {
- return `${this.tokenInfo.surl}/fc/gc/?${util.constructFormData(
- this.tokenInfo
- )}`;
- }
-}