此项目包含网站巡查功能以及 Telegram 和飞书 Bot。
- Node.JS ≥ 18
- MySQL ≥ 8.0
- Redis ≥ 7.0
- pnpm
- 后端运行时环境: Node.js
- 框架和库: Telegraf, Sequelize
- 数据库: MySQL, Redis
- 网络请求: Axios
- 浏览器自动化: Puppeteer
- 第三方服务: Lark Node.js SDK
- 安装 pnpm:
npm install -g pnpm
- 安装依赖:
pnpm install
- 构建项目:
pnpm run build
- 启动生产服务器:
pnpm run start
- 安装 pnpm:
npm install -g pnpm
- 安装依赖:
pnpm install
- 本地部署 MYSQL (这里假设本地已经安装完毕 docker 环境,包括 docker-cli 工具):
docker pull mysql
docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=travellings_bot -p 3306:3306 -d mysql:latest
- 初始化数据库
-
使用脚本自动初始化数据库数据
- 根据脚本自述文件操作
-
手动初始化数据库数据
- 使用任意工具链接 MYSQL 服务器,以
mycli
举例mycli -u root -p root
- 输入以下指令创建数据库,以及初始化数据库数据
-- 创建数据库 CREATE DATABASE travellings_bot; -- 此步如果提示 (1007, "Can't create database 'travellings_bot'; database exists") 类似的内容 -- 请使用 DROP DATABASE travellings_bot; 删除可能已存在的数据库 -- 创建用户并授予权限 CREATE USER 'test' IDENTIFIED BY 'test'; GRANT ALL PRIVILEGES ON travellings_bot.* TO 'test'; FLUSH PRIVILEGES; -- 使用数据库 USE travellings_bot; -- 创建 webs 表 CREATE TABLE webs ( id INT AUTO_INCREMENT PRIMARY KEY, status TEXT, name TEXT NOT NULL, link TEXT NOT NULL, tag TEXT, failedReason TEXT, lastManualCheck DATETIME ); -- 创建 users 表 CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, user TEXT NOT NULL, token TEXT NOT NULL, role TEXT NOT NULL, lastLogin TEXT ); -- 插入测试数据 INSERT INTO webs (status, name, link, tag, failedReason, lastManualCheck) VALUES ('RUN', 'Example Site 1', 'https://www.luochancy.com/', 'example', NULL, NULL), ('RUN', 'Example Site 2', 'https://blog.xcnya.cn', 'example', NULL, NULL), ('RUN', 'Travellings', 'https://www.travellings.cn', 'example', NULL, NULL);
- 使用任意工具链接 MYSQL 服务器,以
-
- 复制项目根目录的
.env.example
,复制后的文件更名为.env
,并且修改.env
中这些值
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=root
DB_NAME=travellings_bot
DB_PASSWORD=root
pnpm run dev-public
启动应用程序后,应用程序将以无 Token 模式运行,直接检查数据库中全部的域名。
需要在 .env
配置 Bot/开往 API,以及 REDIS 服务器才能启动
启动开发服务器:
pnpm run dev
详见 @TravellingsCN_Bot /help
start - 开始
help - 帮助
version - 版本
query - 查询站点
check - 巡查站点
screenshot - 截图站点
- 巡查功能放在
src/methods
目录 - 组件放在
src/modules
目录 - Bot 相关放在
src/bot
目录- 平台相关的 Bot 功能放在
src/bot/adapters
目录 - Bot 命令实现放在
src/bot/commands
目录 - Bot 中间件实现放在
src/bot/middlewares
目录 - Bot 工具类实现放在
src/bot/utils
目录
- 平台相关的 Bot 功能放在
- 工具(外置函数)放在
src/utils
目录 - 构建产物放在
dist
目录 - 项目相关脚本放在
scripts
目录
欢迎为项目提出 Issue、Pull requests
。
贡献时请参考本项目已有的 Commit History,规范 Commit message。
Under GPL v3
2024 © Travellings-link Project. All rights reserved.