kathylincn / TdPmBot

Telegram 全功能私聊机器人

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TdPmBot

全功能 Telegram 私聊机器人以及创建器.

安装

依赖 (Linux)

apt install -y openssl git zlib1g libc++-dev default-jdk

注: 仅支持 amd64, i386, arm64, 否则需自行编译 LibTDJni 放置在 libs 文件夹下. 如遇到找不到 LIBC 库, 请更新系统或编译安装.

依赖 (Windows)

需要安装 Git for WindowsVC++ 2015OpenJDK 11

您也可使用 vcpkg 编译安装 opensslzlib

管理

echo "alias pm='bash $PWD/bot.sh'" >> $HOME/.bashrc
source $HOME/.bashrc

# 注册 ./bot.sh 的命令别名 ( pm )
pm config # 编辑配置文件
pm run # 编译安装并进入交互式认证  
pm init # 注册 systemd 服务  
pm <start/stop/restart> # 启动停止  
pm <enable/disable> # 启用禁用 (开机启动)  
pm rebuild # 重新编译  
pm update # 更新  
pm force-update # 强制重新更新
pm upgrade # 更新并重启服务  
pm log # 实时日志  
pm logs # 所有日志

配置

pm config

BOT_LANG: 工作语言
BOT_TOKEN: 机器人令牌
BOT_OWNER: 管理员ID
PM_MODE: 运行模式
PM_WHITE_LIST: 白名单列表
LOG_LEVEL: 日志等级 - 默认为 INFO
DATA_DIR: 数据存放目录 - 默认为当前目录下 data 文件夹
CACHE_DIR: 缓存存放目录 - 默认为当前目录下 cache 文件夹
ERROR_REPORT: 错误报告 - 默认禁用
AUTO_BACKUP: 自动备份 - 默认禁用
BACKUP_OVERWRITE: 备份覆盖间隔 - 默认持续

工作语言

机器人的默认语言, 以及非 私有 模式下命令模板的语言 ( 必须在 BOT_LANG_LIST 中 ).

机器人令牌

相当于账号与密码, 从 @BotFather 获取, 参见 https://core.telegram.org/bots#creating-a-new-bot .

管理员与白名单 ID

启动机器人后使用 /id 获取自己的 ID, 使用 /id <回复消息 (群组中) / @用户名 / 引用> 获取他人 ID.

运行模式

公开

运行模式值 public, 此模式下所有人都可创建机器人.

白名单

运行模式值 white-list, 此模式下列表中的用户与您可以创建机器人.

需配置白名单设置项:

PM_WHITE_LIST:
  - id1
  - id2
  - ...

公开模式也可以使用该参数, 用于绕过导入机器人大小限制.

私有

运行模式值 private, 此模式下主实例作为私聊机器人.

您仍可创建机器人, 但没有命令模板 (即补全).

错误报告

当机器人出错时, 通常能够处理并继续运行, 您可将错误信息提交与我们以改进此程序.

默认禁用, 仅在标准输出流打印错误.

格式: disable: 禁用 owner: 发送到与与您的私聊 group: 机器人接入的群组

或填写会话ID, 注意: 与永不离线的 telegram-http-api 服务器不同, 使用低层协议的机器人只能访问本地有记录的会话.

自动备份

默认禁用, 格式同上, 使用见下 迁移 节.

备份覆盖间隔

通常情况下您只需要最新的备份文件以免托管服务终止, 所以此项默认设为持续覆盖值 -1, 以避免浪费空间.

否则, 在超过指定间隔后, 将另重新发送备份文件而不是覆盖 (在 Telegram 中表现为编辑文件).

时间格式: 1d2h3m4s秒数 例子: 2m30s ( 两分钟三十秒 ) 或者: 180 ( 三分钟 )

其他

如需更改, 复制 _bot.confbot.conf.

SERVICE_NAME: systemd 服务名称, 默认 `td-bots`, 修改如果您需要多个实例.
JAVA_ARGS: JVM 启动参数.
ARGS: 启动参数.

命令行命令

备份 & 迁移

pm run --backup [fileName 可选]

备份所有迁移需要的文件到 tar.xz 包, 解压即可覆盖数据.

您也可以直接打包 data 目录, 但包含无用的数据库与文件缓存.

指定配置文件

pm run --config /path/to/config.yml

不常用, 但您可以写入 bot.confargs 中作为默认参数.

公开实例

@TdPmBot

使用

如需帮助,请通过 @TdBotProject 的讨论群组与我们联系.

创建新机器人

使用 /new_bot 命令进入创建步进程序, 输入完后根据提示发送 Bot Token 到机器人即可完成创建,

您也可以使用该 Token 作为命令参数传入直接创建 ( /new_bot <BotToken> ).

创建完成后您需要根据提示启动该机器人并保持不禁用, 否则将无法收到消息.

导入机器人

将删除时生成的 .td_pm 格式文件发送给主实例即可. 该文件包含登录状态, 设置和消息记录.
该文件使用自有格式并进行了 xz 压缩, 应该足够小, 所以公开模式实例中有导入大小限制 (避免恶意行为).

  • 保存登录状态意味着导入后可以收到删除该机器人后错过的消息
  • 如果您使用其他帐号导入, 旧的消息记录将被跳过
  • 如果要导入到的实例已存在该机器人, 登录状态和旧的消息记录将被跳过

编辑机器人

使用 /my_bots 命令得到机器人菜单, 选择要设置的机器人后将得到一个管理菜单.

欢迎消息

即对机器人发送 /start 时回复的消息.

点击 编辑 按钮开始设置, 因为消息跨机器人无法转存, 所以您需要转到对应机器人进行设置.
点击 重置 按钮重置回默认欢迎消息.

接入群组

所有消息将被发往目标群组而不是您的私聊.

仅管理员可操作: 默认所有群组成员可操作, 开启此项以禁止非管理员操作机器人.

暂停接入: 暂停接入到群组, 收到新消息时机器人无法访问接入的群组时也会触发此项.

行为选项

保留提示: 不要自动删除操作提示消息.

双向同步: 直接复制对方的消息, 而不是每次都转发, 并同步对方的编辑, 删除操作.

保持回复: 没有进入 ( /join ) 对应会话的情况下保持对消息的回复.

忽略删除: 不要同步本方的消息删除, 当同时开启 保留提示 时在提示中增加一个删除该消息的按钮.

命令管理

您可以为机器人添加命令, 并为每个命令设置不同的消息内容, 并接收到对方消息所回复之命令.

也可以通过链接 ( start payload, 链接可以在命令设置中找到 ), 点击效果同打开bot并发送命令.

格式为 https://t.me/<botUserName>?start=<command> (参见 https://core.telegram.org/bots#deep-linking ).

私聊命令: 仅公开模式主实例选项, 使用该命令后机器人接受私聊消息. ( 您可提示对方使用 /cancel 退出 ). 隐藏命令: 不将命令显示在命令列表中. 禁用命令: 禁用但不删除.

PM 操作

提示消息

当客人发送消息到机器人, 机器人会为每人每 5 条消息发送一条提示消息给您 ( 包括用户ID 与 引用 ).

回复这条消息: 消息将被直接发送给客人.

回复消息

客人的消息将被转发至主人或接入的群组 (如果有设置).

如果启用了 双向同步, 此处将直接发送对方的消息的复制, 而不是每次转发消息, 否则如果对方回复的消息存在, 将再发送一条提示消息回复对应的消息.

对客人的消息的可用操作:

回复这条消息: 消息将被直接发送给客人或回复对应消息.

回复对方的消息直接发送消息的复制给客人, 如果没有进入对应的会话, 将不会 回复 对应消息, 除非您开启了 保持回复.

持续对话

提示消息 / 您发送或收到的消息 回复 /join ( 也可以使用 对方用户名 / ID / 引用 作为参数).

进入该对话后所有消息将被 发送/回复 到目标对话.

注: 如果接入到了群组, 请确保机器人有访问消息权限 ( BotFather -> /setprivacy -> Disable ), 否则无法收到此类与机器人无关的消息.

屏蔽用户

命令为 /block 或别名 /ban, 用法同上.

屏蔽后会忽略对方发送的所有消息, 使用 /unblock 或别名 /unban 取消屏蔽, 另: 无法屏蔽自己.

撤回所有消息

命令为 /recall, 用法同上.

使用后删除有记录的双方所有消息, 并删除记录, 所以配合屏蔽使用时请先屏蔽.

About

Telegram 全功能私聊机器人

License:GNU Affero General Public License v3.0


Languages

Language:Kotlin 98.7%Language:Shell 1.3%