/
bot.py
91 lines (71 loc) · 2.71 KB
/
bot.py
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
86
87
88
89
90
91
from telegram.ext import Updater
from telegram.ext import MessageHandler, Filters
from telegram.ext.commandhandler import CommandHandler
import logging
from configuration import TOKEN, db_param
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from base import Base
from bot_message_sender import BotMessageSender
from message_processor import MessageProcessor
from entity_manager import EntityManager
# Setting up mysqlalchemy
engine = create_engine(db_param, echo=True)
engine.connect()
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
entity_manager = EntityManager(session)
# Setting up bot polling
updater = Updater(token=TOKEN)
dispatcher = updater.dispatcher
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
level=logging.DEBUG)
ms = BotMessageSender(updater.bot)
mp = MessageProcessor(entity_manager, ms)
def start(bot, update):
mp.start(update.message.chat_id, update.message.text)
def message(bot, update):
mp.message(update.message.chat_id, update.message.text)
def broadcast(bot, update):
mp.broadcast(update.message.chat_id, update.message.text)
def go(bot, update):
mp.go(update.message.chat_id, update.message.text)
def buy(bot, update):
mp.buy(update.message.chat_id, update.message.text)
def equip(bot, update):
mp.equip(update.message.chat_id, update.message.text)
def inc_str(bot, update):
mp.inc(update.message.chat_id, update.message.text, parameter='str')
def inc_int(bot, update):
mp.inc(update.message.chat_id, update.message.text, parameter='int')
def inc_end(bot, update):
mp.inc(update.message.chat_id, update.message.text, parameter='end')
start_handler = CommandHandler('start', start)
message_handler = MessageHandler([Filters.text], message)
broadcast_handler = CommandHandler('broadcast', broadcast)
dispatcher.add_handler(start_handler)
dispatcher.add_handler(message_handler)
dispatcher.add_handler(broadcast_handler)
for i in range(0, 100):
h = CommandHandler('go_' + str(i), go)
dispatcher.add_handler(h)
for i in range(0, 100):
h = CommandHandler('buy_w' + str(i), buy)
dispatcher.add_handler(h)
for i in range(0, 100):
h = CommandHandler('buy_a' + str(i), buy)
dispatcher.add_handler(h)
for i in range(0, 100):
h = CommandHandler('equip_w' + str(i), equip)
dispatcher.add_handler(h)
for i in range(0, 100):
h = CommandHandler('equip_a' + str(i), equip)
dispatcher.add_handler(h)
h = CommandHandler('inc_str', inc_str)
dispatcher.add_handler(h)
h = CommandHandler('inc_int', inc_int)
dispatcher.add_handler(h)
h = CommandHandler('inc_end', inc_end)
dispatcher.add_handler(h)
updater.start_polling()