Skip to content

sxyazi/bendan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bendan Bot

一个 Telegram 的 @bendan_bot

功能

目前包含以下指令或功能:

  • 对消息回复 /*。如 /吃,Bot 发送一个 a 吃了 b !
  • 对消息回复 /* *。如 /吃 豆腐,Bot 发送一个 a 吃 b 豆腐!
  • 直接发送或回复 /me *。如 /me 喝醉了,Bot 发送一个 a 喝醉了!
  • 对消息回复 //pin,Bot 将消息置顶(若有权限),最多保留 10 条由 Bot 置顶的消息
  • 直接发送或回复 //whoami,Bot 发送指令调用者 ID、当前群组 ID
  • 直接发送或回复 /没关系/没事的,生存鼓励师猫猫发送一条“没关系……”句子
  • 识别具有跟踪参数的 URL,并自动净化它们
  • 直接发送或回复 ,Bot 回复一个
  • 直接发送或回复 看看…,Bot 半随机地回复一个内容
  • 直接发送或回复 是…吗有…吗是…还是…有…还是…,Bot 半随机地回复一个内容
  • 直接发送或回复 是不是…有没有…会不会…能不能……行不行这么有…,Bot 半随机地回复一个内容
  • 直接发送或回复 //lang code 执行代码(可多行),目前支持 Go、JavaScript,如 //js Math.sin(45)
  • 转发 Telegram channel 消息到 Twitter、Mastodon

部署到 Vercel

你可以 Fork 本仓库,然后一键部署到 Vercel。需要在 Vercel ENV 中配置如下变量:

  • BOT_TOKEN:Telegram Bot 的 Token
  • REFRESH_KEY:用于第一次触发 Webhook 配置的密钥
  • DB_URI:(可选)MongoDB 的连接 URI。用于置顶、转发功能,不需要这些功能则不配置
  • DB_NAME:(可选)MongoDB 的数据库名称。同上,可不配置
  • FORWARD_CONFIG:(可选)转发功能配置,JSON 字符串,具体字段见 部署到 Server。无需该功能则不配置

设置完成后,访问 https://your-domain.vercel.app/?key=<refresh_key> 对 Webhook 初始化即可。

部署到 Server

您需要做的是,在根目录创建 .config 文件,并做如下配置:

{
  "bot_token": "...",
  "refresh_key": "secret",
  "db_uri": "mongodb+srv://...",
  "db_name": "bendan",
  "forward_config": {
    "group": {
      "id": "channel 关联群组 ID,可通过 //whoami 指令查询",
      "owner": "群组所有者 ID,用于后续转发交互鉴权"
    },
    "twitter": {
      "consumer_key": "Twitter 应用ID,在 developer.twitter.com 创建应用",
      "consumer_secret": "Twitter 应用密钥,同上",
      "user_token": "对应 Twitter 用户的 Access Token,单用户可在 developer.twitter.com 生成,或多用户基于应用的 OAuth1 授权",
      "user_secret": "user_token 对应的 secret"
    },
    "mastodon": {
      "endpoint": "如 https://mastodon.social",
      "token": "Preferences - Development 中创建应用得到"
    },
    "allowed_tags": ["随原文一起转发的 tag"]
  }
}

以上参数同 部署到 Vercel,配置完成后直接运行主程序即可。

隐私

受 Telegram Bot API 限制,无法获取所有已置顶消息,以用于“仅保留 10 条置顶”功能。

因此需要将由 Bot 置顶的消息存储下来,但也仅存储了 (置顶消息ID, 群组ID, 置顶时间) 用于取消老的消息置顶,该 Bot 不会存储任何与消息内容有关的信息

License

Bendan Bot is licensed under the MIT License.

Releases

No releases published

Packages

No packages published