简体中文 | English | 繁體中文 | 文言文 | Esperanto | Ελληνικά | संस्कृतम् | 火星语 | Kiswahili
基于 Rust 的 Pixiv Telegram 机器人。
- 作者订阅:订阅 Pixiv 画师,自动获取新作品更新通知。
- 排行榜订阅:订阅 Pixiv 日榜、周榜或月榜。
- Pixiv 链接检测:自动检测消息中的 Pixiv 作品和用户链接。
- 作品链接:发送完整图片。
- 用户链接:提供快速订阅选项。
- 智能图片处理:
- 自动将多张图片组合成相册。
- 缓存图片以减少服务器负载和 Pixiv API 调用。
- 支持对敏感内容(R-18、NSFW)进行模糊处理。
- 灵活的调度:随机化轮询间隔,模拟真人用户行为,避免触发速率限制。
- 访问控制:
- 管理员/所有者角色,用于管理群组聊天中的机器人。
- 可配置"私有"(仅邀请)或"公开"模式。
- 可自定义:
- 每个聊天的敏感标签设置。
- 可配置的缓存和日志记录。
我们推荐使用 Docker 进行部署,因为它会自动处理依赖项和环境设置。
-
克隆仓库:
git clone https://github.com/icceey/pixivbot.git cd pixivbot -
配置机器人:
cp config.toml.example config.toml # 编辑 config.toml 填入你的令牌 -
使用 Docker Compose 启动:
docker compose up -d
(根目录中包含
docker-compose.yml文件)
如果你更喜欢直接在机器上运行:
-
前置要求:
- Rust(最新稳定版)
- SQLite
-
克隆并配置:
git clone https://github.com/icceey/pixivbot.git cd pixivbot cp config.toml.example config.toml # 编辑 config.toml 填入你的凭证
-
构建并运行:
cargo run --release
在配置机器人之前,你需要获取两个必需的令牌:
- 在 Telegram 中搜索 @BotFather
- 发送
/newbot并按照指示操作 - 为你的机器人选择名称和用户名
- 你将收到类似
123456789:ABCdefGHIjklMNOpqrsTUVwxyz的令牌 - 将此令牌复制到
config.toml的telegram.bot_token字段
推荐方法:使用 get-pixivpy-token
获取 refresh token 后,将其复制到 config.toml 的 pixiv.refresh_token 字段。
config.toml 或环境变量(前缀 PIX__,使用双下划线)支持的配置选项:
| 配置键 | 环境变量 | 说明 | 默认值 |
|---|---|---|---|
telegram.bot_token |
PIX__TELEGRAM__BOT_TOKEN |
Telegram Bot API Token | "" |
telegram.owner_id |
PIX__TELEGRAM__OWNER_ID |
所有者用户 ID | 0 |
telegram.bot_mode |
PIX__TELEGRAM__BOT_MODE |
public 或 private |
"private" |
pixiv.refresh_token |
PIX__PIXIV__REFRESH_TOKEN |
Pixiv OAuth Refresh Token | "" |
database.url |
PIX__DATABASE__URL |
数据库连接 URL | sqlite:./data/pixivbot.db?mode=rwc |
logging.level |
PIX__LOGGING__LEVEL |
日志级别(info、debug、warn) | "info" |
scheduler.cache_retention_days |
- | 缓存保留天数 | 7 |
/start- 启动机器人/help- 显示帮助信息/sub <id,...> [+tag1 -tag2]- 订阅画师/subrank <mode>- 订阅排行榜(daily、weekly、monthly)/unsub <id,...>- 取消订阅画师/unsubrank <mode>- 取消订阅排行榜/list- 列出活跃的订阅/settings- 显示和管理聊天设置(交互式界面,带有内联按钮)- 切换敏感内容模糊
- 编辑敏感标签
- 编辑排除标签
/cancel- 取消当前设置操作/download <url|id>- 下载原图(或回复消息)
/enablechat [chat_id]- 在聊天中启用机器人(如果处于私有模式)/disablechat [chat_id]- 在聊天中禁用机器人
/setadmin <user_id>- 将用户提升为管理员/unsetadmin <user_id>- 将管理员降级为用户/info- 显示机器人系统状态
有关开发指南,请参阅 CONTRIBUTING.md。
- PixivPy:Pixiv API 实现的重要参考。没有他们的工作,这个项目就不可能实现。
- AI 助手:特别感谢 GitHub Copilot、Claude 和 Gemini 在开发过程中提供的技术支持和代码生成。