Initial rewriting
Signed-off-by: Ettore Dreucci <ettore.dreucci@gmail.com>
This commit is contained in:
25
barandaBot.go
Normal file
25
barandaBot.go
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import "log"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
|
||||||
|
cmdFlags, err := getFlags()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal("Error in parsing command line flags. Abort!")
|
||||||
|
}
|
||||||
|
|
||||||
|
redisClient, err := redisInit(cmdFlags.redisAddr, cmdFlags.redisPwd, cmdFlags.redisDB)
|
||||||
|
defer redisClient.Close()
|
||||||
|
|
||||||
|
bots, errors := botInit()
|
||||||
|
for _, bot := range bots {
|
||||||
|
bot.Stop()
|
||||||
|
}
|
||||||
|
|
||||||
|
/*b.Handle("/hello", func(m *tb.Message) {
|
||||||
|
b.Send(m.Sender, "hello world")
|
||||||
|
})
|
||||||
|
|
||||||
|
b.Start()*/
|
||||||
|
}
|
44
flags.go_old
Normal file
44
flags.go_old
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"flag"
|
||||||
|
"fmt"
|
||||||
|
"strconv"
|
||||||
|
)
|
||||||
|
|
||||||
|
type intSlice []int
|
||||||
|
type stringSlice []string
|
||||||
|
|
||||||
|
func (i *intSlice) String() string {
|
||||||
|
return fmt.Sprintf("%d", *i)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *stringSlice) String() string {
|
||||||
|
return fmt.Sprint(*i)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *intSlice) Set(value string) error {
|
||||||
|
tmp, err := strconv.Atoi(value)
|
||||||
|
if err != nil {
|
||||||
|
*i = append(*i, -1)
|
||||||
|
} else {
|
||||||
|
*i = append(*i, tmp)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (i *stringSlice) Set(value string) error {
|
||||||
|
*i = append(*i, value)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func initFlags() (stringSlice, intSlice) {
|
||||||
|
var tokens stringSlice
|
||||||
|
var timeouts intSlice
|
||||||
|
|
||||||
|
flag.Var(&tokens, "t", "Bot token")
|
||||||
|
flag.Var(&timeouts, "timeout", "Poller timeout in seconds")
|
||||||
|
flag.Parse()
|
||||||
|
|
||||||
|
return tokens, timeouts
|
||||||
|
}
|
20
redisAPI.go
Normal file
20
redisAPI.go
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"log"
|
||||||
|
|
||||||
|
"github.com/go-redis/redis"
|
||||||
|
)
|
||||||
|
|
||||||
|
func redisInit(addr string, pwd string, db int) (*redis.Client, error) {
|
||||||
|
redisClient := redis.NewClient(&redis.Options{
|
||||||
|
Addr: addr,
|
||||||
|
Password: pwd,
|
||||||
|
DB: db,
|
||||||
|
})
|
||||||
|
err := redisClient.Ping().Err()
|
||||||
|
if err != nil {
|
||||||
|
log.Panicf("Error in connecting to redis instance: %v", err)
|
||||||
|
}
|
||||||
|
return redisClient, nil
|
||||||
|
}
|
34
sys.go
Normal file
34
sys.go
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import "flag"
|
||||||
|
|
||||||
|
type flags struct {
|
||||||
|
redisAddr string
|
||||||
|
redisPwd string
|
||||||
|
redisDB int
|
||||||
|
}
|
||||||
|
|
||||||
|
func getFlags() (flags, error) {
|
||||||
|
|
||||||
|
var cmdFlags flags
|
||||||
|
|
||||||
|
const (
|
||||||
|
defaultAddr = "127.0.0.1:6379"
|
||||||
|
addrUsage = "The address of the redis instance"
|
||||||
|
defaultPwd = ""
|
||||||
|
pwdUsage = "The password of the redis instance"
|
||||||
|
defaultDB = 0
|
||||||
|
dbUsage = "The database to be selected after connecting to redis instance"
|
||||||
|
)
|
||||||
|
|
||||||
|
flag.StringVar(&(cmdFlags.redisAddr), "redisAddr", defaultAddr, addrUsage)
|
||||||
|
flag.StringVar(&(cmdFlags.redisAddr), "a", defaultAddr, addrUsage+("shorthand"))
|
||||||
|
flag.StringVar(&(cmdFlags.redisPwd), "redisPwd", defaultPwd, pwdUsage)
|
||||||
|
flag.StringVar(&(cmdFlags.redisPwd), "p", defaultPwd, pwdUsage+("shorthand"))
|
||||||
|
flag.IntVar(&(cmdFlags.redisDB), "redisDB", defaultDB, dbUsage)
|
||||||
|
flag.IntVar(&(cmdFlags.redisDB), "d", defaultDB, dbUsage+("shorthand"))
|
||||||
|
|
||||||
|
flag.Parse()
|
||||||
|
|
||||||
|
return cmdFlags, nil
|
||||||
|
}
|
29
telegramAPI.go
Normal file
29
telegramAPI.go
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
|
tb "gopkg.in/tucnak/telebot.v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
func botInit() ([]*tb.Bot, []error) {
|
||||||
|
var bots []*tb.Bot
|
||||||
|
var errors []error
|
||||||
|
for i, token := range tokens {
|
||||||
|
var timeout int
|
||||||
|
if i < len(timeouts) {
|
||||||
|
timeout = timeouts[i]
|
||||||
|
} else {
|
||||||
|
timeout = 10
|
||||||
|
}
|
||||||
|
tmpBot, tmpErr := tb.NewBot(tb.Settings{
|
||||||
|
Token: token,
|
||||||
|
Poller: &tb.LongPoller{Timeout: time.Duration(timeout) * time.Second},
|
||||||
|
})
|
||||||
|
|
||||||
|
bots = append(bots, tmpBot)
|
||||||
|
errors = append(errors, tmpErr)
|
||||||
|
}
|
||||||
|
|
||||||
|
return bots, errors
|
||||||
|
}
|
Reference in New Issue
Block a user