2026-02-05 10:40:17 +08:00
2026-02-05 10:17:55 +08:00
2026-02-04 22:33:45 +08:00
2026-02-05 10:40:17 +08:00
2026-02-04 22:33:45 +08:00
2026-02-04 22:33:45 +08:00
2026-02-05 10:40:17 +08:00

Telegram 频道目录机器人

Cover

交互式、数据库驱动的 Telegram 频道内容管理系统。

功能

  • 数据库管理分类 - 动态 CRUD无需硬编码
  • 交互式按钮投稿 - Inline Keyboard 选择分类
  • 快捷回复投稿 - 回复消息直接添加到目录
  • 内容同步发布 - 转发的内容会复制发送到频道(非转发,可编辑)
  • 防抖目录更新 - 多次操作合并为一次渲染,避免限流

安装

go mod tidy
go build -o bot ./cmd/bot

配置

编辑 config.yaml:

bot:
  token: "YOUR_BOT_TOKEN"

admins:
  - 123456789  # 管理员 Telegram User ID

channel:
  id: -1001234567890  # 目标频道 ID

database:
  path: "./data/bot.db"

toc:
  debounce_seconds: 3

运行

./bot
# 或指定配置文件
./bot -config /path/to/config.yaml

命令

投稿管理

命令 说明
/post 开始投稿流程
/post <分类> /tt <标题> 快捷投稿 (回复消息时使用)
/list [分类] 查看条目
/del <ID> 删除条目(同时删除频道消息)
/edit <ID> <新标题> 修改标题
/move <ID> <新分类> 移动条目到其他分类
/refresh 手动刷新频道目录

分类管理

命令 说明
/cat_add <名称> [排序] 创建分类
/cat_del <名称> 删除分类
/cat_list 列出所有分类

管理员管理 (仅超级管理员)

命令 说明
/admin_add <用户ID> 添加管理员
/admin_del <用户ID> 移除管理员
/admin_list 列出所有管理员

投稿方式

方式一:私聊转发(推荐)

1. 私聊 Bot直接转发任意消息支持来自个人、群组、频道等
2. 点击分类按钮
3. 确认标题 (使用默认 / 自定义输入)
4. 确认添加

Bot 会将消息内容复制发送到频道,目录链接指向频道中的新消息。

方式二:快捷回复(群组内)

1. 在关联群组找到目标消息
2. 回复该消息,发送:
   /post iOS /tt 某个APP推荐
  • /tt 后的内容为自定义标题
  • 省略标题则自动提取消息首行

支持的消息类型

  • 纯文本
  • 图片(带说明文字)
  • 视频(带说明文字)
  • 文档(带说明文字)
  • 音频(带说明文字)
  • 动图(带说明文字)
  • 语音
  • 贴纸

目录结构

├── cmd/bot/main.go           # 程序入口
├── config.yaml               # 配置文件
├── internal/
│   ├── config/config.go      # 配置加载
│   ├── storage/
│   │   ├── storage.go        # BoltDB 初始化
│   │   ├── category.go       # 分类 CRUD
│   │   └── entry.go          # 条目 CRUD
│   ├── telegram/
│   │   ├── bot.go            # Bot 初始化与路由
│   │   ├── middleware.go     # 权限中间件
│   │   ├── state.go          # 用户状态管理
│   │   ├── handlers_cat.go   # 分类命令
│   │   ├── handlers_post.go  # 投稿流程
│   │   └── handlers_entry.go # 条目命令
│   └── toc/
│       ├── manager.go        # 目录管理器 (防抖)
│       └── renderer.go       # 目录渲染

技术栈

License

MIT

Description
No description provided
Readme 3.3 MiB
Languages
Go 100%