49 lines
1.1 KiB
JavaScript
49 lines
1.1 KiB
JavaScript
#!/usr/bin/env node
|
|
import puppeteer from 'puppeteer-core';
|
|
import { appendFileSync } from 'fs';
|
|
|
|
const LOG = '/Users/jianzhang/.openclaw/workspace/scripts/checkin.log';
|
|
|
|
function log(msg) {
|
|
const ts = new Date().toISOString();
|
|
appendFileSync(LOG, `[${ts}] ${msg}\n`);
|
|
console.log(msg);
|
|
}
|
|
|
|
async function run() {
|
|
const browser = await puppeteer.connect({
|
|
browserURL: 'http://127.0.0.1:18800'
|
|
});
|
|
|
|
const pages = await browser.pages();
|
|
let page = pages.find(p => p.url().includes('nodeseek.com'));
|
|
|
|
if (!page) {
|
|
page = await browser.newPage();
|
|
await page.goto('https://www.nodeseek.com');
|
|
log('创建新标签页');
|
|
} else {
|
|
log('使用已有标签页');
|
|
}
|
|
|
|
await new Promise(r => setTimeout(r, 3000));
|
|
|
|
const result = await page.evaluate(async () => {
|
|
const res = await fetch('/api/attendance', {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify({ random: true })
|
|
});
|
|
return res.json();
|
|
});
|
|
|
|
log(`签到结果: ${JSON.stringify(result)}`);
|
|
|
|
await browser.disconnect();
|
|
}
|
|
|
|
run().catch((e) => {
|
|
log(`错误: ${e.message}`);
|
|
process.exit(1);
|
|
});
|