- 消息记录、搜索、复读定位(主要功能,解决中文搜索的问题)。
- 定时任务(有能力可根据需要修改,目前是报时,删除文件可取消)。
- 具有定时撤回、排除ID等额外配置。
@your_bot {keyword} {page}
: 用于搜索,@
无参数为显示历史消息,此时翻页用* {page}
,无页码默认第一页,pagesize
可自行设置。/chatid
: 获取当前聊天的ID,即Group ID或User ID,此功能可在多个聊天中独立使用。/database
: 获取聊天记录的SQLite数据库文件。/help
: 获取使用帮助。
- VPS/其他主机
- Python环境
- Web Server(可选,WebHook模式需要)
- 安装依赖:
pip install -r requirements.txt
。 - 修改
config.py
。 - 轮询模式直接
python robot.py
启动即可;如果需要WebHook模式,根据情况修改robot.py
最后几行,并设置好Nginx
等Web Server,比较麻烦请自行了解。
- 与 @botfather 对话按照步骤创建Bot,记录
token
备用。 - 设置Inline Mode: 选择你的Bot进入Bot Settings,Inline Mode开启,Edit inline placeholder,发送
{keyword} {page}
。 - 关闭 Privacy mode,选择你的Bot进入Bot Settings,Group Privacy - Turn off。
- 按照喜好设置其他选项,将Bot添加到Group。
- 修改
config.py
中TOKEN
运行代码,在Group中使用/chatid@bot_username
获得Group ID
,修改config.py
中的GROUP_ID
,重新运行代码即可正常使用。
- Inline Mode具有缓存效果,故连续重复搜索可能不会加载新的消息。
- Inline Mode placeholder更新需要重启客户端。
- 数据库连续获取并不会更新。
user_handlers
中的模块用于接受群组消息实现一些功能,只需要实现回调函数并添加handler
即可添加一个模块(默认的text
已被占用,如需要修改msg_store.py
)。
user_jobs
中的模块用于实现定时任务(间隔运行,定时需手动判断),同上,添加job_info
即可。
- 增加了对已离开成员和被踢出成员的限制
- 初始化导入的历史消息支持定位。
- 修复了消息中含有
_
、*
时无法更新 InlineQuery 的 bug(粗糙换用 HTML) - 暂时移除获取数据库命令,移除定时报时
- 默认打开链接模式(普通群组请在
config.py
中关闭)
- 添加代理选项(酸酸乳的socks5貌似不行,http可用)
- 修复重复报时。
- 完善README。
- 修复搜索的页码问题。
- 重写了大量代码,更换MYSQL数据库为SQLITE,使用ORM,简化后续的开发及方便用户配置。
- 增加排除ID的配置。
- 增加图片、视频、语音、音频的复读。
- 增加群员获取数据库的命令。
- 存储信息过程中过滤机器人的信息。
- Bot的用户名无需手动设置。
- 修复管理员权限模式下的无权限不能复读的问题。