后端改为使用日志记录器管理日志

This commit is contained in:
2025-08-31 18:55:22 +08:00
parent ad5dfc64cb
commit a09d6cab0e
30 changed files with 962 additions and 323 deletions
+49 -44
View File
@@ -1,6 +1,11 @@
const PixivBackend = require('./core');
const proxyConfig = require('./config');
const readline = require('readline');
const { defaultLogger } = require('./utils/logger');
// 创建logger实例
const logger = defaultLogger.child('TestLogin');
// 创建命令行交互接口
const rl = readline.createInterface({
@@ -19,84 +24,84 @@ function askQuestion(question) {
// 测试登录流程
async function testLogin() {
console.log('=== Pixiv 登录测试脚本 ===\n');
logger.info('=== Pixiv 登录测试脚本 ===\n');
try {
// 1. 设置代理环境变量
console.log('1. 设置代理配置...');
logger.info('1. 设置代理配置...');
proxyConfig.setEnvironmentVariables();
// 2. 初始化后端
console.log('\n2. 初始化 Pixiv 后端...');
logger.info('\n2. 初始化 Pixiv 后端...');
const backend = new PixivBackend();
await backend.init();
// 3. 检查登录状态
console.log('\n3. 检查当前登录状态...');
logger.info('\n3. 检查当前登录状态...');
const loginStatus = backend.getLoginStatus();
console.log('登录状态:', loginStatus);
logger.info('登录状态:', loginStatus);
if (loginStatus.isLoggedIn) {
console.log('✅ 已登录,用户:', loginStatus.username);
logger.info('✅ 已登录,用户:', loginStatus.username);
return;
}
// 4. 获取登录URL
console.log('\n4. 获取登录URL...');
logger.info('\n4. 获取登录URL...');
const loginData = backend.getLoginUrl();
console.log('请访问以下URL进行登录:');
console.log(loginData.login_url);
console.log('\n登录完成后,请复制回调URL中的code参数');
logger.info('请访问以下URL进行登录:');
logger.info(loginData.login_url);
logger.info('\n登录完成后,请复制回调URL中的code参数');
// 5. 等待用户输入授权码
const code = await askQuestion('\n请输入授权码 (code参数): ');
if (!code || code.trim() === '') {
console.log('❌ 未输入授权码,测试终止');
logger.info('❌ 未输入授权码,测试终止');
return;
}
// 6. 处理登录回调
console.log('\n5. 处理登录回调...');
logger.info('\n5. 处理登录回调...');
const loginResult = await backend.handleLoginCallback(code.trim());
if (loginResult.success) {
console.log('✅ 登录成功!');
console.log('用户信息:', loginResult.user);
logger.info('✅ 登录成功!');
logger.info('用户信息:', loginResult.user);
// 7. 再次检查登录状态
console.log('\n6. 验证登录状态...');
logger.info('\n6. 验证登录状态...');
const finalStatus = backend.getLoginStatus();
console.log('最终登录状态:', finalStatus);
logger.info('最终登录状态:', finalStatus);
// 8. 测试获取用户信息
console.log('\n7. 测试获取用户信息...');
logger.info('\n7. 测试获取用户信息...');
const auth = backend.getAuth();
const userInfo = await auth.getUserInfo();
if (userInfo.success) {
console.log('✅ 获取用户信息成功:', userInfo.user);
logger.info('✅ 获取用户信息成功:', userInfo.user);
} else {
console.log('❌ 获取用户信息失败:', userInfo.error);
logger.info('❌ 获取用户信息失败:', userInfo.error);
}
} else {
console.log('❌ 登录失败:', loginResult.error);
logger.info('❌ 登录失败:', loginResult.error);
}
} catch (error) {
console.error('❌ 测试过程中发生错误:', error.message);
console.error('错误详情:', error);
logger.error('❌ 测试过程中发生错误:', error.message);
logger.error('错误详情:', error);
} finally {
// 清理资源
rl.close();
console.log('\n=== 测试完成 ===');
logger.info('\n=== 测试完成 ===');
}
}
// 测试重新登录功能
async function testRelogin() {
console.log('=== 测试重新登录功能 ===\n');
logger.info('=== 测试重新登录功能 ===\n');
try {
// 设置代理
@@ -110,21 +115,21 @@ async function testRelogin() {
const loginStatus = backend.getLoginStatus();
if (loginStatus.isLoggedIn) {
console.log('✅ 检测到已保存的登录信息');
console.log('用户:', loginStatus.username);
console.log('用户ID:', loginStatus.user_id);
logger.info('✅ 检测到已保存的登录信息');
logger.info('用户:', loginStatus.username);
logger.info('用户ID:', loginStatus.user_id);
} else {
console.log('❌ 没有保存的登录信息,无法测试重新登录');
logger.info('❌ 没有保存的登录信息,无法测试重新登录');
}
} catch (error) {
console.error('❌ 重新登录测试失败:', error.message);
logger.error('❌ 重新登录测试失败:', error.message);
}
}
// 测试登出功能
async function testLogout() {
console.log('=== 测试登出功能 ===\n');
logger.info('=== 测试登出功能 ===\n');
try {
// 设置代理
@@ -138,27 +143,27 @@ async function testLogout() {
const logoutResult = backend.logout();
if (logoutResult.success) {
console.log('✅ 登出成功');
logger.info('✅ 登出成功');
// 验证登出状态
const loginStatus = backend.getLoginStatus();
console.log('登出后状态:', loginStatus);
logger.info('登出后状态:', loginStatus);
} else {
console.log('❌ 登出失败');
logger.info('❌ 登出失败');
}
} catch (error) {
console.error('❌ 登出测试失败:', error.message);
logger.error('❌ 登出测试失败:', error.message);
}
}
// 主函数
async function main() {
console.log('请选择测试功能:');
console.log('1. 测试完整登录流程');
console.log('2. 测试重新登录');
console.log('3. 测试登出');
console.log('4. 运行所有测试');
logger.info('请选择测试功能:');
logger.info('1. 测试完整登录流程');
logger.info('2. 测试重新登录');
logger.info('3. 测试登出');
logger.info('4. 运行所有测试');
const choice = await askQuestion('\n请输入选择 (1-4): ');
@@ -173,22 +178,22 @@ async function main() {
await testLogout();
break;
case '4':
console.log('\n=== 运行所有测试 ===\n');
logger.info('\n=== 运行所有测试 ===\n');
await testLogin();
console.log('\n' + '='.repeat(50) + '\n');
logger.info('\n' + '='.repeat(50) + '\n');
await testRelogin();
console.log('\n' + '='.repeat(50) + '\n');
logger.info('\n' + '='.repeat(50) + '\n');
await testLogout();
break;
default:
console.log('❌ 无效选择');
logger.info('❌ 无效选择');
rl.close();
}
}
// 如果直接运行此脚本
if (require.main === module) {
main().catch(console.error);
main().catch(logger.error);
}
module.exports = {