mirror of
https://github.com/woodchen-ink/Q58Bot.git
synced 2025-07-18 05:42:06 +08:00
- 数据库: - 从Database实例中移除AddKeyword和RemoveKeyword中的错误返回值。现在只在发生错误时返回错误。 - 为RemoveKeyword添加受影响行数的返回值,以判断关键词是否被成功删除。 - 优化AddPromptReply和DeletePromptReply,使用事务确保数据的一致性和完整性。 - 调整GetAllPromptReplies以强制刷新缓存并更新缓存时间。 - 核心: - 重构init.go中的全局变量初始化,移除多余注释。 - 在main.go中添加数据库关闭操作,确保资源在程序结束时被正确释放。 - 链接过滤器: - 重构LinkFilter服务,移除数据库实例字段。 - 更新LinkFilter中的数据加载和关键词操作,使用core包中的数据库方法。 - 添加LinkFilter的Close方法以关闭数据库连接。 - 消息处理器: - 移除message_handler.go中handleUpdate和handleAdminCommand中的数据库参数。 - 更新RunMessageHandler以初始化数据库并确保在结束时关闭连接。 - 调整handleListKeywords、handleAddKeyword、handleDeleteKeyword、handleDeleteContainingKeyword、handleListWhitelist、handleAddWhitelist和handleDeleteWhitelist,移除数据库参数。 - 提示回复: - 在prompt_reply.go中移除全局数据库变量。 - 更新SetPromptReply和DeletePromptReply,使用core.DB代替db。 - 调整GetPromptReply和ListPromptReplies使用更新后的数据库访问方法。 这些更改优化了代码结构,减少了全局状态,并提高了数据库操作的可靠性。
Q58-Telegram-Bot
示例
项目功能
TeleGuard
- 自动删除包含指定关键词的消息
- 支持通过命令添加、删除和列出关键词
- 只有管理员可以管理关键词列表
币安价格更新器
- 定期获取指定加密货币的价格信息
- 发送详细的价格更新,包括当前价格、24小时变化、高低点等
- 可自定义货币对, 更新频率可自行在代码里修改
链接拦截
- 新增: 当非管理员时, 才会进行链接拦截
- 非白名单域名链接, 在发送第二次会被拦截撤回
白名单域名
- 当用户发送链接, 属于白名单域名, 则不进行操作. 如果不属于白名单域名, 则会第一次允许发送, 第二次进行撤回操作.
- 会匹配链接中的域名, 包括二级域名和三级域名
- 例如,如果白名单中有 "example.com",它将匹配 "example.com"、"sub.example.com" 和 "sub.sub.example.com"。
- 同时,如果白名单中有 "sub.example.com",它将匹配 "sub.example.com" 和 "subsub.sub.example.com",但不会匹配 "example.com" 或 "othersub.example.com"。
提示词自动回复
- 当用户发送包含特定关键词的消息时,机器人将自动回复提示词。
- 管理员通过
/prompt
进行设置, 支持添加, 删除, 列出.
群组快捷管理
- 管理员可以对成员消息回复
/ban
, 会进行以下处理:- 将成员消息撤回, 无限期封禁成员, 并发送封禁通知
- 在3分钟后, 撤回管理员指令消息和机器人的封禁通知
安装与配置
- 确保服务器已安装 Docker 和 Docker Compose
- 使用
docker-compose.yml
文件构建和启动容器
使用方法
构建并启动 Docker 容器:
docker-compose up -d
注意事项
- 确保 Telegram 机器人已被添加到目标群组,并被赋予管理员权限
- 定期检查日志以确保服务正常运行
贡献
欢迎提交 Issues 和 Pull Requests 来帮助改进这个项目。
许可证
Description
Languages
Go
100%