gottdad/bot.go
2020-06-22 11:02:04 +02:00

76 lines
1.3 KiB
Go

package main
import (
"encoding/json"
tb "gopkg.in/tucnak/telebot.v2"
)
func BotHandlers(b *tb.Bot) {
b.Handle("/pause", botPause)
b.Handle("/unpause", botUnpause)
b.Handle(tb.OnPhoto, botPhoto)
b.Handle(tb.OnChannelPost, botChannelPost)
b.Handle(tb.OnQuery, botQuery)
b.Handle(tb.OnText, botText)
b.Handle(tb.OnDocument, botDocument)
b.Start()
}
func botPause(m *tb.Message) {
forcePaused = true
return
}
func botUnpause(m *tb.Message) {
forcePaused = false
return
}
func PrintText(m *tb.Message) {
logInfoDebug("[%d] %s(%d) | %s(%d) : %s\n", m.ID, m.Chat.Title, m.Chat.ID, m.Sender.Username, m.Sender.ID, m.Text)
return
}
func botPhoto(m *tb.Message) {
logInfoDebug("botPhoto :", m.Text)
// photos only
}
func botDocument(m *tb.Message) {
logInfoDebug("botDocument : %s (%d bytes)\n", m.Document.FileName, m.Document.File.FileSize)
// documents only
}
func botChannelPost(m *tb.Message) {
PrintText(m)
b, _ := json.Marshal(m)
logInfoDebug("botChannelPost : %s\n", string(b))
// channel posts only
}
func botQuery(q *tb.Query) {
logInfoDebug("botQuery")
// incoming inline queries
}
func botText(m *tb.Message) {
PrintText(m)
}
func sendChat(chatID int64, text string) {
opt := tb.SendOptions{
ParseMode: tb.ModeDefault,
}
ch := tb.Chat{
ID: chatID,
}
_, err := bot.Send(&ch, text, &opt)
logErrorDebug(err, "sendChat")
}