Can now accept location
This commit is contained in:
74
main.go
74
main.go
@@ -30,6 +30,22 @@ func main() {
|
||||
updates := bot.GetUpdatesChan(u)
|
||||
|
||||
for update := range updates {
|
||||
|
||||
if update.CallbackQuery != nil {
|
||||
callback := tgbotapi.NewCallback(update.CallbackQuery.ID, "")
|
||||
bot.Request(callback)
|
||||
|
||||
q := query.QueryMessage{Lang: "zh-Hant", Text: update.CallbackQuery.Data}
|
||||
f_sent, f_err := processQuery(bot, &update, q)
|
||||
|
||||
if !f_sent && f_err != nil {
|
||||
mesg := utils.MDv2Text(fmt.Sprintf("%s", f_err))
|
||||
tgadaptor.BotSendText(bot, &update, &mesg)
|
||||
}
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
if update.Message == nil {
|
||||
continue
|
||||
}
|
||||
@@ -45,15 +61,6 @@ func main() {
|
||||
continue
|
||||
}
|
||||
|
||||
f_queries := []func(query.QueryMessage) query.IQueryResult{
|
||||
cjlookup.Query,
|
||||
mtrbus.Query,
|
||||
kmb.Query,
|
||||
}
|
||||
|
||||
var f_sent bool = false
|
||||
var f_err error = nil
|
||||
|
||||
tgMesg := update.Message
|
||||
q := query.QueryMessage{Lang: "zh-Hant", Text: tgMesg.Text}
|
||||
|
||||
@@ -61,23 +68,7 @@ func main() {
|
||||
q.Location = &query.GeoLocation{tgMesg.Location.Latitude, tgMesg.Location.Longitude}
|
||||
}
|
||||
|
||||
for _, Query := range f_queries {
|
||||
|
||||
qResult := Query(q)
|
||||
sent, err := tgadaptor.BotSend(bot, &update, qResult)
|
||||
|
||||
if sent {
|
||||
f_sent = true
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
f_err = err
|
||||
}
|
||||
|
||||
if qResult.Consumed() {
|
||||
break
|
||||
}
|
||||
}
|
||||
f_sent, f_err := processQuery(bot, &update, q)
|
||||
|
||||
if !isGroup && !f_sent && f_err != nil {
|
||||
mesg := utils.MDv2Text(fmt.Sprintf("%s", f_err))
|
||||
@@ -85,3 +76,34 @@ func main() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func processQuery(bot *tgbotapi.BotAPI, update *tgbotapi.Update, q query.QueryMessage) (bool, error) {
|
||||
var f_sent bool = false
|
||||
var f_err error = nil
|
||||
|
||||
f_queries := []func(query.QueryMessage) query.IQueryResult{
|
||||
cjlookup.Query,
|
||||
mtrbus.Query,
|
||||
kmb.Query,
|
||||
}
|
||||
|
||||
for _, Query := range f_queries {
|
||||
|
||||
qResult := Query(q)
|
||||
sent, err := tgadaptor.BotSend(bot, update, qResult)
|
||||
|
||||
if sent {
|
||||
f_sent = true
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
f_err = err
|
||||
}
|
||||
|
||||
if qResult.Consumed() {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
return f_sent, f_err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user