From e55b1c54d86dd7af8000ce27454117d92771a39a Mon Sep 17 00:00:00 2001 From: Simple_Not <44047940+moonbaseDelta@users.noreply.github.com> Date: Mon, 22 Jan 2024 02:59:25 +1000 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=B5=D0=BB=D0=B0=D0=B5=D0=BC=20=D0=B8?= =?UTF-8?q?=D0=BD=D1=82=D0=B5=D1=80=D0=B5=D1=81=D0=BD=D0=B5=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.yaml | 2 +- dicktxt/ForReadDict.py | 8 +-- dicktxt/WordsChange.py | 21 ++++++++ dicktxt/dick_changes.yaml | 30 +++++++++++ handlers/pipisa.py | 103 +++++++++++++------------------------- 5 files changed, 89 insertions(+), 75 deletions(-) create mode 100644 dicktxt/WordsChange.py create mode 100644 dicktxt/dick_changes.yaml diff --git a/config.yaml b/config.yaml index d3c0ac4..f79fa1e 100644 --- a/config.yaml +++ b/config.yaml @@ -6,7 +6,7 @@ databaso: base: pipisa collection: dicks -telegram_token: 5724991559:AAEuLvpLsgP6LHRGMSyFtQLlR5qPQUO4b_w +telegram_token: 6472915685:AAHPvgrQoqG7DxtfbnHWPe3Lfild-CGJ1j8 # 5724991559:AAEuLvpLsgP6LHRGMSyFtQLlR5qPQUO4b_w telegram_admins_ids: - 317051301 # hogweed1 - 226765676 # blackjack diff --git a/dicktxt/ForReadDict.py b/dicktxt/ForReadDict.py index 75afba0..752a890 100644 --- a/dicktxt/ForReadDict.py +++ b/dicktxt/ForReadDict.py @@ -7,10 +7,6 @@ def RandomDick(): # когда указываешь путь with open('dicktxt/dick_sinonims.txt', 'r', encoding='utf-8') as file: words = file.readlines() + + return random.choice(words).strip() - random_line = random.choice(words).strip() - return random_line - - - - \ No newline at end of file diff --git a/dicktxt/WordsChange.py b/dicktxt/WordsChange.py new file mode 100644 index 0000000..5b8f84d --- /dev/null +++ b/dicktxt/WordsChange.py @@ -0,0 +1,21 @@ +import yaml +import random + + +def ChangeWord(result): #выбирает рандомное слово для изменения размера пиписы + + with open("dicktxt/dick_changes.yaml", 'r') as f: + words = yaml.load(f, Loader=yaml.Loader) + + dick_inc = ( f'{w}' for w in words['increment'] ) + dick_static = ( f'{w}' for w in words['nothing'] ) + dick_decr = ( f'{w}' for w in words['decrement'] ) + + if result > 0: + size_change = random.choice(dick_inc) + '🚀' + elif result == 0: + size_change = random.choice(dick_static) + '🤨' + else: + size_change = random.choice(dick_decr) + '✂' + + return size_change \ No newline at end of file diff --git a/dicktxt/dick_changes.yaml b/dicktxt/dick_changes.yaml new file mode 100644 index 0000000..d38c0c3 --- /dev/null +++ b/dicktxt/dick_changes.yaml @@ -0,0 +1,30 @@ +--- +increment: +- вырос +- подрос +- привстал +- увеличился +- преисполнился +- приподнялся +- изменил размер +- облагородился +- чрезвычайно преуспел +decrement: +- неудачно потусил на сходке +- уменьшился +- откусила злая гадюка +- продали евреи, он стал дешевле +- схуднул +- отрицательно вырос +- словил низкие вибрации +- повредился после простуды +- стал жертвой репрессий +- был подло использован +nothing: +- продвинулся +- наноуменьшился +- познал стабильность +- зафиксировал прибыль +- подумал о судьбах Китая +- прогулялся по лесу +- самоутвердился \ No newline at end of file diff --git a/handlers/pipisa.py b/handlers/pipisa.py index 0347ff4..09ac958 100644 --- a/handlers/pipisa.py +++ b/handlers/pipisa.py @@ -3,7 +3,7 @@ from create_bot import bot, dp import random from random import randint import datetime -from dicktxt import ForReadDict +from dicktxt import ForReadDict, WordsChange from pipisa_functions import pipisa_time from global_conf import CONFIG @@ -14,54 +14,30 @@ from arango import ArangoClient admins = CONFIG['telegram_admins_ids'] +def get_dicks_collection(): + arango_client = ArangoClient(hosts=CONFIG['databaso']['host'] ) + pipisa_db = arango_client.db( + CONFIG['databaso']['base'], + username=CONFIG['databaso']['user'], + password=CONFIG['databaso']['pass'] + ) + dicks_collection = pipisa_db.collection(CONFIG['databaso']['collection']) + + return dicks_collection + + @dp.message_handler(commands=["dick"]) async def up_dick(message: types.Message): - #global size_change, dick_plus, dick_minus if message.from_user.id in admins or message.chat.type != 'private': - - arango_client = ArangoClient(hosts=CONFIG['databaso']['host'] ) - pipisa_db = arango_client.db( - CONFIG['databaso']['base'], - username=CONFIG['databaso']['user'], - password=CONFIG['databaso']['pass'] - ) - dicks_collection = pipisa_db.collection(CONFIG['databaso']['collection']) - + dicks_collection = get_dicks_collection() #### TODO уплатить нолог с 100 см для самого нищего # рандомайзер - numb = randint(-9,10) - dick_plus = ( - 'вырос', - 'подрос', - 'привстал', - 'увеличился', - 'преисполнился' - ) - dick_minus = ( - 'неудачно потусил на сходке', - 'уменьшился', - 'откусила злая гадюка', - 'продали евреи, он стал дешевле', - 'схуднул' - ) - dick_stayed = ( - 'продвинулся', - 'наноуменьшился', - 'зафиксировал прибыль' - ) - - if numb > 0: - size_change = random.choice(dick_plus) + '🚀' - elif numb == 0: - size_change = random.choice(dick_stayed) + '🤨' - else: - size_change = random.choice(dick_minus) + '✂' - + result = randint(-9,10) try: #### Чекнуть есть ли юзер в базе @@ -81,7 +57,7 @@ async def up_dick(message: types.Message): if pipisa_time.rolltime(check_datetime=user['datetimes'], curr_time=datetime.datetime.now()): # пришло время крутить!! - updetedDick = user["dick_size"] + numb + updetedDick = user["dick_size"] + result try: dt = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") metadata = dicks_collection.insert( @@ -101,11 +77,11 @@ async def up_dick(message: types.Message): print(f'ошибка в обновлении пиписы @{message.from_user.username}') print(e2) - randomword = ForReadDict.RandomDick() + randomword = ForReadDict.RandomDick() + change_phrase = WordsChange.ChangeWord(result) - - await bot.send_message(message.chat.id, f'@{message.from_user.username}, ваш {randomword} {size_change}\ -на {abs(numb)} см!\n\ + await bot.send_message(message.chat.id, f'@{message.from_user.username}, ваш {randomword} {change_phrase}\ +на {abs(result)} см!\n\ Теперь он равен {updetedDick} см! ') else: await bot.send_message(message.chat.id, f'@{message.from_user.username},🚫 вы уже крутили пипису, ее размер {user["dick_size"]} см! ') @@ -137,7 +113,7 @@ async def up_dick(message: types.Message): novenkiy = { 'user_id': message.from_user.id, 'user_fullname': message.from_user.full_name, - 'dick_size': numb, + 'dick_size': result, 'datetimes': datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), 'attempts': 1, 'chat_id': message.chat.id @@ -146,13 +122,13 @@ async def up_dick(message: types.Message): metadata = dicks_collection.insert(novenkiy, overwrite_mode='update') - if numb > 0: + if result > 0: await bot.send_message(message.chat.id, f'@{message.from_user.username}, ваш писюн показал головку 🚀\n\ -на {abs(numb)} см!\n\ -Теперь он равен {numb} см!') +на {abs(result)} см!\n\ +Теперь он равен {result} см!') else: await bot.send_message(message.chat.id, f'@{message.from_user.username}, добро пожаловать в игру!🚀\n\ -Ты стартуешь не с лучшей позиции, природа наградила тебя всего {numb} см 😬') +Ты стартуешь не с лучшей позиции, природа наградила тебя всего {result} см 😬') print(f'Успешно добавлен пользователь @{message.from_user.username}') @@ -164,6 +140,12 @@ async def up_dick(message: types.Message): except Exception as e: print('ошибка DB в /dick') print(e) + + + #### для всех отложенных сообщений + ## проверить если прошло ?пять минут? с публикации + ## попробовать удалить такой пост и затереть его с коллекции + ## оставлять последние в чате топ- и глобал-дик, сохранять последние сообщения о приросте, сохранять последний вызов /dick и иной команды else: await message.reply('Растить елду можно только в общих чатах!') @@ -174,15 +156,8 @@ async def up_dick(message: types.Message): @dp.message_handler(commands=["topdick"]) async def send_topchat(message: types.Message): if message.from_user.id in admins or message.chat.type != 'private': - - arango_client = ArangoClient(hosts=CONFIG['databaso']['host'] ) - pipisa_db = arango_client.db( - CONFIG['databaso']['base'], - username=CONFIG['databaso']['user'], - password=CONFIG['databaso']['pass'] - ) - dicks_collection = pipisa_db.collection(CONFIG['databaso']['collection']) - + + dicks_collection = get_dicks_collection() try: dicks = dicks_collection.find({'chat_id': message.chat.id}, skip=0, limit=1100) dicks = [d for d in dicks] @@ -214,16 +189,8 @@ async def send_topchat(message: types.Message): @dp.message_handler(commands=["globaldick"]) -async def send_global_top(message: types.Message): - - - arango_client = ArangoClient(hosts=CONFIG['databaso']['host'] ) - pipisa_db = arango_client.db( - CONFIG['databaso']['base'], - username=CONFIG['databaso']['user'], - password=CONFIG['databaso']['pass'] - ) - dicks_collection = pipisa_db.collection(CONFIG['databaso']['collection']) +async def send_global_top(message: types.Message): + dicks_collection = get_dicks_collection() try: dicks = dicks_collection.all( )