Skip to content

moehanabi/tg-reviewer-bot

Repository files navigation

tg reviewer bot

Telegram 投稿/审稿机器人,基于 Telegram Bot API 7.1 以及 python-telegram-bot v21.0.1, SQLAlchemy 2.0.29, PyMySQL 1.1.0

功能使用方法

投稿

  1. 发送您希望投稿的内容,包括文本、图片、视频、文件、GIF 和贴纸。
  2. 可以实名或匿名提交、取消当前的提交。
  3. 支持以单条消息作为一个投稿(需设置环境变量 TG_SINGLE_MODETrue)。
  4. 支持多次发送内容合并到同一个投稿(需设置环境变量 TG_SINGLE_MODEFalse,使用 /new 命令开始一个新的提交)。

审稿

  1. 投稿消息将发送到指定的审核群组。
  2. 审核人员可以通过投票按钮通过或拒绝投稿。
  3. 投稿被拒绝后,需要由拒稿人提供拒绝理由。
    • 回复对应审核消息 /reject 拒稿理由 以填写自定义拒稿理由
  4. 支持在审稿结束前撤回投票。
  5. 支持附加审稿人备注到稿件,若稿件通过将会附加到通过的稿件末尾
    • 回复对应审核消息 /append 备注内容 以添加备注
    • 回复对应审核消息 /remove_append 待删除备注的编号 以删除备注
  6. 支持审稿人通过机器人向投稿人发送消息。
    • 回复对应审核消息 /comment 消息内容 以发送消息
  7. 支持对 NSFW 稿件自动添加遮罩。
  8. 支持投稿被拒后忽略投稿,不给投稿人发送拒稿提示,也不向拒稿频道转发稿件

用户屏蔽

  1. 在审稿群中使用 /ban 用户uid 理由 屏蔽特定用户投稿
  2. 在审稿群中使用 /unban 用户uid 解除屏蔽
  3. 在审稿群中使用 /listban 查看被屏蔽的用户列表
  4. 被屏蔽的用户无法新建投稿,可通过 TG_BANNED_NOTIFY 环境变量设置是否需要对该用户进行被屏蔽的提示
  5. 被屏蔽的用户信息(用户名、全名)根据屏蔽时的 uid 获取并存于数据库,不会实时更新(避免用户拉黑机器人后无法获取最新的用户名),管理员的用户信息则是实时获取(因此需要管理员都曾与机器人聊天过)

统计

  1. 统计投稿者投稿数、被采纳数与被拒数,并可由投稿者通过机器人发送 /stats 获取或者由审稿人在审稿群中发送 /stats uid 获取
  2. 统计审稿人通过数、拒绝数、通过后被其他审稿人拒绝的数量、拒绝后被其他审稿人通过的数量、最后一次审稿时间,由审稿人在审稿群中发送 /reviewer_stats uid 获取

环境变量

以下是项目中使用的环境变量及其含义的详细列表:

环境变量名称 描述 示例值 是否必须
TG_TOKEN Telegram 机器人的 API 令牌 123456789:ABCdefGhIJKlmNopQRSTuvwxYz
TG_REVIEWER_GROUP 审稿群组的 ID,用于发送审稿消息 123456789
TG_PUBLISH_CHANNEL 发布投稿频道的 ID,用于发布审核通过的投稿,可设置多个,以冒号分隔。若有多个频道,第一个频道作为主频道,用于审核通过后作为跳转按钮中链接的频道 123456789123456789:987654321
TG_REJECTED_CHANNEL 被拒绝投稿的频道 ID,用于发送被拒绝的内容 123456789 否,若不存在则不转发被拒稿件
TG_BOT_USERNAME Telegram 机器人的用户名 my_review_bot
TG_RETRACT_NOTIFY 是否通知投稿者稿件被撤回 TrueFalse 否,默认为 True
TG_APPROVE_NUMBER_REQUIRED 通过所需的最小审核人数 2 否,默认为 2
TG_REJECT_NUMBER_REQUIRED 拒稿所需的最小审核人数 2 否,默认为 2
TG_REJECTION_REASON 预置拒绝理由的列表,以冒号分隔 "内容不够有趣:内容不适当:重复投稿" 否,若无,则只支持自定义理由和因重复而拒稿时的预置理由以及忽略
TG_BANNED_NOTIFY 是否通知投稿者已被屏蔽 TrueFalse 否,默认为 True
TG_REJECT_REASON_USER_LIMIT 是否限制只能由原拒稿人选择拒稿理由,若为 False 表示任意其他审稿人都将作为新的拒稿人,可以选择拒稿理由 TrueFalse 否,默认为 True
TG_SINGLE_MODE 是否将多条消息作为多次投稿,若为 True 表示一条消息是一次投稿,若为 False 表示将多次发送的消息合并为一次投稿,此时需要以 /new 命令开始新的投稿 TrueFalse 否,默认为 True
TG_TEXT_SPOILER 是否为 NSFW 投稿的文字添加遮罩 TrueFalse 否,默认为 True

请确保在使用项目前正确设置这些环境变量,以保证程序的正常运行。对于标记为“是”的变量,它们是项目运行所必需的,而对于标记为“否”的变量,则为可选配置,如果未设置,项目将使用默认值或不执行相关功能。

安装与部署

设置环境变量,安装 python-telegram-bot v21.0.1 库,运行 main.py 文件即可。代码使用 python3 编写。

技术支持与贡献

如果您在使用过程中遇到任何问题,或者希望为项目贡献代码,请通过 GitHub 的 issue 或 pull request 与我们联系。

许可证

本项目使用 GPLv3 许可证。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages