Skip to content

Latest commit

 

History

History
111 lines (82 loc) · 2.62 KB

File metadata and controls

111 lines (82 loc) · 2.62 KB

CLAUDE.md - Linux.do 自动浏览项目开发指南

项目概述

这是一个用于自动浏览 linux.do 论坛的 Node.js 项目,使用 Playwright 实现浏览器自动化,模拟真实用户行为完成日常浏览任务。

技术栈

  • 运行时: Node.js 20+
  • 语言: TypeScript
  • 自动化框架: Playwright
  • 进程管理: PM2 (生产环境)

项目结构

linux-do-auto/
├── src/
│   ├── index.ts           # 主入口
│   ├── config.ts          # 配置文件
│   ├── scheduler.ts       # 时间调度器
│   ├── browser.ts         # 浏览器引擎
│   ├── humanizer.ts       # 人性化行为模块
│   ├── actions.ts         # 具体操作
│   ├── login.ts           # 登录脚本
│   └── logger.ts          # 日志模块
├── storage/
│   └── state.json         # 登录状态
├── logs/                  # 日志目录
├── docs/
│   └── design.md          # 设计文档
├── package.json
├── tsconfig.json
└── CLAUDE.md              # 本文件

开发命令

# 安装依赖
npm install

# 首次登录(交互模式,会打开浏览器让你手动登录)
npm run login

# 开发模式运行
npm run dev

# 构建 TypeScript
npm run build

# 生产模式运行
npm start

配置说明

配置文件位于 src/config.ts,主要配置项:

  • activeHours: 活跃时段(默认 9:00-18:00)
  • dailyTargets: 每日浏览目标
  • interaction: 互动概率(点赞、回复)
  • delays: 各种延迟参数

登录状态

  • 登录状态保存在 storage/state.json
  • 首次使用需要运行 npm run login 手动登录
  • 状态过期后需要重新登录

代码规范

  • 使用 TypeScript 严格模式
  • 使用 async/await 处理异步
  • 所有延迟使用 humanizer 模块的随机函数
  • 日志使用 logger 模块

注意事项

  1. 不要硬编码延迟时间,使用 humanizer 模块的随机函数
  2. 不要频繁请求,保持人性化的访问频率
  3. 处理异常情况,网络错误、页面加载失败等
  4. 保护登录凭证,不要提交 storage/state.json 到 Git

Git 忽略文件

以下文件/目录不应提交到 Git:

  • node_modules/
  • dist/
  • storage/
  • logs/
  • .env

任务完成提醒

重要: 每次完成任务后,请确认是否需要:

  1. 提交代码到 Git

    git add .
    git commit -m "描述你的更改"
  2. 推送到远程仓库

    git push origin main

请在每次任务结束时询问用户是否需要执行这些操作。