| import { extractTopicIdFromUrl, processAndSaveTopicData } from './src/topic_data.js'; | |
| import fs from 'fs'; | |
| import dotenv from 'dotenv'; | |
| // Load environment variables | |
| dotenv.config(); | |
| if (fs.existsSync(".env.local")) { | |
| const envConfig = dotenv.parse(fs.readFileSync(".env.local")); | |
| for (const k in envConfig) { | |
| process.env[k] = envConfig[k]; | |
| } | |
| } | |
| async function testTopicData() { | |
| try { | |
| // Test URL extraction | |
| const testUrls = [ | |
| 'https://linux.do/t/topic/710103', | |
| 'https://linux.do/t/topic/525305/100', | |
| 'https://linux.do/t/topic/13716/790' | |
| ]; | |
| console.log('测试话题ID提取:'); | |
| for (const url of testUrls) { | |
| const topicId = extractTopicIdFromUrl(url); | |
| console.log(`URL: ${url} -> Topic ID: ${topicId}`); | |
| } | |
| // Test with an invalid URL | |
| const invalidUrl = 'https://linux.do/latest'; | |
| const invalidTopicId = extractTopicIdFromUrl(invalidUrl); | |
| console.log(`Invalid URL: ${invalidUrl} -> Topic ID: ${invalidTopicId}`); | |
| console.log('\n✅ 话题ID提取测试完成'); | |
| // Note: We're not testing the full processAndSaveTopicData function here | |
| // because it requires a Puppeteer page instance which is complex to set up | |
| console.log('\n📝 完整的话题数据抓取功能需要在实际运行环境中测试'); | |
| } catch (error) { | |
| console.error('测试失败:', error); | |
| } | |
| } | |
| testTopicData(); | |