更新封面和readme
This commit is contained in:
@@ -37,7 +37,7 @@ func New(cfg *config.Config, store *storage.Storage) (*Bot, error) {
|
||||
states: NewStateManager(),
|
||||
}
|
||||
|
||||
bot.toc = toc.NewManager(store, b, cfg.Channel.ID, time.Duration(cfg.TOC.DebounceSeconds)*time.Second)
|
||||
bot.toc = toc.NewManager(store, b, cfg.Channel.ID, time.Duration(cfg.TOC.DebounceSeconds)*time.Second, cfg.TOC.CoverImage)
|
||||
|
||||
bot.setupRoutes()
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package telegram
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
tele "gopkg.in/telebot.v3"
|
||||
@@ -18,11 +19,25 @@ func (b *Bot) handleEntryDel(c tele.Context) error {
|
||||
return c.Reply(fmt.Sprintf("❌ %v", err))
|
||||
}
|
||||
|
||||
// 尝试删除频道消息
|
||||
msgDeleted := false
|
||||
if msgID := parseMessageIDFromLink(entry.Link); msgID != 0 {
|
||||
channel := &tele.Chat{ID: b.cfg.Channel.ID}
|
||||
msg := &tele.Message{ID: msgID, Chat: channel}
|
||||
if err := b.bot.Delete(msg); err == nil {
|
||||
msgDeleted = true
|
||||
}
|
||||
}
|
||||
|
||||
if err := b.storage.DeleteEntry(id); err != nil {
|
||||
return c.Reply(fmt.Sprintf("❌ 删除失败: %v", err))
|
||||
}
|
||||
|
||||
b.toc.TriggerUpdate()
|
||||
|
||||
if msgDeleted {
|
||||
return c.Reply(fmt.Sprintf("✅ 已删除: [%s] %s\n📨 频道消息已同步删除", entry.Category, entry.Title))
|
||||
}
|
||||
return c.Reply(fmt.Sprintf("✅ 已删除: [%s] %s", entry.Category, entry.Title))
|
||||
}
|
||||
|
||||
@@ -102,3 +117,17 @@ func (b *Bot) handleRefresh(c tele.Context) error {
|
||||
b.toc.TriggerUpdate()
|
||||
return c.Reply("🔄 目录刷新已触发")
|
||||
}
|
||||
|
||||
// parseMessageIDFromLink 从链接中解析消息ID
|
||||
// 支持格式: https://t.me/c/123456/789 或 https://t.me/username/789
|
||||
func parseMessageIDFromLink(link string) int {
|
||||
parts := strings.Split(link, "/")
|
||||
if len(parts) < 1 {
|
||||
return 0
|
||||
}
|
||||
msgID, err := strconv.Atoi(parts[len(parts)-1])
|
||||
if err != nil {
|
||||
return 0
|
||||
}
|
||||
return msgID
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user