raveninsta
Version:
CLI Tool para Instagram - Mapeamento bi-direcional: Username ↔ ID
66 lines (55 loc) • 2.2 kB
JavaScript
/**
* 📊 Comando Status - Verifica status e validade da sessão
* @module commands/status
* @async
* @description Verifica existência, validade e tempo restante da sessão atual
*/
async function execute() {
try {
const fs = require('fs').promises;
const path = require('path');
const sessionFile = path.join(process.cwd(), 'auth', 'session_data.json');
const keyFile = path.join(process.cwd(), 'auth', 'session_key.bin');
console.log('🔍 Verificando sessão...');
try {
await fs.access(sessionFile);
const sessionStats = await fs.stat(sessionFile);
let keyExists = false;
try {
await fs.access(keyFile);
keyExists = true;
} catch (error) {
}
const agora = new Date();
const tempoDecorrido = agora - sessionStats.mtime;
const horasDecorridas = tempoDecorrido / (1000 * 60 * 60);
const ehRecente = horasDecorridas < 24;
console.log('\n📊 STATUS DA SESSÃO:');
console.log(`📁 Localização: ${path.join('auth', path.basename(sessionFile))}`);
console.log(`🔑 Arquivo de chave: ${path.join('auth', path.basename(keyFile))} ${keyExists ? '✅' : '❌'}`);
console.log(`⏰ Criada/Modificada: ${sessionStats.mtime.toLocaleString('pt-BR')}`);
console.log(`🕐 Há ${horasDecorridas.toFixed(1)} horas`);
if (ehRecente) {
console.log('\n✅ Sessão ativa e recente (menos de 24 horas)');
console.log('💡 Você pode usar: raveninsta buscar <usuario>');
} else {
console.log('\n⚠️ Sessão expirada (mais de 24 horas)');
console.log('💡 Execute: raveninsta login para renovar');
}
} catch (error) {
console.log('\n❌ Nenhuma sessão ativa encontrada em:', path.join(process.cwd(), 'auth'));
console.log('💡 Execute: raveninsta login para criar uma nova sessão');
}
} catch (error) {
console.log('❌ Erro ao verificar sessão:', error.message);
}
}
/** @type {Object} Configuração do comando status */
const config = {
name: 'status',
description: 'Verificar status e validade da sessão atual'
};
module.exports = {
execute,
config
};