Delete you_providers/cookieUtils.mjs
This commit is contained in:
@@ -1,242 +0,0 @@
|
|||||||
import * as docx from "docx";
|
|
||||||
import cookie from "cookie";
|
|
||||||
import fs from "fs";
|
|
||||||
import {execSync} from "child_process";
|
|
||||||
|
|
||||||
function getGitRevision() {
|
|
||||||
// get git revision and branch
|
|
||||||
try {
|
|
||||||
const revision = execSync("git rev-parse --short HEAD", {stdio: "pipe"}).toString().trim();
|
|
||||||
const branch = execSync("git rev-parse --abbrev-ref HEAD", {stdio: "pipe"}).toString().trim();
|
|
||||||
return {revision, branch};
|
|
||||||
} catch (e) {
|
|
||||||
return {revision: "unknown", branch: "unknown"};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 创建目录
|
|
||||||
function createDirectoryIfNotExists(dirPath) {
|
|
||||||
if (!fs.existsSync(dirPath)) {
|
|
||||||
fs.mkdirSync(dirPath, {recursive: true});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function extractCookie(cookies) {
|
|
||||||
let jwtSession = null;
|
|
||||||
let jwtToken = null;
|
|
||||||
let ds = null;
|
|
||||||
let dsr = null;
|
|
||||||
let you_subscription = null;
|
|
||||||
let youpro_subscription = null;
|
|
||||||
|
|
||||||
cookies = cookie.parse(cookies);
|
|
||||||
if (cookies["stytch_session"]) jwtSession = cookies["stytch_session"];
|
|
||||||
if (cookies["stytch_session_jwt"]) jwtToken = cookies["stytch_session_jwt"];
|
|
||||||
if (cookies["DS"]) ds = cookies["DS"];
|
|
||||||
if (cookies["DSR"]) dsr = cookies["DSR"];
|
|
||||||
if (cookies["you_subscription"]) you_subscription = cookies["you_subscription"];
|
|
||||||
if (cookies["youpro_subscription"]) youpro_subscription = cookies["youpro_subscription"];
|
|
||||||
|
|
||||||
return {jwtSession, jwtToken, ds, dsr, you_subscription, youpro_subscription};
|
|
||||||
}
|
|
||||||
|
|
||||||
function getSessionCookie(jwtSession, jwtToken, ds, dsr, you_subscription, youpro_subscription) {
|
|
||||||
let sessionCookie = [];
|
|
||||||
|
|
||||||
// 处理旧版 cookie
|
|
||||||
if (jwtSession && jwtToken) {
|
|
||||||
sessionCookie = [
|
|
||||||
{
|
|
||||||
name: "stytch_session",
|
|
||||||
value: jwtSession,
|
|
||||||
domain: "you.com",
|
|
||||||
path: "/",
|
|
||||||
expires: 1800000000,
|
|
||||||
httpOnly: false,
|
|
||||||
secure: true,
|
|
||||||
sameSite: "Lax",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "ydc_stytch_session",
|
|
||||||
value: jwtSession,
|
|
||||||
domain: "you.com",
|
|
||||||
path: "/",
|
|
||||||
expires: 1800000000,
|
|
||||||
httpOnly: true,
|
|
||||||
secure: true,
|
|
||||||
sameSite: "Lax",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "stytch_session_jwt",
|
|
||||||
value: jwtToken,
|
|
||||||
domain: "you.com",
|
|
||||||
path: "/",
|
|
||||||
expires: 1800000000,
|
|
||||||
httpOnly: false,
|
|
||||||
secure: true,
|
|
||||||
sameSite: "Lax",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "ydc_stytch_session_jwt",
|
|
||||||
value: jwtToken,
|
|
||||||
domain: "you.com",
|
|
||||||
path: "/",
|
|
||||||
expires: 1800000000,
|
|
||||||
httpOnly: true,
|
|
||||||
secure: true,
|
|
||||||
sameSite: "Lax",
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
// 处理新版 cookie
|
|
||||||
if (ds) {
|
|
||||||
sessionCookie.push({
|
|
||||||
name: "DS",
|
|
||||||
value: ds,
|
|
||||||
domain: "you.com",
|
|
||||||
path: "/",
|
|
||||||
expires: 1800000000,
|
|
||||||
httpOnly: false,
|
|
||||||
secure: true,
|
|
||||||
sameSite: "Lax",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (dsr) {
|
|
||||||
sessionCookie.push({
|
|
||||||
name: "DSR",
|
|
||||||
value: dsr,
|
|
||||||
domain: "you.com",
|
|
||||||
path: "/",
|
|
||||||
expires: 1800000000,
|
|
||||||
httpOnly: false,
|
|
||||||
secure: true,
|
|
||||||
sameSite: "Lax",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (you_subscription) {
|
|
||||||
sessionCookie.push({
|
|
||||||
name: "you_subscription",
|
|
||||||
value: you_subscription,
|
|
||||||
domain: "you.com",
|
|
||||||
path: "/",
|
|
||||||
expires: 1800000000,
|
|
||||||
httpOnly: false,
|
|
||||||
secure: true,
|
|
||||||
sameSite: "Lax",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (youpro_subscription) {
|
|
||||||
sessionCookie.push({
|
|
||||||
name: "youpro_subscription",
|
|
||||||
value: youpro_subscription,
|
|
||||||
domain: "you.com",
|
|
||||||
path: "/",
|
|
||||||
expires: 1800000000,
|
|
||||||
httpOnly: false,
|
|
||||||
secure: true,
|
|
||||||
sameSite: "Lax",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 添加隐身模式 cookie(如果启用)
|
|
||||||
if (process.env.INCOGNITO_MODE === "true") {
|
|
||||||
sessionCookie.push({
|
|
||||||
name: "incognito",
|
|
||||||
value: "true",
|
|
||||||
domain: "you.com",
|
|
||||||
path: "/",
|
|
||||||
expires: 1800000000,
|
|
||||||
secure: true,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return sessionCookie;
|
|
||||||
}
|
|
||||||
|
|
||||||
function sleep(ms) {
|
|
||||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
||||||
}
|
|
||||||
|
|
||||||
function createDocx(content) {
|
|
||||||
let paragraphs = [];
|
|
||||||
content.split("\n").forEach((line) => {
|
|
||||||
paragraphs.push(
|
|
||||||
new docx.Paragraph({
|
|
||||||
children: [new docx.TextRun(line)],
|
|
||||||
})
|
|
||||||
);
|
|
||||||
});
|
|
||||||
let doc = new docx.Document({
|
|
||||||
sections: [
|
|
||||||
{
|
|
||||||
properties: {},
|
|
||||||
children: paragraphs,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
});
|
|
||||||
return docx.Packer.toBuffer(doc).then((buffer) => buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
// eventStream util
|
|
||||||
function createEvent(event, data) {
|
|
||||||
// if data is object, stringify it
|
|
||||||
if (typeof data === "object") {
|
|
||||||
data = JSON.stringify(data);
|
|
||||||
}
|
|
||||||
return `event: ${event}\ndata: ${data}\n\n`;
|
|
||||||
}
|
|
||||||
|
|
||||||
function extractPerplexityCookie(cookieString) {
|
|
||||||
const cookies = cookie.parse(cookieString);
|
|
||||||
return {
|
|
||||||
sessionToken: cookies['__Secure-next-auth.session-token'],
|
|
||||||
isIncognito: cookies['pplx.is-incognito'] === 'true'
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function getPerplexitySessionCookie(extractedCookie) {
|
|
||||||
let sessionCookie = [];
|
|
||||||
|
|
||||||
if (extractedCookie.sessionToken) {
|
|
||||||
sessionCookie.push({
|
|
||||||
name: "__Secure-next-auth.session-token",
|
|
||||||
value: extractedCookie.sessionToken,
|
|
||||||
domain: "www.perplexity.ai",
|
|
||||||
path: "/",
|
|
||||||
expires: 1800000000,
|
|
||||||
httpOnly: true,
|
|
||||||
secure: true,
|
|
||||||
sameSite: "Lax",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 添加无痕模式 cookie (如果启用)
|
|
||||||
if (process.env.INCOGNITO_MODE === "true") {
|
|
||||||
sessionCookie.push({
|
|
||||||
name: "pplx.is-incognito",
|
|
||||||
value: "true",
|
|
||||||
domain: "www.perplexity.ai",
|
|
||||||
path: "/",
|
|
||||||
expires: 1800000000,
|
|
||||||
httpOnly: false,
|
|
||||||
secure: true,
|
|
||||||
sameSite: "Lax",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return sessionCookie;
|
|
||||||
}
|
|
||||||
|
|
||||||
export {
|
|
||||||
createEvent,
|
|
||||||
createDirectoryIfNotExists,
|
|
||||||
sleep,
|
|
||||||
extractCookie,
|
|
||||||
getSessionCookie,
|
|
||||||
createDocx,
|
|
||||||
getGitRevision,
|
|
||||||
extractPerplexityCookie,
|
|
||||||
getPerplexitySessionCookie
|
|
||||||
};
|
|
||||||
Reference in New Issue
Block a user