mirror of
https://github.com/woodchen-ink/Q58Bot.git
synced 2025-07-18 05:42:06 +08:00
修复日志记录方式,优化错误处理和提示信息
This commit is contained in:
parent
f56fd4e91a
commit
cb7fc3254d
@ -18,6 +18,7 @@ func RegisterCommands(bot *tgbotapi.BotAPI) error {
|
||||
{Command: "delwhite", Description: "从白名单移除域名"},
|
||||
{Command: "listwhite", Description: "列出白名单域名"},
|
||||
{Command: "prompt", Description: "设置提示词回复"},
|
||||
{Command: "prompt list", Description: "查看提示词列表"},
|
||||
}
|
||||
|
||||
config := tgbotapi.NewSetMyCommands(commands...)
|
||||
|
@ -31,7 +31,7 @@ func DeleteMessageAfterDelay(bot *tgbotapi.BotAPI, chatID int64, messageID int,
|
||||
deleteMsg := tgbotapi.NewDeleteMessage(chatID, messageID)
|
||||
_, err := bot.Request(deleteMsg)
|
||||
if err != nil {
|
||||
log.Printf("删除消息失败 (ChatID: %d, MessageID: %d): %v", chatID, messageID, err)
|
||||
log.Printf("DeleteMessageAfterDelay: 删除消息失败 (ChatID: %d, MessageID: %d): %v", chatID, messageID, err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
@ -22,6 +22,8 @@ var (
|
||||
singaporeTZ *time.Location
|
||||
)
|
||||
|
||||
var logger = log.New(log.Writer(), "Binance: ", log.Ldate|log.Ltime|log.Lshortfile)
|
||||
|
||||
type tickerInfo struct {
|
||||
symbol string
|
||||
last float64
|
||||
@ -78,7 +80,7 @@ func sendPriceUpdate() {
|
||||
for _, symbol := range symbols {
|
||||
info, err := getTickerInfo(symbol)
|
||||
if err != nil {
|
||||
log.Printf("Error getting ticker info for %s: %v", symbol, err)
|
||||
logger.Printf("Error getting ticker info for %s: %v", symbol, err)
|
||||
continue
|
||||
}
|
||||
|
||||
@ -93,7 +95,7 @@ func sendPriceUpdate() {
|
||||
deleteMsg := tgbotapi.NewDeleteMessage(chatID, lastMsgID)
|
||||
_, err := bot.Request(deleteMsg)
|
||||
if err != nil {
|
||||
log.Printf("Failed to delete previous message: %v", err)
|
||||
logger.Printf("Failed to delete previous message: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
@ -101,7 +103,7 @@ func sendPriceUpdate() {
|
||||
msg.ParseMode = "Markdown"
|
||||
sentMsg, err := bot.Send(msg)
|
||||
if err != nil {
|
||||
log.Printf("Failed to send message. Error: %v\nFull message content:\nChat ID: %d\nMessage: %s", err, chatID, message)
|
||||
logger.Printf("Failed to send message. Error: %v\nFull message content:\nChat ID: %d\nMessage: %s", err, chatID, message)
|
||||
return
|
||||
}
|
||||
|
||||
@ -109,7 +111,7 @@ func sendPriceUpdate() {
|
||||
}
|
||||
|
||||
func RunBinance() {
|
||||
log.Println("Starting Binance service...")
|
||||
logger.Println("Starting Binance service...")
|
||||
|
||||
// 初始化必要的变量
|
||||
botToken = core.BOT_TOKEN
|
||||
@ -120,7 +122,7 @@ func RunBinance() {
|
||||
|
||||
// 初始化并加载所有交易对
|
||||
if err := LoadAllSymbols(); err != nil {
|
||||
log.Fatalf("Failed to load all trading pairs: %v", err)
|
||||
logger.Fatalf("Failed to load all trading pairs: %v", err)
|
||||
}
|
||||
|
||||
// 启动每小时刷新交易对缓存
|
||||
@ -135,7 +137,7 @@ func RunBinance() {
|
||||
for range ticker.C {
|
||||
now := time.Now().In(singaporeTZ)
|
||||
if now.Minute() == 0 {
|
||||
log.Println("Sending hourly price update...")
|
||||
logger.Println("Sending hourly price update...")
|
||||
sendPriceUpdate()
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,6 @@ package binance
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
@ -35,7 +34,7 @@ func LoadAllSymbols() error {
|
||||
}
|
||||
}
|
||||
|
||||
log.Printf("Loaded %d valid USDT trading pairs", len(allSymbols))
|
||||
logger.Printf("Loaded %d valid USDT trading pairs", len(allSymbols))
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -49,9 +48,9 @@ func StartSymbolRefresh(interval time.Duration) {
|
||||
ticker := time.NewTicker(interval)
|
||||
go func() {
|
||||
for range ticker.C {
|
||||
log.Println("Refreshing trading pairs...")
|
||||
logger.Println("Refreshing trading pairs...")
|
||||
if err := LoadAllSymbols(); err != nil {
|
||||
log.Printf("Failed to refresh symbols: %v", err)
|
||||
logger.Printf("Failed to refresh symbols: %v", err)
|
||||
}
|
||||
}
|
||||
}()
|
||||
@ -66,7 +65,7 @@ func HandleSymbolQuery(bot *tgbotapi.BotAPI, message *tgbotapi.Message) {
|
||||
if strings.EqualFold(msg, coinName) {
|
||||
info, err := getTickerInfo(symbol)
|
||||
if err != nil {
|
||||
log.Printf("Error getting ticker info for %s: %v", symbol, err)
|
||||
logger.Printf("Error getting ticker info for %s: %v", symbol, err)
|
||||
return
|
||||
}
|
||||
replyMessage := fmt.Sprintf("*%s*\n价格: $%.7f\n24h 涨跌: %s\n",
|
||||
|
@ -9,6 +9,8 @@ import (
|
||||
"github.com/woodchen-ink/Q58Bot/core"
|
||||
)
|
||||
|
||||
var logger = log.New(log.Writer(), "GroupMemberManagement: ", log.Ldate|log.Ltime|log.Lshortfile)
|
||||
|
||||
func HandleBanCommand(bot *tgbotapi.BotAPI, message *tgbotapi.Message) {
|
||||
// 检查是否是管理员
|
||||
if !core.IsAdmin(message.From.ID) {
|
||||
@ -27,7 +29,7 @@ func HandleBanCommand(bot *tgbotapi.BotAPI, message *tgbotapi.Message) {
|
||||
deleteConfig := tgbotapi.NewDeleteMessage(chatID, message.ReplyToMessage.MessageID)
|
||||
_, err := bot.Request(deleteConfig)
|
||||
if err != nil {
|
||||
log.Printf("删除原消息时出错: %v", err)
|
||||
logger.Printf("删除原消息时出错: %v", err)
|
||||
}
|
||||
|
||||
// 踢出用户
|
||||
@ -41,7 +43,7 @@ func HandleBanCommand(bot *tgbotapi.BotAPI, message *tgbotapi.Message) {
|
||||
|
||||
_, err = bot.Request(kickChatMemberConfig)
|
||||
if err != nil {
|
||||
log.Printf("禁止用户时出错: %v", err)
|
||||
logger.Printf("禁止用户时出错: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
@ -50,7 +52,7 @@ func HandleBanCommand(bot *tgbotapi.BotAPI, message *tgbotapi.Message) {
|
||||
msg := tgbotapi.NewMessage(chatID, banMessage)
|
||||
sentMsg, err := bot.Send(msg)
|
||||
if err != nil {
|
||||
log.Printf("发送禁止消息时出错: %v", err)
|
||||
logger.Printf("发送禁止消息时出错: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
@ -64,7 +66,7 @@ func deleteMessagesAfterDelay(bot *tgbotapi.BotAPI, chatID int64, messageIDs []i
|
||||
deleteConfig := tgbotapi.NewDeleteMessage(chatID, msgID)
|
||||
_, err := bot.Request(deleteConfig)
|
||||
if err != nil {
|
||||
log.Printf("删除消息 %d 时出错: %v", msgID, err)
|
||||
logger.Printf("删除消息 %d 时出错: %v", msgID, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -57,7 +57,8 @@ func handleAdminCommand(bot *tgbotapi.BotAPI, message *tgbotapi.Message) {
|
||||
// processMessage 处理群里接收到的消息。
|
||||
func processMessage(bot *tgbotapi.BotAPI, message *tgbotapi.Message, linkFilter *link_filter.LinkFilter) {
|
||||
// 记录消息内容
|
||||
log.Printf("Processing message: %s", message.Text)
|
||||
// log.Printf("Processing message: %s", message.Text)
|
||||
logger.Printf("Processing message: %s", message.Text)
|
||||
|
||||
// 处理 /ban 命令
|
||||
if message.ReplyToMessage != nil && message.Text == "/ban" {
|
||||
@ -81,12 +82,12 @@ func processMessage(bot *tgbotapi.BotAPI, message *tgbotapi.Message, linkFilter
|
||||
}
|
||||
|
||||
func RunMessageHandler() error {
|
||||
log.Println("消息处理器启动...")
|
||||
logger.Println("消息处理器启动...")
|
||||
|
||||
// 加载提示回复数据
|
||||
err := prompt_reply.Manager.LoadDataFromDatabase()
|
||||
if err != nil {
|
||||
log.Printf("加载提示回复数据失败: %v", err)
|
||||
logger.Printf("加载提示回复数据失败: %v", err)
|
||||
// 考虑是否要因为这个错误停止启动
|
||||
// return fmt.Errorf("加载提示回复数据失败: %w", err)
|
||||
}
|
||||
@ -97,7 +98,7 @@ func RunMessageHandler() error {
|
||||
|
||||
for {
|
||||
err := func() error {
|
||||
log.Printf("Attempting to create bot with token: %s", core.BOT_TOKEN)
|
||||
logger.Printf("Attempting to create bot with token: %s", core.BOT_TOKEN)
|
||||
bot, err := tgbotapi.NewBotAPI(core.BOT_TOKEN)
|
||||
if err != nil {
|
||||
log.Printf("Error details: %+v", err)
|
||||
@ -106,7 +107,7 @@ func RunMessageHandler() error {
|
||||
|
||||
bot.Debug = core.DEBUG_MODE
|
||||
|
||||
log.Printf("Authorized on account %s", bot.Self.UserName)
|
||||
logger.Printf("Authorized on account %s", bot.Self.UserName)
|
||||
|
||||
err = core.RegisterCommands(bot)
|
||||
if err != nil {
|
||||
@ -143,7 +144,7 @@ func RunMessageHandler() error {
|
||||
}
|
||||
} else {
|
||||
delay = baseDelay
|
||||
log.Println("Bot disconnected. Attempting to restart immediately...")
|
||||
logger.Println("Bot disconnected. Attempting to restart immediately...")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -30,6 +30,7 @@ func handleListKeywords(bot *tgbotapi.BotAPI, message *tgbotapi.Message) {
|
||||
keywords, err := core.DB.GetAllKeywords()
|
||||
if err != nil {
|
||||
core.SendErrorMessage(bot, message.Chat.ID, "获取关键词列表时发生错误。")
|
||||
logger.Printf("Failed to get keywords: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
@ -56,12 +57,14 @@ func handleAddKeyword(bot *tgbotapi.BotAPI, message *tgbotapi.Message, keyword s
|
||||
exists, err := core.DB.KeywordExists(keyword)
|
||||
if err != nil {
|
||||
core.SendErrorMessage(bot, message.Chat.ID, "检查关键词时发生错误。")
|
||||
logger.Printf("Failed to check keyword: %v", err)
|
||||
return
|
||||
}
|
||||
if !exists {
|
||||
err = core.DB.AddKeyword(keyword)
|
||||
if err != nil {
|
||||
core.SendErrorMessage(bot, message.Chat.ID, "添加关键词时发生错误。")
|
||||
logger.Printf("Failed to add keyword: %v", err)
|
||||
} else {
|
||||
core.SendMessage(bot, message.Chat.ID, fmt.Sprintf("关键词 '%s' 已添加。", keyword))
|
||||
}
|
||||
@ -79,6 +82,7 @@ func handleDeleteKeyword(bot *tgbotapi.BotAPI, message *tgbotapi.Message, keywor
|
||||
removed, err := core.DB.RemoveKeyword(keyword)
|
||||
if err != nil {
|
||||
core.SendErrorMessage(bot, message.Chat.ID, fmt.Sprintf("删除关键词 '%s' 时发生错误: %v", keyword, err))
|
||||
logger.Printf("Failed to remove keyword '%s': %v", keyword, err)
|
||||
return
|
||||
}
|
||||
|
||||
@ -93,6 +97,7 @@ func handleSimilarKeywords(bot *tgbotapi.BotAPI, message *tgbotapi.Message, keyw
|
||||
similarKeywords, err := core.DB.SearchKeywords(keyword)
|
||||
if err != nil {
|
||||
core.SendErrorMessage(bot, message.Chat.ID, "搜索关键词时发生错误。")
|
||||
logger.Printf("Failed to search keywords: %v", err)
|
||||
return
|
||||
}
|
||||
if len(similarKeywords) > 0 {
|
||||
@ -111,6 +116,7 @@ func handleDeleteContainingKeyword(bot *tgbotapi.BotAPI, message *tgbotapi.Messa
|
||||
removedKeywords, err := core.DB.RemoveKeywordsContaining(substring)
|
||||
if err != nil {
|
||||
core.SendErrorMessage(bot, message.Chat.ID, "删除关键词时发生错误。")
|
||||
logger.Printf("Failed to remove keywords: %v", err)
|
||||
return
|
||||
}
|
||||
if len(removedKeywords) > 0 {
|
||||
@ -139,6 +145,7 @@ func handleListWhitelist(bot *tgbotapi.BotAPI, message *tgbotapi.Message) {
|
||||
whitelist, err := core.DB.GetAllWhitelist()
|
||||
if err != nil {
|
||||
core.SendErrorMessage(bot, message.Chat.ID, fmt.Sprintf("获取白名单时发生错误: %v", err))
|
||||
logger.Printf("Failed to get whitelist: %v", err)
|
||||
return
|
||||
}
|
||||
if len(whitelist) == 0 {
|
||||
@ -158,6 +165,7 @@ func handleAddWhitelist(bot *tgbotapi.BotAPI, message *tgbotapi.Message, domain
|
||||
exists, err := core.DB.WhitelistExists(domain)
|
||||
if err != nil {
|
||||
core.SendErrorMessage(bot, message.Chat.ID, fmt.Sprintf("检查白名单时发生错误: %v", err))
|
||||
logger.Printf("Failed to check whitelist: %v", err)
|
||||
return
|
||||
}
|
||||
if exists {
|
||||
@ -168,12 +176,14 @@ func handleAddWhitelist(bot *tgbotapi.BotAPI, message *tgbotapi.Message, domain
|
||||
err = core.DB.AddWhitelist(domain)
|
||||
if err != nil {
|
||||
core.SendErrorMessage(bot, message.Chat.ID, fmt.Sprintf("添加到白名单时发生错误: %v", err))
|
||||
logger.Printf("Failed to add to whitelist: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
exists, err = core.DB.WhitelistExists(domain)
|
||||
if err != nil {
|
||||
core.SendErrorMessage(bot, message.Chat.ID, fmt.Sprintf("验证添加操作时发生错误: %v", err))
|
||||
logger.Printf("Failed to verify add operation: %v", err)
|
||||
return
|
||||
}
|
||||
if exists {
|
||||
@ -193,6 +203,7 @@ func handleDeleteWhitelist(bot *tgbotapi.BotAPI, message *tgbotapi.Message, doma
|
||||
exists, err := core.DB.WhitelistExists(domain)
|
||||
if err != nil {
|
||||
core.SendErrorMessage(bot, message.Chat.ID, fmt.Sprintf("检查白名单时发生错误: %v", err))
|
||||
logger.Printf("Failed to check whitelist: %v", err)
|
||||
return
|
||||
}
|
||||
if !exists {
|
||||
@ -203,12 +214,14 @@ func handleDeleteWhitelist(bot *tgbotapi.BotAPI, message *tgbotapi.Message, doma
|
||||
err = core.DB.RemoveWhitelist(domain)
|
||||
if err != nil {
|
||||
core.SendErrorMessage(bot, message.Chat.ID, fmt.Sprintf("从白名单删除时发生错误: %v", err))
|
||||
logger.Printf("Failed to remove from whitelist: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
exists, err = core.DB.WhitelistExists(domain)
|
||||
if err != nil {
|
||||
core.SendErrorMessage(bot, message.Chat.ID, fmt.Sprintf("验证删除操作时发生错误: %v", err))
|
||||
logger.Printf("Failed to verify delete operation: %v", err)
|
||||
return
|
||||
}
|
||||
if !exists {
|
||||
|
@ -12,6 +12,8 @@ import (
|
||||
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
||||
)
|
||||
|
||||
var logger = log.New(log.Writer(), "PromptReply: ", log.Ldate|log.Ltime|log.Lshortfile)
|
||||
|
||||
type PromptReplyManager struct {
|
||||
promptReplies map[string]string
|
||||
mu sync.RWMutex
|
||||
@ -36,13 +38,13 @@ func (prm *PromptReplyManager) LoadDataFromDatabase() error {
|
||||
|
||||
prm.promptReplies = promptReplies
|
||||
|
||||
log.Printf("提示回复: 已从数据库加载 %d 条提示回复", len(prm.promptReplies))
|
||||
logger.Printf("提示回复: 已从数据库加载 %d 条提示回复", len(prm.promptReplies))
|
||||
return nil
|
||||
}
|
||||
func SetPromptReply(prompt, reply string) error {
|
||||
err := core.DB.AddPromptReply(prompt, reply)
|
||||
if err != nil {
|
||||
log.Printf("提示回复: %s 设置提示回复失败: %v", time.Now().Format("2006/01/02 15:04:05"), err)
|
||||
logger.Printf("提示回复: %s 设置提示回复失败: %v", time.Now().Format("2006/01/02 15:04:05"), err)
|
||||
return err
|
||||
}
|
||||
|
||||
@ -50,14 +52,14 @@ func SetPromptReply(prompt, reply string) error {
|
||||
Manager.promptReplies[prompt] = reply
|
||||
Manager.mu.Unlock()
|
||||
|
||||
log.Printf("提示回复: %s 设置提示回复成功。当前提示回复数量: %d", time.Now().Format("2006/01/02 15:04:05"), len(Manager.promptReplies))
|
||||
logger.Printf("提示回复: %s 设置提示回复成功。当前提示回复数量: %d", time.Now().Format("2006/01/02 15:04:05"), len(Manager.promptReplies))
|
||||
return nil
|
||||
}
|
||||
|
||||
func DeletePromptReply(prompt string) error {
|
||||
err := core.DB.DeletePromptReply(prompt)
|
||||
if err != nil {
|
||||
log.Printf("提示回复: %s 删除提示回复失败: %v", time.Now().Format("2006/01/02 15:04:05"), err)
|
||||
logger.Printf("提示回复: %s 删除提示回复失败: %v", time.Now().Format("2006/01/02 15:04:05"), err)
|
||||
return err
|
||||
}
|
||||
|
||||
@ -65,14 +67,14 @@ func DeletePromptReply(prompt string) error {
|
||||
delete(Manager.promptReplies, prompt)
|
||||
Manager.mu.Unlock()
|
||||
|
||||
log.Printf("提示回复: %s 删除提示回复成功。当前提示回复数量: %d", time.Now().Format("2006/01/02 15:04:05"), len(Manager.promptReplies))
|
||||
logger.Printf("提示回复: %s 删除提示回复成功。当前提示回复数量: %d", time.Now().Format("2006/01/02 15:04:05"), len(Manager.promptReplies))
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetPromptReply(message string) (string, bool) {
|
||||
promptReplies, err := core.DB.GetAllPromptReplies()
|
||||
if err != nil {
|
||||
log.Printf("Error getting prompt replies: %v", err)
|
||||
logger.Printf("Error getting prompt replies: %v", err)
|
||||
return "", false
|
||||
}
|
||||
|
||||
@ -88,7 +90,7 @@ func GetPromptReply(message string) (string, bool) {
|
||||
func ListPromptReplies() string {
|
||||
replies, err := core.DB.GetAllPromptReplies()
|
||||
if err != nil {
|
||||
log.Printf("获取及时回复时出错: %v", err)
|
||||
logger.Printf("获取及时回复时出错: %v", err)
|
||||
return "检索提示回复时出错"
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user