E5BotForSQLite/handle.go

107 lines
2.5 KiB
Go
Raw Normal View History

2020-03-27 11:36:29 +08:00
package main
2020-03-27 23:02:28 +08:00
import (
"fmt"
"github.com/spf13/viper"
2020-03-28 11:20:45 +08:00
"github.com/tidwall/gjson"
2020-03-27 23:02:28 +08:00
tb "gopkg.in/tucnak/telebot.v2"
"strconv"
)
2020-03-27 11:36:29 +08:00
2020-03-27 23:02:28 +08:00
const (
2020-03-28 11:20:45 +08:00
bStartContent string = "欢迎使用E5SubBot!\n请输入命令以启用Bot"
2020-03-27 23:02:28 +08:00
)
var (
UserStatus map[int64]int
BindMaxNum int
)
const (
USNone = iota
USUnbind
USWillBind
USBind
)
func init() {
//read config
viper.SetConfigName("config")
viper.AddConfigPath(".")
err := viper.ReadInConfig()
CheckErr(err)
BindMaxNum = viper.GetInt("bindmax")
UserStatus = make(map[int64]int)
}
2020-03-27 11:36:29 +08:00
func bStart(m *tb.Message) {
2020-03-27 23:02:28 +08:00
bot.Send(m.Sender, bStartContent)
}
func bMy(m *tb.Message) {
2020-03-28 11:20:45 +08:00
data := QueryDataByTG(db, m.Chat.ID)
var inlineKeys [][]tb.InlineButton
2020-03-27 23:02:28 +08:00
for _, u := range data {
2020-03-28 11:20:45 +08:00
//uJson := MarshalMSData(u)
//fmt.Println(uJson)
2020-03-27 23:02:28 +08:00
inlineBtn := tb.InlineButton{
2020-03-28 11:20:45 +08:00
Unique: u.msId,
Text: gjson.Get(u.other, "alias").String(),
Data: u.msId,
2020-03-27 23:02:28 +08:00
}
2020-03-28 11:20:45 +08:00
bot.Handle(&inlineBtn, bMyInlineBtn)
2020-03-27 23:02:28 +08:00
inlineKeys = append(inlineKeys, []tb.InlineButton{inlineBtn})
}
2020-03-28 11:20:45 +08:00
bot.Send(m.Chat, "选择一个账户查看具体信息\n\n绑定数: "+strconv.Itoa(GetBindNum(m.Chat.ID))+"/"+strconv.Itoa(BindMaxNum), &tb.ReplyMarkup{InlineKeyboard: inlineKeys})
2020-03-27 23:02:28 +08:00
}
2020-03-28 11:20:45 +08:00
func bMyInlineBtn(c *tb.Callback) {
//var inlineKeys [][]tb.InlineButton
//bot.Handle(&inlineBtn, bMyinlineBtn)
//inlineKeys = append(inlineKeys, []tb.InlineButton{inlineBtn})
//bot.EditReplyMarkup(tb.Editable(c.MessageID, int64(c.Sender.ID)))
fmt.Println(c.Data)
r := QueryDataByMS(db, c.Data)
u := r[0]
bot.Send(c.Message.Chat, "信息\n别名"+gjson.Get(u.other, "alias").String()+"\nMS_ID: "+u.msId+"\n最近更新时间: "+u.uptime.Format("2006-01-02 15:04:05"))
2020-03-27 23:02:28 +08:00
bot.Respond(c)
}
func bBind(m *tb.Message) {
tgId := m.Chat.ID
fmt.Println("Auth: " + strconv.FormatInt(tgId, 10))
2020-03-28 11:20:45 +08:00
bot.Send(m.Chat, "授权链接: [点击直达]("+authUrl+")", tb.ModeMarkdown)
_, err := bot.Send(m.Chat, "回复格式http://localhost/...+空格+别名(用于管理)", &tb.ReplyMarkup{ForceReply: true})
2020-03-27 23:02:28 +08:00
if err == nil {
UserStatus[m.Chat.ID] = USWillBind
}
}
func bAbout(m *tb.Message) {
bot.Send(m.Sender, bStartContent)
}
func bOnText(m *tb.Message) {
switch UserStatus[m.Chat.ID] {
case USNone:
{
bot.Send(m.Chat, "发送/bind开始绑定嗷")
return
}
case USWillBind:
{
if GetBindNum(m.Chat.ID) == BindMaxNum {
bot.Send(m.Chat, "已经达到最大可绑定数")
return
}
bot.Send(m.Chat, "正在绑定中……")
info := BindUser(m)
if info == "" {
bot.Send(m.Chat, "绑定成功!")
} else {
bot.Send(m.Chat, info)
}
}
case USBind:
2020-03-27 11:36:29 +08:00
2020-03-27 23:02:28 +08:00
}
2020-03-27 11:36:29 +08:00
}