wood chen b153581254 数据库和核心初始化优化
- 数据库:
  - 从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使用更新后的数据库访问方法。

这些更改优化了代码结构,减少了全局状态,并提高了数据库操作的可靠性。
2024-09-19 23:07:11 +08:00
2024-09-18 02:42:28 +08:00
2024-09-19 23:07:11 +08:00
2024-09-19 23:07:11 +08:00
2024-09-03 17:30:30 +08:00
2024-09-09 19:43:25 +08:00
2024-09-03 17:25:50 +08:00
2024-09-18 01:27:32 +08:00
2024-09-18 02:42:28 +08:00
2024-09-18 02:42:28 +08:00
2024-09-18 02:42:28 +08:00
2024-09-19 23:07:11 +08:00
2024-09-19 21:58:27 +08:00

Q58-Telegram-Bot

示例

image image image

项目功能

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, 会进行以下处理:
    1. 将成员消息撤回, 无限期封禁成员, 并发送封禁通知
    2. 在3分钟后, 撤回管理员指令消息和机器人的封禁通知

安装与配置

  1. 确保服务器已安装 Docker 和 Docker Compose
  2. 使用 docker-compose.yml 文件构建和启动容器

使用方法

构建并启动 Docker 容器:

docker-compose up -d 

注意事项

  • 确保 Telegram 机器人已被添加到目标群组,并被赋予管理员权限
  • 定期检查日志以确保服务正常运行

贡献

欢迎提交 Issues 和 Pull Requests 来帮助改进这个项目。

许可证

MIT License

Description
Telegram群组管理机器人, 支持 撤回关键词消息, 定时推送币安币对价格, 重复链接拦截
Readme 233 KiB
Languages
Go 100%