-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbot.py
106 lines (101 loc) · 4.07 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
#########################################################
from config import bot,config
import config
from time import sleep
import re
import logic
import database.db as db
#########################################################
# Aquí vendrá la implementación de la lógica del bot
#########################################################
if __name__ == '__main__':
db.Base.metadata.create_all(db.engine)
#########################################################
@bot.message_handler(commands=['start'])
def on_command_start(message):
bot.send_chat_action(message.chat.id, 'typing')
bot.send_message(
message.chat.id,
logic.get_welcome_message(bot.get_me()),
parse_mode="Markdown")
bot.send_message(
message.chat.id,
logic.get_help_message(),
parse_mode="Markdown")
logic.register_account(message.from_user.id)
#########################################################
@bot.message_handler(commands=['help'])
def on_command_help(message):
bot.send_chat_action(message.chat.id, 'typing')
bot.send_message(
message.chat.id,
logic.get_help_message(),
parse_mode="Markdown")
#########################################################
@bot.message_handler(commands=['about'])
def on_command_about(message):
bot.send_chat_action(message.chat.id, 'typing')
bot.send_message(message.chat.id,
logic.get_about_this(config.VERSION),
parse_mode="Markdown")
#########################################################
@bot.message_handler(regexp=r"^(obtener saldo|s)$")
def on_get_balance(message):
bot.send_chat_action(message.chat.id, 'typing')
balance = logic.get_balance (message.from_user.id)
text = "\U0000274C Aún no tienes una cuenta asociada, ejecuta /start para arreglarlo."
if balance != None:
text = f"Tu saldo actual es ${balance}"
bot.reply_to(message, text)
#########################################################
@bot.message_handler(regexp=r"^(gane|gané|g) ([+-]?([0-9]*[.])?[0-9]+)$")
def on_earn_money(message):
bot.send_chat_action(message.chat.id, 'typing')
parts = re.match(
r"^(gane|gané|g) ([+-]?([0-9]*[.])?[0-9]+)$",
message.text,re.IGNORECASE)
# print (parts.groups())
amount = float(parts[2])
control = logic.earn_money (message.from_user.id, amount)
bot.reply_to(message,
f"\U0001F4B0 ¡Dinero ganado!: {amount}"
if control == True
else "\U0001F4A9 Tuve problemas registrando la transacción, ejecuta /start y vuelve a intentarlo")
#########################################################
@bot.message_handler(regexp=r"^(gaste|gasté|gg) ([+-]?([0-9]*[.])?[0-9]+)$")
def on_spend_money(message):
bot.send_chat_action(message.chat.id, 'typing')
parts = re.match(
r"^(gaste|gasté|gg) ([+-]?([0-9]*[.])?[0-9]+)$",
message.text,re.IGNORECASE)
# print (parts.groups())
amount = float(parts[2])
control = logic.spend_money (message.from_user.id, amount)
bot.reply_to(message,
f"\U0001F4B0 ¡Dinero gastado!: {amount}"
if control == True
else "\U0001F4A9 Tuve problemas registrando la transacción, ejecuta /start y vuelve a intentarlo")
#########################################################
@bot.message_handler(regexp=r"^(listar ganancias|lg) en ([0-9]{1,2}) de ([0-9]{4})$")
def on_list_earnings(message):
pass
#########################################################
@bot.message_handler(regexp=r"^(listar gastos|lgg) en ([0-9]{1,2}) de ([0-9]{4})$")
def on_list_spendings(message):
pass
#########################################################
@bot.message_handler(regexp=r"^(obtener saldo|s)$")
def on_get_balance(message):
pass
#########################################################
@bot.message_handler(regexp=r"^(remover|r) (ganancia|g|gasto|gg) ([0-9]+)$")
def on_remove_record(message):
pass
#########################################################
@bot.message_handler(func=lambda message: True)
def on_fallback(message):
pass
#########################################################
if __name__ == '__main__':
bot.polling(timeout=20)
#########################################################