|
|
| 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; |
| } |