修复转发跳收藏;修复若干小bug

This commit is contained in:
dela
2026-02-05 21:29:48 +08:00
parent 098fd57c19
commit 270369ae0a
6 changed files with 96 additions and 11 deletions

View File

@@ -110,8 +110,8 @@ func (b *Bot) handleTextInput(c tele.Context) error {
return nil
}
// 检查是否为转发消息
isForwarded := msg.OriginalChat != nil || msg.OriginalSender != nil
// 检查是否为转发消息OriginalUnixtime 在隐私设置隐藏来源时仍存在)
isForwarded := msg.OriginalChat != nil || msg.OriginalSender != nil || msg.OriginalUnixtime > 0
state := b.states.Get(c.Sender().ID)
@@ -148,8 +148,8 @@ func (b *Bot) handleForwarded(c tele.Context) error {
}
msg := c.Message()
// 检查是否为转发消息(来自频道/群组或个人用户
if msg.OriginalChat == nil && msg.OriginalSender == nil {
// 检查是否为转发消息(OriginalUnixtime 在隐私设置隐藏来源时仍存在
if msg.OriginalChat == nil && msg.OriginalSender == nil && msg.OriginalUnixtime == 0 {
return c.Reply("❌ 这不是一条转发消息,请转发一条消息给我")
}
@@ -438,7 +438,7 @@ func (b *Bot) handleConfirmCallback(c tele.Context, userID int64, action string)
}
// 使用频道消息的链接
link := buildChannelLink(b.cfg.Channel.ID, channelMsg.ID)
link := b.buildChannelLink(channelMsg.ID)
entry, err := b.storage.CreateEntry(state.SelectedCat, title, link)
if err != nil {
@@ -484,8 +484,15 @@ func (b *Bot) sendAlbumCopy(to *tele.Chat, msgs []*tele.Message) (*tele.Message,
return &sentMsgs[0], nil
}
func buildChannelLink(channelID int64, msgID int) string {
chatID := channelID
func (b *Bot) buildChannelLink(msgID int) string {
// 尝试获取频道信息,检查是否为公开频道
chat, err := b.bot.ChatByID(b.cfg.Channel.ID)
if err == nil && chat.Username != "" {
return fmt.Sprintf("https://t.me/%s/%d", chat.Username, msgID)
}
// 私有频道 fallback
chatID := b.cfg.Channel.ID
if chatID < 0 {
chatID = -chatID - 1000000000000
}