-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
85 lines (71 loc) · 2.9 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package main
import (
"flag"
"fmt"
"time"
tele "gopkg.in/telebot.v3"
)
var (
storage = NewStorage()
locker = NewLocker()
logger = NewLogger(true)
bot *tele.Bot
)
var (
DEBUG bool
TOKEN string
)
func init() {
flag.BoolVar(&DEBUG, "debug", false, "debug mode")
flag.StringVar(&TOKEN, "token", "", "bot token")
flag.Parse()
err := storage.Connect()
if err != nil {
logger.Error(err)
logger.Fatal(fmt.Errorf("cannot connect to storage: %w", err))
}
pref := tele.Settings{
Token: TOKEN,
Poller: &tele.LongPoller{Timeout: 10 * time.Second},
}
b, err := tele.NewBot(pref)
if err != nil {
logger.Error(err)
}
bot = b
}
func main() {
defer storage.Disconnect()
// buttons
bot.Handle(&btnPasswords, btnPasswordsHandler, registerRequiredMiddleware, lockedMiddleware)
bot.Handle(&btnPasswordsRemove, btnPasswordsRemoveHandler, registerRequiredMiddleware, lockedMiddleware)
bot.Handle(&btnLock, btnLockHandler, registerRequiredMiddleware, lockedMiddleware)
bot.Handle(&btnUnlock, btnUnlockHandler, registerRequiredMiddleware)
bot.Handle(&btnPassword, btnPasswordHandler, registerRequiredMiddleware, lockedRemoveMiddleware)
bot.Handle(&btnPasswordRemove, btnPasswordRemoveHandler, registerRequiredMiddleware, lockedRemoveMiddleware)
bot.Handle(&btnAddPassword, btnAddPasswordHandler, registerRequiredMiddleware, lockedRemoveMiddleware)
bot.Handle(&btnRegisterKey, btnRegisterKeyHandler, nonRegisterRequiredMiddleware)
bot.Handle(&btnForgotKey, btnForgotKeyHandler, registerRequiredMiddleware)
bot.Handle(&btnCleanMyData, btnCleanMyDataHandler, registerRequiredMiddleware)
bot.Handle(&btnCleanMyPasswords, btnCleanMyPasswordsHandler, registerRequiredMiddleware, lockedRemoveMiddleware)
bot.Handle(&btnYesClean, btnYesCleanHandler, registerRequiredMiddleware, lockedRemoveMiddleware)
bot.Handle(&btnNoClean, btnNoCleanHandler, registerRequiredMiddleware, lockedRemoveMiddleware)
bot.Handle(&btnYesCleanData, btnYesCleanDataHandler, registerRequiredMiddleware)
bot.Handle(&btnNoCleanData, btnNoCleanDataHandler, registerRequiredMiddleware)
bot.Handle(&btnCancel, btnCancelHandler, registerRequiredMiddleware)
bot.Handle(&btnHelp, helpHandler)
// commands
bot.Handle("/unlock", unlockHandler, registerRequiredMiddleware)
bot.Handle("/u", unlockHandler, registerRequiredMiddleware)
bot.Handle("/start", startHandler)
bot.Handle("/s", startHandler)
bot.Handle("/help", helpHandler)
bot.Handle("/h", helpHandler)
bot.Handle("/passwords", btnPasswordsHandler, registerRequiredMiddleware, lockedMiddleware)
bot.Handle("/p", btnPasswordsHandler, registerRequiredMiddleware, lockedMiddleware)
bot.Handle("/add", addHandler, registerRequiredMiddleware, lockedRemoveMiddleware)
bot.Handle("/a", addHandler, registerRequiredMiddleware, lockedRemoveMiddleware)
bot.Handle("/register", registerHandler, nonRegisterRequiredMiddleware)
bot.Handle("/r", registerHandler, nonRegisterRequiredMiddleware)
bot.Start()
}