From 18b1a1d7f81cc76c95c3596d13ec257d64bd6849 Mon Sep 17 00:00:00 2001 From: Pavel_Duron Date: Wed, 7 Dec 2022 21:12:21 +1000 Subject: [PATCH] rewrite code with try exc finaly --- handlers/pipisa.py | 216 ++++++++++++++++++++++++++------------------- 1 file changed, 127 insertions(+), 89 deletions(-) diff --git a/handlers/pipisa.py b/handlers/pipisa.py index 2148327..9c2c7e1 100644 --- a/handlers/pipisa.py +++ b/handlers/pipisa.py @@ -10,7 +10,7 @@ import datetime @dp.message_handler(commands=["dick"]) async def up_dick(message: types.Message): # рандомайзер - numb = randint(-7,10) + numb = randint(-6,10) global size_change, dick_plus, dick_minus dick_plus = f'вырос 🚀 на {numb} см!' dick_minus = f'уменьшился ✂ на {abs(numb)} см!' @@ -20,112 +20,150 @@ async def up_dick(message: types.Message): # работа с таблицей - b = session.query(user).filter(user.user_id == message.from_user.id).first() - if b: - last_time = b.datetimes - now_time = datetime.datetime.now() - diff = now_time.day - last_time.day - - - - if abs(diff) <= 0: - await bot.send_message(message.chat.id, f'@{message.from_user.username},🚫 вы уже крутили пипису, ее размер {b.dick_size} см! ') - session.close() - print(diff) - print(type(diff)) - else: - a = session.query(user).filter(user.user_id == message.from_user.id).first() # запрос на поиск в таблице - a.dick_size = (a.dick_size + numb) - a.datetimes = datetime.datetime.now() - session.commit() #обновляет запись - - await bot.send_message(message.chat.id, f'@{message.from_user.username}, ваш писюн {size_change}\n\ -Теперь он равен {a.dick_size} см! ') - session.close() + try: + b = session.query(user).filter(user.user_id == message.from_user.id).first() + if b: + last_time = b.datetimes + now_time = datetime.datetime.now() + diff = now_time.day - last_time.day + if abs(diff) <= 0: + try: + current_dick = b.dick_size + await bot.send_message(message.chat.id, f'@{message.from_user.username},🚫 вы уже крутили пипису, ее размер {current_dick} см! ') + except: + print('ошибка в if diff <=0') + session.rollback() + finally: + session.close_all() + print('пользвоатель уже крутил') + + else: + try: + a = session.query(user).filter(user.user_id == message.from_user.id).first() # запрос на поиск в таблице + updetedDick = a.dick_size = (a.dick_size + numb) + a.datetimes = datetime.datetime.now() + session.flush() + session.commit() #обновляет запись + + await bot.send_message(message.chat.id, f'@{message.from_user.username}, ваш писюн {size_change}\n\ + Теперь он равен {updetedDick} см! ') + except: + session.rollback() + print('ошибка в обновлении пиписы') + finally: + session.close_all() + print('пиписа обновлена') + + - else: - session.close() - int_table = user(user_id = message.from_user.id, user_fullname = message.from_user.full_name, dick_size = numb, datetimes = datetime.datetime.now(),\ - chat_id = message.chat.id) - session.add(int_table) - session.commit() + else: + session.close() + try: + int_table = user(user_id = message.from_user.id, user_fullname = message.from_user.full_name, dick_size = numb, datetimes = datetime.datetime.now(),\ + chat_id = message.chat.id) + + session.add(int_table) + session.flush() + session.commit() + session.close() + + await bot.send_message(message.chat.id, f'@{message.from_user.username}, ваш писюн {size_change}\n\ + Теперь он равен {numb} см!') + except: + print('ошибка в добавлении нового пользователя') + session.rollback() + finally: + session.close_all() + print('Успешно добавлен пользователь') - await bot.send_message(message.chat.id, f'@{message.from_user.username}, ваш писюн {size_change}\n\ -Теперь он равен {int_table.dick_size} см!') - session.close() - + except: + session.rollback() + print('ошибка в основном коде') + finally: + session.close_all() @dp.message_handler(commands=["topdick"]) async def send_topchat(message: types.Message): - changechat_id = session.query(user).filter(user.user_id == message.from_user.id).first() - chats = message.chat.id - if changechat_id.chat_id != chats: - changechat_id.chat_id = chats - session.commit() - session.close() - session.close() - top = session.query(user.user_fullname, user.dick_size).order_by(user.dick_size.desc()).filter(user.chat_id == chats).limit(10).all() - delimiter = ': ' + try: + changechat_id = session.query(user).filter(user.user_id == message.from_user.id).first() + chats = message.chat.id + if changechat_id.chat_id != chats: + changechat_id.chat_id = chats + session.commit() + session.close() + else: + session.close() + top = session.query(user.user_fullname, user.dick_size).order_by(user.dick_size.desc()).filter(user.chat_id == chats).limit(10).all() + delimiter = ': ' # проверка на длину списка, если меньше limit, то: - sizelen = len(top) - if sizelen < 10: - lenminus = 10 - sizelen - top.extend(('-'*lenminus)) - await bot.send_message(message.chat.id, f'🏆Топ 10 бубылд чата🏆\n\n\ -🚀 {delimiter.join(map(str, top[0]))}\n\ -💫 {delimiter.join(map(str, top[1]))}\n\ -🍆 {delimiter.join(map(str, top[2]))}\n\ -🍌 {delimiter.join(map(str, top[3]))}\n\ -🐍 {delimiter.join(map(str, top[4]))}\n\ -🐎 {delimiter.join(map(str, top[5]))}\n\ -🌭 {delimiter.join(map(str, top[6]))}\n\ -🌶 {delimiter.join(map(str, top[7]))}\n\ -👌 {delimiter.join(map(str, top[8]))}\n\ -💩 {delimiter.join(map(str, top[9]))}\n') - session.close() - # если все нормально и участников минимум 10 + sizelen = len(top) + if sizelen < 10: + lenminus = 10 - sizelen + top.extend(('-'*lenminus)) + await bot.send_message(message.chat.id, f'🏆Топ 10 бубылд чата🏆\n\n\ + 🚀 {delimiter.join(map(str, top[0]))}\n\ + 💫 {delimiter.join(map(str, top[1]))}\n\ + 🍆 {delimiter.join(map(str, top[2]))}\n\ + 🍌 {delimiter.join(map(str, top[3]))}\n\ + 🐍 {delimiter.join(map(str, top[4]))}\n\ + 🐎 {delimiter.join(map(str, top[5]))}\n\ + 🌭 {delimiter.join(map(str, top[6]))}\n\ + 🌶 {delimiter.join(map(str, top[7]))}\n\ + 👌 {delimiter.join(map(str, top[8]))}\n\ + 💩 {delimiter.join(map(str, top[9]))}\n') + session.close() + # если все нормально и участников минимум 10 - else: - - await bot.send_message(message.chat.id, f'🏆Топ 10 бубылд чата🏆\n\n\ -🚀 {delimiter.join(map(str, top[0]))}\n\ -💫 {delimiter.join(map(str, top[1]))}\n\ -🍆 {delimiter.join(map(str, top[2]))}\n\ -🍌 {delimiter.join(map(str, top[3]))}\n\ -🐍 {delimiter.join(map(str, top[4]))}\n\ -🐎 {delimiter.join(map(str, top[5]))}\n\ -🌭 {delimiter.join(map(str, top[6]))}\n\ -🌶 {delimiter.join(map(str, top[7]))}\n\ -👌 {delimiter.join(map(str, top[8]))}\n\ -💩 {delimiter.join(map(str, top[9]))}\n') - session.close() + else: + + await bot.send_message(message.chat.id, f'🏆Топ 10 бубылд чата🏆\n\n\ + 🚀 {delimiter.join(map(str, top[0]))}\n\ + 💫 {delimiter.join(map(str, top[1]))}\n\ + 🍆 {delimiter.join(map(str, top[2]))}\n\ + 🍌 {delimiter.join(map(str, top[3]))}\n\ + 🐍 {delimiter.join(map(str, top[4]))}\n\ + 🐎 {delimiter.join(map(str, top[5]))}\n\ + 🌭 {delimiter.join(map(str, top[6]))}\n\ + 🌶 {delimiter.join(map(str, top[7]))}\n\ + 👌 {delimiter.join(map(str, top[8]))}\n\ + 💩 {delimiter.join(map(str, top[9]))}\n') + except: + session.rollback() + print('ошибка в /topdick') + finally: + session.close_all() @dp.message_handler(commands=["globaldick"]) async def send_global_top(message: types.Message): - top_chat = session.query(user.user_fullname, user.dick_size).order_by(user.dick_size.desc()).limit(10).all() - session.close() - delimiter = ': ' + try: + top_chat = session.query(user.user_fullname, user.dick_size).order_by(user.dick_size.desc()).limit(10).all() - - await bot.send_message(message.chat.id, f'🏆Топ 10 пипис в мире🏆\n\n\ -1. {delimiter.join(map(str, top_chat[0]))}\n\ -2. {delimiter.join(map(str, top_chat[1]))}\n\ -3. {delimiter.join(map(str, top_chat[2]))}\n\ -4. {delimiter.join(map(str, top_chat[3]))}\n\ -5. {delimiter.join(map(str, top_chat[4]))}\n\ -6. {delimiter.join(map(str, top_chat[5]))}\n\ -7. {delimiter.join(map(str, top_chat[6]))}\n\ -8. {delimiter.join(map(str, top_chat[7]))}\n\ -9. {delimiter.join(map(str, top_chat[8]))}\n\ -10. {delimiter.join(map(str, top_chat[9]))}\n') - + delimiter = ': ' + + + await bot.send_message(message.chat.id, f'🏆Топ 10 пипис в мире🏆\n\n\ + 1. {delimiter.join(map(str, top_chat[0]))}\n\ + 2. {delimiter.join(map(str, top_chat[1]))}\n\ + 3. {delimiter.join(map(str, top_chat[2]))}\n\ + 4. {delimiter.join(map(str, top_chat[3]))}\n\ + 5. {delimiter.join(map(str, top_chat[4]))}\n\ + 6. {delimiter.join(map(str, top_chat[5]))}\n\ + 7. {delimiter.join(map(str, top_chat[6]))}\n\ + 8. {delimiter.join(map(str, top_chat[7]))}\n\ + 9. {delimiter.join(map(str, top_chat[8]))}\n\ + 10. {delimiter.join(map(str, top_chat[9]))}\n') + except: + session.rollback() + print('ошибка в /glovaldick') + finally: + session.close_all() def register_handlers_pipisa(dp: Dispatcher):