/
bot.py
144 lines (113 loc) · 5.74 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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
import re
import telebot
import bot_info # file keeping a bot token
import keyboards
import utils
bot = telebot.TeleBot(bot_info.token)
types = telebot.types
@bot.message_handler(commands=['start'])
def handle_start(message):
user_id: str = str(message.from_user.id)
bot.send_message(user_id,
"Привет. Для того, чтобы использовать бота, необходимо загерестрироваться или войти в систему.",
reply_markup=keyboards.login_or_register())
@bot.message_handler(content_types=['text'])
def message_handler(message):
user_id: str = str(message.from_user.id)
def send_message(message, reply_markup=None):
bot.send_message(user_id, message, reply_markup=reply_markup)
if message.text == "Регистрация":
if not utils.id_exists(user_id):
send_message("Ваш id - " + user_id + ". " + "Для того, чтобы установить пароль, введите:" +
"\n\nnew - *ваш новый пароль*")
else:
send_message("Пользователь с id " + user_id + " уже существует. ",
reply_markup=keyboards.login_or_register())
elif "new" in message.text:
utils.set_user(user_id, message.text)
send_message("Регистрация завершена успешно.")
elif message.text == "Вход":
if utils.id_exists(user_id):
send_message("Ваш id: " + user_id + ". " + "\n\nВведите пароль (pass - *ваш пароль*):")
else:
send_message("Вы ещё не зарегестрированы.", reply_markup=keyboards.login_or_register())
elif "pass" in message.text:
password = re.search(r'\S+$', message.text).group(0)
if password == utils.get_password(user_id):
send_message("Вы вошли в систему.", reply_markup=keyboards.main_menu())
else:
send_message("Неверный пароль. Повторите попытку.")
elif message.text == "Новая операция":
bot.send_message(user_id, "Выберите операцию.", reply_markup=keyboards.operations())
############### FOR CASH ###############
elif message.text == "Пополнить 💵":
cash, card = utils.get_money(user_id)
send_message("Текущий баланс: " +
"\nНаличные - " + str(cash) +
"\nКарта - " + str(card) +
"\n\nВведите сумму:"
"\n\n+$ *ваша сумма*")
elif "+$" in message.text:
sum = float(re.search(r'\S+$', message.text).group(0))
result = utils.add_cash(user_id, sum)
cash, card = utils.get_money(user_id)
send_message(result +
"\n\nТекущий баланс: " +
"\nНаличные - " + str(cash) +
"\nКарта - " + str(card))
elif message.text == "Списать 💵":
cash, card = utils.get_money(user_id)
send_message("\n\nТекущий баланс: " +
"\nНаличные - " + str(cash) +
"\nКарта - " + str(card) +
"\n\nВведите сумму:"
"\n\n-$ *ваша сумма*")
elif "-$" in message.text:
sum = float(re.search(r'\S+$', message.text).group(0))
result = utils.subtract_cash(user_id, sum)
cash, card = utils.get_money(user_id)
send_message(result +
"\n\nТекущий баланс: " +
"\nНаличные - " + str(cash) +
"\nКарта - " + str(card))
elif message.text == "Изменить 💵":
pass
########################################
############### FOR CARD ###############
elif message.text == "Пополнить 💳":
send_message("Введите сумму:"
"\n\n++ *ваша сумма*")
elif "++" in message.text:
sum = float(re.search(r'\S+$', message.text).group(0))
result = utils.add_card(user_id, sum)
cash, card = utils.get_money(user_id)
send_message(result +
"\n\nТекущий баланс: " +
"\nНаличные - " + str(cash) +
"\nКарта - " + str(card))
elif message.text == "Списать 💳":
send_message("Введите сумму:"
"\n\n-- *ваша сумма*")
elif "--" in message.text:
sum = float(re.search(r'\S+$', message.text).group(0))
result = utils.subtract_card(user_id, sum)
cash, card = utils.get_money(user_id)
send_message(result +
"\n\nТекущий баланс: " +
"\nНаличные - " + str(cash) +
"\nКарта - " + str(card))
elif message.text == "Изменить 💳":
pass
########################################
elif message.text == "Баланс 💰":
cash, card = utils.get_money(user_id)
send_message("Наличные: " + str(cash) + "." +
"\nКарта: " + str(card) + ".")
elif message.text == "О боте 🤖":
send_message("Раздел находится на стадии разработки.")
# TODO info, how to use bot
elif message.text == "Разработчик 👼":
send_message("Лев Красовский" +
"\n@lkrasovsky" +
"\n\nМинск, Беларусь")
bot.polling(none_stop=True, interval=0)