from aiogram import types from create_bot import bot, dp import random from random import randint import datetime, logging from dicktxt import ForReadDict, WordsChange from pipisa_functions import pipisa_time from global_conf import CONFIG from db_logic import tops, user_stuff, postcleaner admins = CONFIG['telegram_admins_ids'] @dp.message_handler(commands=["dick"]) async def up_dick(message: types.Message): if message.from_user.id in admins or message.chat.type != 'private': postcleaner.append_post_to_cleaning_sequence(message=message, type=f'COMMAND_CALL__DICK') await clean_posts(chat_id=message.chat.id, type='COMMAND_CALL__DICK', max_id=message.message_id) #### TODO уплатить нолог с 100 см для самого нищего # рандомайзер result = randint(-9,10) #### Чекнуть есть ли юзер в базе user = user_stuff.get_user(message) if user: ## Если есть то нарастить и отправить сообщение if pipisa_time.rolltime(check_datetime=user['datetimes'], curr_time=datetime.datetime.now()): # пришло время крутить!! updatedDick = user["dick_size"] + result user_stuff.update_dick_size(message, user, updatedDick) randomdickword = ForReadDict.RandomDick() change_phrase = WordsChange.ChangeWord(result) await bot.send_message( message.chat.id, f'@{message.from_user.username}, ваш {randomdickword} {change_phrase} на {abs(result)} см!\nТеперь он равен {updatedDick} см! ' ) else: mmm = await bot.send_message( message.chat.id, f'@{message.from_user.username}, 🚫 вы уже крутили пипису, её размер {user["dick_size"]} см! ' ) user_stuff.update_attempts( message, user) postcleaner.append_post_to_cleaning_sequence(message=mmm, type='ALREADY_ROLLED') await clean_posts(chat_id=mmm.chat.id, type='ALREADY_ROLLED', max_id=mmm.message_id) else: ## если нету, то создать user_stuff.store_new_user(message, result) await bot.send_message( message.chat.id, f'@{message.from_user.username}, Добро пожаловать в игру! Ваш писюн показал головку 🚀\nна {abs(result)} см!\nТеперь он равен {abs(result)} см!' ) else: await message.reply('Растить елду можно только в общих чатах!') @dp.message_handler(commands = ['topdick', 'globaldick']) async def send_topchat(message: types.Message): if message.from_user.id in admins or message.chat.type != 'private': top_ = message['text'].startswith('/topdick') glob_ = message['text'].startswith('/globaldick') if top_: dickos = tops.get_tops( top_ = True, chat_id=message.chat.id ) postcleaner.append_post_to_cleaning_sequence(message=message, type=f'COMMAND_CALL__TOPDICK') await clean_posts(chat_id=message.chat.id, type='COMMAND_CALL__TOPDICK', max_id=message.message_id) elif glob_: dickos = tops.get_tops( glob_ = True ) postcleaner.append_post_to_cleaning_sequence(message=message, type=f'COMMAND_CALL__GLOBALDICK') await clean_posts(chat_id=message.chat.id, type='COMMAND_CALL__GLOBALDICK', max_id=message.message_id) else: logging.error('вызывают хз что!') if not dickos: await bot.send_message(message.chat.id, '🍆 Никто ничего не нарастил! 🍌') else: if top_: await bot.send_message(message.chat.id, '🏆Топ 10 бубылд чата🏆\n\n' + dickos) elif glob_: await bot.send_message(message.chat.id, '🏆Топ 10 пипис в мире🏆\n\n' + dickos) else: await message.reply('Работает только в общих чатах!\n'\ 'Вы можете посмотреть топ по миру /globaldick') async def clean_posts(chat_id, type=None, max_id=None): psts = postcleaner.get_posts_to_be_removed(chat_id, type, max_id) for p in psts: postcleaner.del_post(chat_id=p['chat_id'], msg_id=p['msg_id']) #### TODO проверить админит ли бот try: await bot.delete_message( chat_id=p['chat_id'], message_id=p['msg_id'], ) except Exception as e: logging.error('ошибка удаления поста-на-удаление') logging.error(e)