Simplify query calls
This commit is contained in:
75
main.go
75
main.go
@@ -6,9 +6,19 @@ import (
|
||||
"os"
|
||||
mtrbus "github.com/tgckpg/golifehk/datasources/mtr/bus"
|
||||
kmb "github.com/tgckpg/golifehk/datasources/kmb"
|
||||
query "github.com/tgckpg/golifehk/query"
|
||||
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
||||
)
|
||||
|
||||
func botsend( bot *tgbotapi.BotAPI, update *tgbotapi.Update, mesg *string ) {
|
||||
var msg tgbotapi.MessageConfig
|
||||
msg = tgbotapi.NewMessage( update.Message.Chat.ID, *mesg )
|
||||
msg.ParseMode = "MarkdownV2"
|
||||
|
||||
msg.ReplyToMessageID = update.Message.MessageID
|
||||
bot.Send( msg )
|
||||
}
|
||||
|
||||
func main() {
|
||||
bot, err := tgbotapi.NewBotAPI( os.Getenv( "TELEGRAM_API_TOKEN" ) )
|
||||
if err != nil {
|
||||
@@ -30,62 +40,29 @@ func main() {
|
||||
}
|
||||
|
||||
log.Printf( "[%s] %s", update.Message.From.UserName, update.Message.Text )
|
||||
|
||||
mesg, err := mtrbus.Query( "zh-Hant", update.Message.Text ).Message()
|
||||
|
||||
isGroup := ( update.Message.Chat.ID < 0 )
|
||||
|
||||
if isGroup {
|
||||
if err == nil {
|
||||
msg := tgbotapi.NewMessage( update.Message.Chat.ID, mesg )
|
||||
msg.ParseMode = "MarkdownV2"
|
||||
msg.ReplyToMessageID = update.Message.MessageID
|
||||
|
||||
bot.Send( msg )
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
var msg tgbotapi.MessageConfig
|
||||
if err == nil {
|
||||
msg = tgbotapi.NewMessage( update.Message.Chat.ID, mesg )
|
||||
msg.ParseMode = "MarkdownV2"
|
||||
} else {
|
||||
msg = tgbotapi.NewMessage( update.Message.Chat.ID, fmt.Sprintf( "%s", err ) )
|
||||
}
|
||||
|
||||
msg.ReplyToMessageID = update.Message.MessageID
|
||||
bot.Send( msg )
|
||||
f_queries := []func( string, string ) query.IQueryResult{
|
||||
mtrbus.Query,
|
||||
kmb.Query,
|
||||
}
|
||||
|
||||
mesg, err2 := kmb.Query( "zh-Hant", update.Message.Text ).Message()
|
||||
var f_sent bool = false
|
||||
var f_err error = nil
|
||||
for _, Query := range f_queries {
|
||||
mesg, err := Query( "zh-Hant", update.Message.Text ).Message()
|
||||
|
||||
if err != nil && err2 != nil {
|
||||
continue
|
||||
if err == nil {
|
||||
f_sent = true
|
||||
botsend( bot, &update, &mesg )
|
||||
} else if f_err == nil {
|
||||
f_err = err
|
||||
}
|
||||
}
|
||||
|
||||
err = err2
|
||||
if isGroup {
|
||||
if err == nil {
|
||||
msg := tgbotapi.NewMessage( update.Message.Chat.ID, mesg )
|
||||
msg.ParseMode = "MarkdownV2"
|
||||
msg.ReplyToMessageID = update.Message.MessageID
|
||||
|
||||
bot.Send( msg )
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
var msg tgbotapi.MessageConfig
|
||||
if err == nil {
|
||||
msg = tgbotapi.NewMessage( update.Message.Chat.ID, mesg )
|
||||
msg.ParseMode = "MarkdownV2"
|
||||
} else {
|
||||
msg = tgbotapi.NewMessage( update.Message.Chat.ID, fmt.Sprintf( "%s", err ) )
|
||||
}
|
||||
|
||||
msg.ReplyToMessageID = update.Message.MessageID
|
||||
bot.Send( msg )
|
||||
if !isGroup && !f_sent && f_err != nil {
|
||||
mesg := fmt.Sprintf( "%s", f_err )
|
||||
botsend( bot, &update, &mesg )
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user