| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- #!/usr/bin/env node
- /**
- * 测试发布任务 #61
- * - 测试代理对微信视频号的可用性
- * - 测试账号 Cookie 有效性
- */
- const http = require('http');
- // 配置
- const PYTHON_API = 'http://localhost:5005';
- const TASK_ID = 61;
- const ACCOUNT_ID = 24;
- // 从数据库获取的代理配置
- const PROXY_CONFIG = {
- city: "上海",
- enabled: true,
- provider: "shenlong",
- regionCode: "310000",
- regionName: "市辖区",
- regionPath: ["31", "310000"]
- };
- // 测试代理
- async function testProxy() {
- return new Promise((resolve, reject) => {
- console.log('\n=== 1️⃣ 测试代理配置 ===');
- console.log('代理配置:', JSON.stringify(PROXY_CONFIG, null, 2));
-
- const postData = JSON.stringify({
- ...PROXY_CONFIG,
- platform: 'weixin' // 测试对微信平台的可用性
- });
-
- const req = http.request(`${PYTHON_API}/proxy/test`, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- 'Content-Length': Buffer.byteLength(postData)
- }
- }, (res) => {
- let data = '';
- res.on('data', chunk => data += chunk);
- res.on('end', () => {
- try {
- const result = JSON.parse(data);
- console.log('\n代理测试结果:', JSON.stringify(result, null, 2));
- resolve(result);
- } catch (e) {
- reject(e);
- }
- });
- });
-
- req.on('error', (e) => {
- console.error('❌ 代理测试失败:', e.message);
- reject(e);
- });
-
- req.write(postData);
- req.end();
- });
- }
- // 测试发布(带代理)
- async function testPublish() {
- return new Promise((resolve, reject) => {
- console.log('\n=== 2️⃣ 测试发布 ===');
- console.log('任务ID:', TASK_ID);
- console.log('账号ID:', ACCOUNT_ID);
-
- // 从 Node.js API 获取完整任务信息
- http.get(`http://localhost:3000/api/publish/tasks/${TASK_ID}`, (res) => {
- let data = '';
- res.on('data', chunk => data += chunk);
- res.on('end', async () => {
- try {
- const taskData = JSON.parse(data);
- if (!taskData.success) {
- throw new Error(taskData.error || '获取任务失败');
- }
-
- console.log('\n任务信息:', JSON.stringify({
- id: taskData.data.id,
- title: taskData.data.title,
- status: taskData.data.status,
- video_path: taskData.data.video_path,
- proxy: taskData.data.publish_proxy
- }, null, 2));
-
- // 调用 Python AI 发布接口
- console.log('\n开始测试发布...');
- const publishData = JSON.stringify({
- platform: 'weixin',
- cookie: '', // 需要从数据库获取
- title: taskData.data.title,
- description: taskData.data.description,
- video_path: `E:\\Workspace\\multi-platform-media-manage${taskData.data.video_path}`,
- headless: false, // 显示浏览器
- return_screenshot: true,
- proxy: taskData.data.publish_proxy,
- user_id: taskData.data.user_id,
- publish_task_id: taskData.data.id,
- publish_account_id: ACCOUNT_ID
- });
-
- const publishReq = http.request(`${PYTHON_API}/publish/ai-assisted`, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- 'Content-Length': Buffer.byteLength(publishData)
- }
- }, (publishRes) => {
- let publishResult = '';
- publishRes.on('data', chunk => publishResult += chunk);
- publishRes.on('end', () => {
- try {
- const result = JSON.parse(publishResult);
- console.log('\n发布结果:', JSON.stringify({
- success: result.success,
- status: result.status,
- error: result.error,
- need_captcha: result.need_captcha,
- captcha_type: result.captcha_type
- }, null, 2));
- resolve(result);
- } catch (e) {
- reject(e);
- }
- });
- });
-
- publishReq.on('error', (e) => {
- console.error('❌ 发布请求失败:', e.message);
- reject(e);
- });
-
- publishReq.write(publishData);
- publishReq.end();
-
- } catch (e) {
- reject(e);
- }
- });
- }).on('error', reject);
- });
- }
- // 主函数
- async function main() {
- try {
- console.log('🔍 开始测试发布任务 #' + TASK_ID);
- console.log('=' .repeat(60));
-
- // 1. 测试代理
- const proxyResult = await testProxy();
-
- if (!proxyResult.success) {
- console.log('\n❌ 代理测试失败,请检查代理配置');
- return;
- }
-
- // 2. 测试发布
- // await testPublish(); // 暂时跳过,需要获取 Cookie
-
- console.log('\n✅ 测试完成');
-
- } catch (error) {
- console.error('\n❌ 测试失败:', error);
- }
- }
- main();
|