csznet / tgState

使用Telegram作为存储的文件外链系统,不限制文件大小和格式。
https://www.csz.net
MIT License
874 stars 143 forks source link

修复video文件无法通过get获取文件id的bug #13

Closed Yohann0617 closed 11 months ago

Yohann0617 commented 11 months ago
func BotDo() {

    bot, err := tgbotapi.NewBotAPI(conf.BotToken)
    if err != nil {
        log.Println(err)
        return
    }

    bot.Debug = true

    log.Printf("Authorized on account %s", bot.Self.UserName)

    u := tgbotapi.NewUpdate(0)
    u.Timeout = 60

    updatesChan := bot.GetUpdatesChan(u)

    for update := range updatesChan {
        // 私聊机器人
        if update.Message != nil {
            // 处理get
            if update.Message.Text == "get" {
                if update.Message.ReplyToMessage != nil {
                    // video
                    if update.Message.ReplyToMessage.Video != nil {
                        if update.Message.ReplyToMessage.Video.FileID != "" {
                            msg := tgbotapi.NewMessage(update.Message.Chat.ID, update.Message.ReplyToMessage.Video.FileID)
                            _, err := bot.Send(msg)
                            if err != nil {
                                log.Println(err)
                            }
                        }
                    }
                    // 其他文件
                    if update.Message.ReplyToMessage.Document != nil {
                        if update.Message.ReplyToMessage.Document.FileID != "" {
                            msg := tgbotapi.NewMessage(update.Message.Chat.ID, update.Message.ReplyToMessage.Document.FileID)
                            msg.ReplyToMessageID = update.Message.MessageID
                            _, err := bot.Send(msg)
                            if err != nil {
                                log.Println(err)
                            }
                        }
                    }
                }
            }
        }
        // 频道
        if update.ChannelPost != nil {
            // 处理get
            if update.ChannelPost.Text == "get" {
                if update.ChannelPost.ReplyToMessage != nil {
                    // video
                    if update.ChannelPost.ReplyToMessage.Video != nil {
                        if update.ChannelPost.ReplyToMessage.Video.FileID != "" {
                            msg := tgbotapi.NewMessage(update.ChannelPost.Chat.ID, update.ChannelPost.ReplyToMessage.Video.FileID)
                            _, err := bot.Send(msg)
                            if err != nil {
                                log.Println(err)
                            }
                        }
                    }
                    // 其他文件
                    if update.ChannelPost.ReplyToMessage.Document != nil {
                        if update.ChannelPost.ReplyToMessage.Document.FileID != "" {
                            msg := tgbotapi.NewMessage(update.ChannelPost.Chat.ID, update.ChannelPost.ReplyToMessage.Document.FileID)
                            _, err := bot.Send(msg)
                            if err != nil {
                                log.Println(err)
                            }
                        }
                    }
                }
            }
        }
    }
}
csznet commented 11 months ago

感谢,确实没考虑到