addall rmall addtoday rmtoday
This commit is contained in:
1 parent
b99fb5a72f
commit
4dc52d7add
6 files changed
+168
-69
No files matched your search
+3
-3
@@ -1,11 +1,11 @@
|
|||||||
from bot import bot
|
from bot import bot
|
||||||
import locale
|
import locales
|
||||||
|
|
||||||
|
|
||||||
def change_locale(message):
|
def change_locale(message):
|
||||||
if message.text.split(' ')[0] == '/ru':
|
if message.text.split(' ')[0] == '/ru':
|
||||||
locale.LOCALE = 'ru'
|
locales.LOCALE = 'ru'
|
||||||
bot.send_message(message.chat.id, 'Выбран русский язык')
|
bot.send_message(message.chat.id, 'Выбран русский язык')
|
||||||
elif message.text.split(' ')[0] == '/en':
|
elif message.text.split(' ')[0] == '/en':
|
||||||
locale.LOCALE = 'en'
|
locales.LOCALE = 'en'
|
||||||
bot.send_message(message.chat.id, 'Selected language: english')
|
bot.send_message(message.chat.id, 'Selected language: english')
|
||||||
Binary file not shown.
@@ -27,6 +27,7 @@ class Transaction(BaseModel):
|
|||||||
sum = FloatField(column_name='TransactionSum', null=False, default=0)
|
sum = FloatField(column_name='TransactionSum', null=False, default=0)
|
||||||
user = ForeignKeyField(User, unique=False)
|
user = ForeignKeyField(User, unique=False)
|
||||||
date = DateField(column_name='Date', default=datetime.datetime.today())
|
date = DateField(column_name='Date', default=datetime.datetime.today())
|
||||||
|
category = TextField(column_name='category', default='none category')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
table_name = 'Transaction'
|
table_name = 'Transaction'
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
LOCALE = 'ru'
|
|
||||||
|
|
||||||
ru = {
|
|
||||||
'help_message':
|
|
||||||
'''
|
|
||||||
Привет я бот для управления твоими финансами и вот что я умею:
|
|
||||||
/help - показать этот список.
|
|
||||||
/ru - русский язык
|
|
||||||
/en - английский язык
|
|
||||||
/balance - текущий баланс
|
|
||||||
/add или + - добавить доход
|
|
||||||
/rm или - - добавить расход
|
|
||||||
''',
|
|
||||||
'error404_message': 'Я не могу это сделать.',
|
|
||||||
'erradd': 'Используйте /add [сумма] или + [сумма]',
|
|
||||||
'errrm': 'Используйте /rm [сумма] или - [сумма]'
|
|
||||||
}
|
|
||||||
|
|
||||||
en = {
|
|
||||||
'help_message':
|
|
||||||
'''
|
|
||||||
Hi i am finance bot and i can do this:
|
|
||||||
/help - open this list
|
|
||||||
/ru - russian language
|
|
||||||
/en - english language
|
|
||||||
/balance - balance
|
|
||||||
/add или + - add incom
|
|
||||||
/rm или - - add consuption
|
|
||||||
''',
|
|
||||||
'error404_message': 'I can\'t do this.',
|
|
||||||
'erradd': 'Use /add [sum] or + [sum]',
|
|
||||||
'errrm': 'Use /rm [sum] or - [sum]'
|
|
||||||
}
|
|
||||||
+41
@@ -0,0 +1,41 @@
|
|||||||
|
LOCALE = 'ru'
|
||||||
|
|
||||||
|
ru = {
|
||||||
|
'help_message':
|
||||||
|
'''
|
||||||
|
Привет я бот для управления твоими финансами и вот что я умею:
|
||||||
|
1. /help - показать этот список.
|
||||||
|
2. /ru - русский язык
|
||||||
|
3. /en - английский язык
|
||||||
|
4. /balance - текущий баланс
|
||||||
|
5. /add или + - добавить доход
|
||||||
|
6. /rm или - - добавить расход
|
||||||
|
7. /addtoday - доходы за сегодня
|
||||||
|
8. /rmtoday - расходы за сегодня
|
||||||
|
9. /addall - доходы за все время
|
||||||
|
10. /rmall - расходы за все время
|
||||||
|
''',
|
||||||
|
'error404_message': 'Я не могу это сделать.',
|
||||||
|
'erradd': 'Используйте:\n1. /add [сумма]\n2. + [сумма]\n3. /add [сумма] [категория]\n4. + [сумма] [категория]',
|
||||||
|
'errrm': 'Используйте:\n1. /rm [сумма]\n2. - [сумма]\n3. /rm [сумма] [категория]\n4. - [сумма] [категория]'
|
||||||
|
}
|
||||||
|
|
||||||
|
en = {
|
||||||
|
'help_message':
|
||||||
|
'''
|
||||||
|
Hi i am finance bot and i can do this:
|
||||||
|
1. /help - open this list
|
||||||
|
2. /ru - russian language
|
||||||
|
3. /en - english language
|
||||||
|
4. /balance - balance
|
||||||
|
5. /add или + - add incom
|
||||||
|
6. /rm или - - add consuption
|
||||||
|
7. /addtoday - incomes today
|
||||||
|
8. /rmtoday - consuptions today
|
||||||
|
9. /addall - incomes to all time
|
||||||
|
10. /rmall - consuptions to all time
|
||||||
|
''',
|
||||||
|
'error404_message': 'I can\'t do this.',
|
||||||
|
'erradd': 'Use:\n1. /add [sum]\n2. + [sum]\n3. /add [sum] [category]\n4. + [sum] [category]',
|
||||||
|
'errrm': 'Use\n1. /rm [sum]\n2. - [sum]\n3. /rm [sum] [category]\n4. - [sum] [category]'
|
||||||
|
}
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
|
import datetime
|
||||||
|
|
||||||
from termcolor import cprint
|
from termcolor import cprint
|
||||||
from bot import bot
|
from bot import bot
|
||||||
import locale
|
import locales
|
||||||
from changelocale import change_locale
|
from changelocale import change_locale
|
||||||
from database.models import User, Transaction
|
from database.models import User, Transaction
|
||||||
|
|
||||||
@@ -15,59 +17,147 @@ def main_bot(messages):
|
|||||||
for message in messages:
|
for message in messages:
|
||||||
if message.text.split(' ')[0] == '/start' or message.text.split(' ')[0] == '/help':
|
if message.text.split(' ')[0] == '/start' or message.text.split(' ')[0] == '/help':
|
||||||
mes = None
|
mes = None
|
||||||
if locale.LOCALE == 'ru':
|
if locales.LOCALE == 'ru':
|
||||||
mes = locale.ru['help_message']
|
mes = locales.ru['help_message']
|
||||||
elif locale.LOCALE == 'en':
|
elif locales.LOCALE == 'en':
|
||||||
mes = locale.en['help_message']
|
mes = locales.en['help_message']
|
||||||
_, user = User.get_or_create(username=message.chat.id)
|
_, user = User.get_or_create(username=message.chat.id)
|
||||||
bot.send_message(message.chat.id, mes)
|
bot.send_message(message.chat.id, mes)
|
||||||
elif message.text.split(' ')[0] == '/ru' or message.text.split(' ')[0] == '/en':
|
elif message.text.split(' ')[0] == '/ru' or message.text.split(' ')[0] == '/en':
|
||||||
change_locale(message)
|
change_locale(message) # функция для изменения языка
|
||||||
elif message.text.split(' ')[0] == '/balance':
|
elif message.text.split(' ')[0] == '/balance':
|
||||||
user = User.get(username=message.chat.id)
|
user = User.get(username=message.chat.id)
|
||||||
bot.send_message(message.chat.id, to_fixed(user.balance, 2))
|
mes = ''
|
||||||
|
if locales.LOCALE == 'ru':
|
||||||
|
mes = 'Баланс: '
|
||||||
|
elif locales.LOCALE == 'en':
|
||||||
|
mes = 'Balance: '
|
||||||
|
mes += to_fixed(user.balance, 2)
|
||||||
|
bot.send_message(message.chat.id, mes)
|
||||||
elif message.text.split(' ')[0] == '/add' or message.text.split(' ')[0] == '+':
|
elif message.text.split(' ')[0] == '/add' or message.text.split(' ')[0] == '+':
|
||||||
if len(message.text.split(' ')) < 2:
|
if len(message.text.split(' ')) < 2:
|
||||||
mes = None
|
mes = None
|
||||||
if locale.LOCALE == 'ru':
|
if locales.LOCALE == 'ru':
|
||||||
mes = locale.ru['erradd']
|
mes = locales.ru['erradd']
|
||||||
elif locale.LOCALE == 'en':
|
elif locales.LOCALE == 'en':
|
||||||
mes = locale.en['erradd']
|
mes = locales.en['erradd']
|
||||||
bot.send_message(message.chat.id, mes)
|
bot.send_message(message.chat.id, mes)
|
||||||
else:
|
else:
|
||||||
user = User.get(username=message.chat.id)
|
user = User.get(username=message.chat.id)
|
||||||
user.balance += float(message.text.split(' ')[1])
|
user.balance += float(message.text.split(' ')[1])
|
||||||
user.save()
|
user.save()
|
||||||
Transaction.create(
|
if len(message.text.split(' ')) == 3:
|
||||||
sum=int(message.text.split(' ')[1]),
|
Transaction.create(
|
||||||
type='incom',
|
sum=int(message.text.split(' ')[1]),
|
||||||
user=User.get(username=message.chat.id)
|
type='incom',
|
||||||
)
|
user=User.get(username=message.chat.id),
|
||||||
|
category=message.text.split(' ')[2]
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
Transaction.create(
|
||||||
|
sum=int(message.text.split(' ')[1]),
|
||||||
|
type='incom',
|
||||||
|
user=User.get(username=message.chat.id)
|
||||||
|
)
|
||||||
bot.send_message(message.chat.id, to_fixed(user.balance, 2))
|
bot.send_message(message.chat.id, to_fixed(user.balance, 2))
|
||||||
elif message.text.split(' ')[0] == '/rm' or message.text.split(' ')[0] == '-':
|
elif message.text.split(' ')[0] == '/rm' or message.text.split(' ')[0] == '-':
|
||||||
if len(message.text.split(' ')) < 2:
|
if len(message.text.split(' ')) < 2:
|
||||||
mes = None
|
mes = None
|
||||||
if locale.LOCALE == 'ru':
|
if locales.LOCALE == 'ru':
|
||||||
mes = locale.ru['errrm']
|
mes = locales.ru['errrm']
|
||||||
elif locale.LOCALE == 'en':
|
elif locales.LOCALE == 'en':
|
||||||
mes = locale.en['errrm']
|
mes = locales.en['errrm']
|
||||||
bot.send_message(message.chat.id, mes)
|
bot.send_message(message.chat.id, mes)
|
||||||
else:
|
else:
|
||||||
user = User.get(username=message.chat.id)
|
user = User.get(username=message.chat.id)
|
||||||
user.balance -= float(message.text.split(' ')[1])
|
user.balance -= float(message.text.split(' ')[1])
|
||||||
user.save()
|
user.save()
|
||||||
Transaction.create(
|
if len(message.text.split(' ')) == 3:
|
||||||
sum=int(message.text.split(' ')[1]),
|
Transaction.create(
|
||||||
type='consuption',
|
sum=int(message.text.split(' ')[1]),
|
||||||
user=User.get(username=message.chat.id)
|
type='consuption',
|
||||||
)
|
user=User.get(username=message.chat.id),
|
||||||
|
category=message.text.split(' ')[2]
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
Transaction.create(
|
||||||
|
sum=int(message.text.split(' ')[1]),
|
||||||
|
type='consuption',
|
||||||
|
user=User.get(username=message.chat.id)
|
||||||
|
)
|
||||||
bot.send_message(message.chat.id, to_fixed(user.balance, 2))
|
bot.send_message(message.chat.id, to_fixed(user.balance, 2))
|
||||||
|
elif message.text.split(' ')[0] == '/addtoday':
|
||||||
|
transactions = Transaction.select().where(
|
||||||
|
Transaction.type == 'incom',
|
||||||
|
Transaction.date == datetime.datetime.today(),
|
||||||
|
Transaction.user == User.get(username=message.chat.id).id
|
||||||
|
)
|
||||||
|
mes = ''
|
||||||
|
if locales.LOCALE == 'ru':
|
||||||
|
mes = 'Ваши доходы за сегодня:\n\n'
|
||||||
|
elif locales.LOCALE == 'en':
|
||||||
|
mes = 'Your incomes today:\n\n'
|
||||||
|
iteration = 1
|
||||||
|
for i in transactions:
|
||||||
|
mes += str(iteration) + '. ' + str(i.sum) + ' ' + i.category + '\n\n'
|
||||||
|
iteration += 1
|
||||||
|
|
||||||
|
bot.send_message(message.chat.id, mes)
|
||||||
|
elif message.text.split(' ')[0] == '/rmtoday':
|
||||||
|
transactions = Transaction.select().where(
|
||||||
|
Transaction.type == 'consuption',
|
||||||
|
Transaction.date == datetime.datetime.today(),
|
||||||
|
Transaction.user == User.get(username=message.chat.id).id
|
||||||
|
)
|
||||||
|
mes = ''
|
||||||
|
if locales.LOCALE == 'ru':
|
||||||
|
mes = 'Ваши расходы за сегодня:\n\n'
|
||||||
|
elif locales.LOCALE == 'en':
|
||||||
|
mes = 'Your consuptions today:\n\n'
|
||||||
|
iteration = 1
|
||||||
|
for i in transactions:
|
||||||
|
mes += str(iteration) + '. ' + str(i.sum) + ' ' + i.category + '\n\n'
|
||||||
|
iteration += 1
|
||||||
|
|
||||||
|
bot.send_message(message.chat.id, mes)
|
||||||
|
elif message.text.split(' ')[0] == '/rmall':
|
||||||
|
transactions = Transaction.select().where(
|
||||||
|
Transaction.type == 'consuption',
|
||||||
|
Transaction.user == User.get(username=message.chat.id).id
|
||||||
|
)
|
||||||
|
mes = ''
|
||||||
|
if locales.LOCALE == 'ru':
|
||||||
|
mes = 'Ваши расходы за все время:\n\n'
|
||||||
|
elif locales.LOCALE == 'en':
|
||||||
|
mes = 'Your all consuptions:\n\n'
|
||||||
|
iteration = 1
|
||||||
|
for i in transactions:
|
||||||
|
mes += str(iteration) + '. ' + str(i.sum) + ' ' + i.category + '\n\n'
|
||||||
|
iteration += 1
|
||||||
|
|
||||||
|
bot.send_message(message.chat.id, mes)
|
||||||
|
elif message.text.split(' ')[0] == '/addall':
|
||||||
|
transactions = Transaction.select().where(
|
||||||
|
Transaction.type == 'incom',
|
||||||
|
Transaction.user == User.get(username=message.chat.id).id
|
||||||
|
)
|
||||||
|
mes = ''
|
||||||
|
if locales.LOCALE == 'ru':
|
||||||
|
mes = 'Ваши доходы за все время:\n\n'
|
||||||
|
elif locales.LOCALE == 'en':
|
||||||
|
mes = 'Your all incomes:\n\n'
|
||||||
|
iteration = 1
|
||||||
|
for i in transactions:
|
||||||
|
mes += str(iteration) + '. ' + str(i.sum) + ' ' + i.category + '\n\n'
|
||||||
|
iteration += 1
|
||||||
|
|
||||||
|
bot.send_message(message.chat.id, mes)
|
||||||
else:
|
else:
|
||||||
mes = None
|
mes = None
|
||||||
if locale.LOCALE == 'ru':
|
if locales.LOCALE == 'ru':
|
||||||
mes = locale.ru['error404_message']
|
mes = locales.ru['error404_message']
|
||||||
elif locale.LOCALE == 'en':
|
elif locales.LOCALE == 'en':
|
||||||
mes = locale.en['error404_message']
|
mes = locales.en['error404_message']
|
||||||
bot.send_message(message.chat.id, mes)
|
bot.send_message(message.chat.id, mes)
|
||||||
|
|
||||||
|
|
||||||
@@ -75,11 +165,11 @@ bot.set_update_listener(main_bot)
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
bot.polling(none_stop=True)
|
bot.polling(none_stop=True)
|
||||||
|
while True:
|
||||||
|
pass
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
exit('byby\n')
|
cprint('\ngoodbye', 'green')
|
||||||
|
exit()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
cprint(str(e), 'red')
|
cprint(str(e), 'red')
|
||||||
bot.polling(none_stop=True)
|
bot.polling(none_stop=True)
|
||||||
|
|
||||||
while True:
|
|
||||||
pass
|
|
||||||
Reference in new issue
Block a user