47 lines
926 B
Go
47 lines
926 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"flag"
|
||
|
|
||
|
"github.com/boltdb/bolt"
|
||
|
"github.com/hamcha/tg"
|
||
|
)
|
||
|
|
||
|
func assert(err error) {
|
||
|
if err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var db *bolt.DB
|
||
|
var chatID *int64
|
||
|
|
||
|
func process(broker *tg.Broker, update tg.APIMessage) {
|
||
|
// Process messages from marked chat only
|
||
|
if update.Chat.ChatID != *chatID {
|
||
|
return
|
||
|
}
|
||
|
getNick(update.User)
|
||
|
updateStats(update)
|
||
|
}
|
||
|
|
||
|
func main() {
|
||
|
brokerAddr := flag.String("broker", "localhost:7314", "Broker address:port")
|
||
|
webBind := flag.String("webserver", "localhost:7315", "Address to bind webserver to")
|
||
|
boltdbFile := flag.String("boltdb", "stats.db", "BoltDB database file")
|
||
|
chatID = flag.Int64("chatid", -14625256, "Telegram Chat ID to count stats for")
|
||
|
flag.Parse()
|
||
|
|
||
|
var err error
|
||
|
db, err = bolt.Open(*boltdbFile, 0600, nil)
|
||
|
assert(err)
|
||
|
defer db.Close()
|
||
|
|
||
|
loadUsers()
|
||
|
loadStats()
|
||
|
|
||
|
go startWebServer(*webBind)
|
||
|
|
||
|
assert(tg.CreateBrokerClient(*brokerAddr, process))
|
||
|
}
|