Initial rewriting

Signed-off-by: Ettore Dreucci <ettore.dreucci@gmail.com>
This commit is contained in:
2018-06-12 02:25:09 +02:00
parent c14d30c202
commit 2c59049efa
5 changed files with 152 additions and 0 deletions

25
barandaBot.go Normal file
View 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
View 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
View 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
View 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
View 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
}