Download src/browser/session.js from xcolorday/fqa: direct link, hf CLI and curl.
- Browser
- Download file 2.9 kB
-
https://huggingface.co/spaces/xcolorday/fqa/resolve/main/src/browser/session.js
- Command line
-
hf download hf://spaces/xcolorday/fqa/src/browser/session.js
-
curl -L -o session.js https://huggingface.co/spaces/xcolorday/fqa/resolve/main/src/browser/session.js
2.9 kB
| import fs from 'fs'; | |
| import path from 'path'; | |
| import { fileURLToPath } from 'url'; | |
| const __filename = fileURLToPath(import.meta.url); | |
| const __dirname = path.dirname(__filename); | |
| const SESSION_DIR = path.join(__dirname, '..', '..', 'session'); | |
| const TOKEN_FILE = path.join(SESSION_DIR, 'auth_token.txt'); | |
| export function initSessionDirectory() { | |
| if (!fs.existsSync(SESSION_DIR)) { | |
| fs.mkdirSync(SESSION_DIR, { recursive: true }); | |
| console.log(`Создана директория для сессий: ${SESSION_DIR}`); | |
| } | |
| } | |
| export async function saveSession(context) { | |
| try { | |
| initSessionDirectory(); | |
| if (context && context.browser()) { | |
| const sessionPath = path.join(SESSION_DIR, 'state.json'); | |
| await context.storageState({ path: sessionPath }); | |
| console.log('Сессия сохранена'); | |
| return true; | |
| } | |
| } catch (error) { | |
| console.error('Ошибка при сохранении сессии:', error); | |
| } | |
| return false; | |
| } | |
| export async function loadSession(context) { | |
| try { | |
| const sessionPath = path.join(SESSION_DIR, 'state.json'); | |
| if (fs.existsSync(sessionPath)) { | |
| await context.storageState({ path: sessionPath }); | |
| console.log('Сессия загружена'); | |
| return true; | |
| } | |
| } catch (error) { | |
| console.error('Ошибка при загрузке сессии:', error); | |
| } | |
| return false; | |
| } | |
| export function clearSession() { | |
| try { | |
| const sessionPath = path.join(SESSION_DIR, 'state.json'); | |
| if (fs.existsSync(sessionPath)) { | |
| fs.unlinkSync(sessionPath); | |
| console.log('Сессия очищена'); | |
| return true; | |
| } | |
| } catch (error) { | |
| console.error('Ошибка при очистке сессии:', error); | |
| } | |
| return false; | |
| } | |
| export function hasSession() { | |
| const sessionPath = path.join(SESSION_DIR, 'state.json'); | |
| return fs.existsSync(sessionPath); | |
| } | |
| export function saveAuthToken(token) { | |
| try { | |
| initSessionDirectory(); | |
| if (token) { | |
| fs.writeFileSync(TOKEN_FILE, token, 'utf8'); | |
| console.log('Токен авторизации сохранен'); | |
| return true; | |
| } | |
| } catch (error) { | |
| console.error('Ошибка при сохранении токена авторизации:', error); | |
| } | |
| return false; | |
| } | |
| export function loadAuthToken() { | |
| try { | |
| if (fs.existsSync(TOKEN_FILE)) { | |
| const token = fs.readFileSync(TOKEN_FILE, 'utf8'); | |
| console.log('Токен авторизации загружен'); | |
| return token; | |
| } | |
| } catch (error) { | |
| console.error('Ошибка при загрузке токена авторизации:', error); | |
| } | |
| return null; | |
| } |