Add Some Handles

This commit is contained in:
iyear 2020-03-27 23:03:46 +08:00
parent 4060b60aee
commit 50e26fca6e

57
main.go
View File

@ -6,15 +6,15 @@ import (
"github.com/spf13/viper" "github.com/spf13/viper"
"golang.org/x/net/proxy" "golang.org/x/net/proxy"
tb "gopkg.in/tucnak/telebot.v2" tb "gopkg.in/tucnak/telebot.v2"
"log"
"net/http" "net/http"
"os"
"time" "time"
) )
var ( var (
BotToken string BotToken string
Socks5 string Socks5 string
bot *tb.Bot
db *sql.DB
) )
const ( const (
@ -23,59 +23,54 @@ const (
) )
func init() { func init() {
//read config
viper.SetConfigName("config") viper.SetConfigName("config")
viper.AddConfigPath(".") viper.AddConfigPath(".")
err := viper.ReadInConfig() err := viper.ReadInConfig()
CheckErr(err) CheckErr(err)
BotToken = viper.GetString("bot_token") BotToken = viper.GetString("bot_token")
Socks5 = viper.GetString("socks5") Socks5 = viper.GetString("socks5")
//set bot
}
func main() {
botsettings := tb.Settings{ botsettings := tb.Settings{
Token: BotToken, Token: BotToken,
Poller: &tb.LongPoller{Timeout: 10 * time.Second}, Poller: &tb.LongPoller{Timeout: 10 * time.Second},
} }
//set socks5
if Socks5 != "" { if Socks5 != "" {
fmt.Println("Proxy:" + Socks5) fmt.Println("Proxy:" + Socks5)
dialer, err := proxy.SOCKS5("tcp", Socks5, nil, proxy.Direct) dialer, err := proxy.SOCKS5("tcp", Socks5, nil, proxy.Direct)
if err != nil { CheckErr(err)
log.Fatal("Error creating dialer, aborting.")
}
httpTransport := &http.Transport{} httpTransport := &http.Transport{}
httpClient := &http.Client{Transport: httpTransport} httpClient := &http.Client{Transport: httpTransport}
httpTransport.Dial = dialer.Dial httpTransport.Dial = dialer.Dial
botsettings.Client = httpClient botsettings.Client = httpClient
} }
db, err := sql.Open(dbDriverName, dbName) //create bot
bot, err = tb.NewBot(botsettings)
CheckErr(err) CheckErr(err)
if !FileExist(dbName) {
CreateTB(db) //sqlite init
} db, err = sql.Open(dbDriverName, dbName)
b, err := tb.NewBot(botsettings)
CheckErr(err) CheckErr(err)
CreateTB(db)
}
func main() {
BotStart()
//b.Handle(tb.OnText, func(m *tb.Message) { //b.Handle(tb.OnText, func(m *tb.Message) {
// b.Send(m.Sender, "hello world") // b.Send(m.Sender, "hello world")
//}) //})
b.Start() //b.Start()
} }
func CheckErr(err error) bool { func BotStart() {
if err != nil { makeHandle()
log.Println(err) bot.Start()
fmt.Println("error: ", err.Error())
panic(err)
return false
}
return true
} }
func FileExist(Path string) bool { func makeHandle() {
if _, err := os.Stat(Path); err != nil { bot.Handle("/start", bStart)
if os.IsNotExist(err) { bot.Handle("/my", bMy)
return false bot.Handle("/bind", bBind)
} else { bot.Handle("/about", bAbout)
CheckErr(err) bot.Handle(tb.OnText, bOnText)
} //bot.Handle(tb.InlineButton{Unique: ""})
}
return true
} }