async def on_message(message, attachments, env): idl = await get_or_none(Relations, user1=int(message.from_id)) if not idl: return await env.reply("Отношения: У тебя парня/девушки нет.") kb = VKKeyboard() kb.lazy_buttons({ 'inline': True, 'buttons': [{ 'text': '💑 обнять ещё раз', 'payload': { 'command': f'{env.eenv.prefix}отношения обнять' }, 'color': 'positive' }] }) userinfo = await env.request('users.get', user_ids=f'{idl.user1}, {idl.user2}', fields="sex") userinfo = userinfo.response suptext = 'обнял свою тян' if userinfo[0][ 'sex'] == 2 else 'обняла своего куна' await env.reply( f"[id{userinfo[0]['id']}|{userinfo[0]['first_name']} {userinfo[0]['last_name']}] { suptext } [id{userinfo[1]['id']}|{userinfo[1]['first_name']} {userinfo[1]['last_name']}]", keyboard=kb.dump_keyboard(), attachment=await get_nekos_attach(env, random.choice(['hug', 'cuddle'])))
async def nekos(msg, attach, env): if not await priviligeshelper.getUserPriviliges( env, msg.from_id) & priviligeshelper.USER_VIP > 0: return await env.reply( "стоять! Вам нужен вип-статус, чтобы выполнять эту команду!") if not env.args or env.args[0] not in types: formatted = ', '.join(types) return await env.reply(f'Доступные аругменты:\n\n{formatted}') attach = await get_nekos_attach(env, env.args[0]) if not attach: return await env.reply("Пикча потерялась не сервере, попробуй позже!") kb = VKKeyboard() kb.lazy_buttons({ 'inline': True, 'buttons': [{ 'text': 'Ещё такую пикчу', 'payload': { 'command': f'{env.eenv.prefix}nekos {env.args[0]}' }, 'color': 'primary' }] }) return await env.reply("Держи", attachment=attach, keyboard=kb.dump_keyboard())
async def slap(msg, att, env): idl = await get_or_none(Relations, user1=int(msg.from_id)) if not idl: return await env.reply("Отношения: У тебя парня/девушки нет.") kb = VKKeyboard() kb.lazy_buttons({ 'inline': True, 'buttons': [{ 'text': '💟 шлёпнуть ещё раз', 'payload': { 'command': f'{env.eenv.prefix}отношения шлёпнуть' }, 'color': 'positive' }] }) userinfo = await env.request('users.get', user_ids=f'{idl.user1}, {idl.user2}', fields="sex") userinfo = userinfo.response suptext = 'шлёпнул свою тян по попе' if userinfo[0][ 'sex'] == 2 else 'шлёпнула по попе своего куна' await env.reply( f"[id{userinfo[0]['id']}|{userinfo[0]['first_name']} {userinfo[0]['last_name']}] { suptext } [id{userinfo[1]['id']}|{userinfo[1]['first_name']} {userinfo[1]['last_name']}]\n😜😜😜👋👋 👋🍑", keyboard=kb.dump_keyboard(), attachment=await get_nekos_attach(env, 'slap'))
async def get_keyboard(type, eenv): kb = VKKeyboard() kb.lazy_buttons({ 'inline': True, 'buttons': [{ 'text': f'Ещё {type}', 'payload': { 'command': f'{eenv.prefix}{type}' }, 'color': 'primary' }] }) return kb.dump_keyboard()
async def on_message(message, attachments, env): kb = VKKeyboard() kb.lazy_buttons({ 'inline': True, 'buttons': [{ 'text': '💡 ещё совет', 'payload': { 'command': f'{env.eenv.prefix}совет' }, 'color': 'primary' }] }) await env.reply(random.choice(advices), keyboard=kb.dump_keyboard()) return "DONE"
async def on_message(message, attachments, env): usages = ["🔘Доступные команды:🔘\n", ">> Вип команды - !дкоманды <<\n"] page = 0 if env['args'] and env['args'][0].isdigit(): page = int(env['args'][0]) - 1 for x in plugin.plugins: for x1 in x.commands: if 'cheat' in x1: continue usages.append( random.choice(emojis) + (" 🎫VIP🎫 " if 'vip' in x1 else " ") + env.eenv.prefix + x1['command'] + " - " + x1['desc'] + "\n") fusages = list(chunks(usages, 12)) if page + 1 > len(fusages): return await env.reply("Этой страницы нет") kb = VKKeyboard() if len(fusages) == page + 1: kb.lazy_buttons({ 'inline': True, 'buttons': [{ 'text': 'На первую страницу', 'payload': { 'command': f'{env.eenv.prefix}команды 1' }, 'color': 'primary' }] }) else: kb.lazy_buttons({ 'inline': True, 'buttons': [{ 'text': '<', 'payload': { 'command': f'{env.eenv.prefix}команды {page+1-1}' }, 'color': 'primary' }, { 'text': '>', 'payload': { 'command': f'{env.eenv.prefix}команды {page+1+1}' }, 'color': 'primary' }] }) message = f"> Доступно {len(usages)} команд\n" \ f"> Вкладка {page+1}/{len(fusages)}\n\n" message += ''.join(fusages[page]) message += f"\nЧто-бы просмотреть следующую страницу напишите !команды <номер страницы>" return await env.reply(message, keyboard=kb.dump_keyboard())
async def game(message, attachments, env): if not env['args'] or not env['args'][0].isdigit(): return await env.reply("На какую сумму хотите сыграть?") profile = await get_or_create_profile(message.from_id) rate = int(env['args'][0]) if rate > profile.money: return await env.reply("Ставка не может превышать ваш баланс!") if rate < 2000: return await env.reply("Ставка должна быть минимум 2000$") keyboard = VKKeyboard() keyboard.lazy_buttons({ 'inline': True, 'buttons': [{ 'text': '👉 Ещё раз 👈', 'payload': { 'command': f'{env.eenv.prefix}игра {rate}' }, 'color': 'positive' }] }) m = random.randint(1, 100) if m < 75: profile.money -= rate await manager.update(profile) return await env.reply(f"Выпало число {m}, ваша ставка сгорела!", keyboard=keyboard.dump_keyboard()) if m > 75 and m <= 89: profile.money += rate * 2 await manager.update(profile) return await env.reply(f"Выпло число {m}, ваша ставка удвоилась!", keyboard=keyboard.dump_keyboard()) if m >= 90 and m <= 99: profile.money += rate * 3 await manager.update(profile) return await env.reply(f"Выпло число {m}, ваша ставка утроилась!", keyboard=keyboard.dump_keyboard()) if m == 100: profile.money += rate * 5 await manager.update(profile) return await env.reply( "Выпало число 100, невероятно, но ваша ставка вырасла в 5 раз!", keyboard=keyboard.dump_keyboard())
async def on_message(message, attachments, env): if len(env['args']) < 1 or not env['args'][0].isdigit(): return await env.reply(f'😈 ➣ Укажите ставку') profile = await get_or_create_profile(message.from_id) text = int(env['args'][0]) if text > profile.money or text <= 0: return await env.reply( f'Ставка не может быть меньше 0 или равна 0' if text <= 0 else f'Ставка не может превышать баланс') keyboard = VKKeyboard() keyboard.lazy_buttons({ 'inline': True, 'buttons': [{ 'text': '👉 Ещё раз 👈', 'payload': { 'command': f'{env.eenv.prefix}ловушка {text}' }, 'color': 'positive' }] }) if random.randint(1, 100) > 80: win = text * 2 profile.money += win a_some_rare = random.choice(['💶', '💍', '💎', '💰', '🎁', '⚽']) await manager.update(profile) return await env.reply( f'😈 ➣ Вы засунули руку в коробку...\n▪ ➣ Из нее вы достали -> [{a_some_rare}] \n💴 ➣ Вы выиграли: {win}💰\n💰 ➣ Баланс: {profile.money}', keyboard=keyboard.dump_keyboard()) else: win = text profile.money -= win somebad = random.choice(['ловушкой', 'мышеловкой', 'капканом']) await manager.update(profile) return await env.reply( f'👉 ➣ Вы засунули руку в коробку...\n💀 ➣ Неудача... Вы повредили руку -> [{somebad}] \n💴 ➣ Вы проиграли: {win}💰\n💰 ➣ Баланс: {profile.money}', keyboard=keyboard.dump_keyboard())
async def on_message(message, attachments, env): usera = await get_or_none(PxUser, iduser=str(message.from_id)) if usera: users = await manager.execute(PxUser.select().order_by(PxUser.xpcount.desc()).limit(1000).dicts()) position = next((index for (index, d) in enumerate(users) if d["iduser"] == usera.iduser), None) if position == 0: position += 1 elif position: pass else: position = "1000+" # all_users = PxUser.select().order_by(PxUser.xpcount.desc()).dicts() # print(list(all_users.keys())) kb = VKKeyboard() kb.set_inline(True) kb.add_row() kb.edit_row(0).add_button("✨ Ваш профиль экономики", payload={'command': f'{env.eenv.prefix}профиль'}, color="primary") if env.eenv.is_multichat: kb.add_row() kb.edit_row(1).add_button("👥 Топ беседы", payload={'command': f'{env.eenv.prefix}rank беседы'}, color="primary") player_xp = usera.xpcount player_lvl = await xputils.getLevel(player_xp) next_lvl_reqs = int(await xputils.getRequiredScoreForLevel(player_lvl+1)) remaining_xp = int(next_lvl_reqs-player_xp) if usera.rank != player_lvl: usera.rank = player_lvl df = f'👨Статистика для [id{int(usera.iduser)}|чертя]:\n\n' user_privs = await priviligeshelper.getUserPriviliges(env, usera.iduser) if user_privs & priviligeshelper.USER_ADMIN > 0: df += "⭐| Администратор ✳\n" elif user_privs & priviligeshelper.USER_MODERATOR > 0: df += "⭐| Модератор 🅾\n" elif user_privs & priviligeshelper.USER_VIP > 0: df += "⭐| Вип Ⓜ\n" else: df += "⭐| Юзер 🆖\n" df += f'📢| Уровень: {player_lvl}\n' if usera.rank > len(levelarr) - 1: df += f"🔑| Префикс: {usera.personal if usera.personal != '' else 'Установите свой префикс!'}\n" else: df += f"🔑| Звание: {levelarr[player_lvl]}\n" df += f'✉| Количество сообщений: {humanize(usera.messcount)}\n' df += f'⛏| Количество опыта: {humanize(player_xp)}/{humanize(next_lvl_reqs)}xp (осталось {humanize(remaining_xp)}xp)\n' df += f'💻| Позиция в топе: #{position}\n' await env.reply(df, keyboard=kb.dump_keyboard()) await manager.update(usera) return "DONE" else: await manager.get_or_create(PxUser, iduser=str(message.from_id), xpcount=0, messcount=0, rank=0, personal="") return "DONE"
data = await create_model(env) if int(env['args'][1]) >= 10_000_000_000 or int(env['args'][0]) >= 2000: return await env.reply("Слишком большая сумма!") if int( env['args'][1]) >= 10_000_000_000 else await env.reply( "Слишком много активаций!") code_name = generate_random_name() code = generate_random_name(10) data['data'][code] = dict(name=code_name, summ=int(env['args'][1]), active_limit=int(env['args'][0]), creator=message.from_id, activated=[]) kb = VKKeyboard() kb.lazy_buttons({ 'inline': True, 'buttons': [{ 'text': 'Написать промокод', 'payload': { 'command': f'{env.eenv.prefix}промокод ласткопи' }, 'color': 'positive' }] }) await Logs.create_log( env, message.from_id, 0, 11, f"Создал чит-промокод на сумму {humanize(int(env['args'][1]))}$")
async def on_message(message, attachments, env): if not env['args']: return await env.reply(f'[Подсказка] !бин вверх/вниз ставка') if len(env['args']) < 2 or not env['args'][1].isdigit(): return await env.reply( f'🔥 ➣ Вы не указали ставку\n [Подсказка] ➣ бин вверх/вниз ставка') if len(env['args']) < 1: return await env.reply( f'🔥 ➣ Вы не указали вверх/вниз\n [Подсказка] ➣ бин вверх/вниз ставка' ) amount = int(env['args'][1]) keyboard = VKKeyboard() keyboard.set_inline(True) keyboard.add_row() keyboard.edit_row(0).add_button( '🔺 Ещё раз вверх', payload={'command': f'{env.eenv.prefix}бин вверх {amount}'}, color="positive") keyboard.add_row() keyboard.edit_row(1).add_button( '🔻 Ещё раз вниз', payload={'command': f'{env.eenv.prefix}бин вниз {amount}'}, color="negative") profile = await get_or_create_profile(message.from_id) if amount > profile.money or amount < 1000: return await env.reply(f'Ставка не может быть меньше 1000 💰' if amount < 1000 else f'Ставка не может превышать баланс') if amount > 10000000: return await env.reply("Ставка не может быть больше 10000000$") a = int(rd() * 10) if env['args'][0].lower() == 'вверх' and a < 3: bin = random.randint(15, 40) win = amount * 2 profile.money += win await manager.update(profile) return await env.reply(f''' 📊 ➣ Binary Option 📈 ➣ Курс акции вырос на — {bin} % 💳 ➣ Вы выиграли: {win}💰. 💰 ➣ Ваш баланс: {profile.money}💰''', keyboard=keyboard.dump_keyboard()) elif env['args'][0].lower() == 'вниз' and a < 3: bin = random.randint(15, 40) win = amount * 2 profile.money += win await manager.update(profile) return await env.reply(f''' 📊 ➣ Binary Option 📉 ➣ Курс акции упал на — {bin} % 💳 ➣ Вы выиграли: {win}💰. 💰 ➣ Ваш баланс: {profile.money}💰''', keyboard=keyboard.dump_keyboard()) else: bin = random.randint(15, 40) lose = int(amount) profile.money -= lose await manager.update(profile) return await env.reply(f''' 📊 ➣ Binary Option 📈 ➣ Курс акции { "упал" if env['args'][0].lower() == "вверх" else "вырос" } на — {bin} % 💳 ➣ Вы проиграли: {lose}💰. 💰 ➣ Ваш баланс: {profile.money}💰''', keyboard=keyboard.dump_keyboard())
async def on_message(message, attachments, env): if not env['args'] or not env['args'][0].isdigit(): return await env.reply("Что-то напутал") profile = await get_or_create_profile(message.from_id) amount = int(env['args'][0]) keyboard = VKKeyboard() keyboard.lazy_buttons({ 'inline': True, 'buttons': [{ 'text': 'Крутануть ещё раз', 'payload': { 'command': f'{env.eenv.prefix}казино {amount}' }, 'color': 'primary' }] }) if amount == 777: return await env.reply("Ты слил бабло, вухахахахахах.", attachment="video-99505016_456242816", keyboard=keyboard.dump_keyboard()) if amount < 100: return await env.reply("Сумма ставки должна быть равна хотябы 100$") if profile.money < int(amount): return await env.reply("Сумма превышает ваш баланс!") r1 = random.randint(0, 2) r2 = random.randint(0, 2) r3 = random.randint(0, 2) emodjis = ["🍌", "🍓", "🍒"] if not r1 == r2 == r3: profile.money -= int(amount) await manager.update(profile) await env.reply( f"🐉 Казино \"Анатолич, крути барабан\" 🐉\n" f"🎰 Вы потеряли: {int(amount)} руб.\n\n" f"🎲 Ваша комбинация: {emodjis[r1]} | {emodjis[r2]} | {emodjis[r3]}\n" f"💳 Ваш баланс: {profile.money} руб.", keyboard=keyboard.dump_keyboard()) else: koef = 0 if r1 == 0: profile.money += int(int(amount) * 1.5) koef = 1.5 elif r1 == 1: profile.money += int(int(amount) * 2) koef = 2 elif r1 == 2: profile.money += int(int(amount) * 2.5) koef = 2.5 await env.reply( f"🐉| Казино \"Анатолич, крути барабан\" 🐉\n" f"🎰| Вы получили: {int(amount)*koef} руб.\n\n" f"🎲| Ваша комбинация: {emodjis[r1]} | {emodjis[r2]} | {emodjis[r3]}\n" f"💳| Ваш баланс: {profile.money} руб.", keyboard=keyboard.dump_keyboard()) await manager.update(profile)
async def on_message(message, attachments, env): profile = await get_or_create_profile(message.from_id) if not env['args'] or len(env['args']) < 2: return await env.reply("Вы что-то напутали") if not env['args'][1].isdigit(): return await env.reply("Ставка должна быть числовой") color = env['args'][0] if not color.lower() in ("r", "g", "b"): return await env.reply("Аргументы: [r|g|b] [ставка]") balance = profile.money rate = int(env['args'][1]) color = color.lower() if rate < 1000: return await env.reply("Мин. ставка 1000$") if color == "r" and balance < rate * 2 or \ color == "b" and balance < rate * 2: return await env.reply( f"Подожди подожди полегче у тебя баланса меньше чем при умножении {rate} на 2 = {rate*2}$." ) if color == "g" and balance < rate * 4: return await env.reply( f"Подожди подожди полегче у тебя баланса меньше чем при умножении {rate} на 4 = {rate*4}$." ) if balance <= 0: return await env.reply("Не хватает денег!") keyboard = VKKeyboard() keyboard.set_inline(True) keyboard.add_row() keyboard.edit_row(0).add_button( 'Таже сумма на 🔴', payload={'command': f'{env.eenv.prefix}double r {rate}'}, color="negative") keyboard.add_row() keyboard.edit_row(1).add_button( 'Таже сумма на ⚫', payload={'command': f'{env.eenv.prefix}double b {rate}'}, color="primary") keyboard.add_row() keyboard.edit_row(2).add_button( 'Таже сумма на ✅', payload={'command': f'{env.eenv.prefix}double g {rate}'}, color="positive") rInt = random.randint(1, 11) if rInt == 1 and color == "r" or \ rInt == 3 and color == "r" or \ rInt == 5 and color == "r" or \ rInt == 7 and color == "r" or \ rInt == 10 and color == "r": profile.money += rate * 2 await manager.update(profile) return await env.reply( f"🔴 Красный!\n🏆 Вы выиграли {rate*2}$.\n💰 Ваш баланс: {balance+rate*2}$.", keyboard=keyboard.dump_keyboard()) elif rInt == 2 and color == "b" or \ rInt == 4 and color == "b" or \ rInt == 6 and color == "b" or \ rInt == 8 and color == "b" or \ rInt == 11 and color == "b": profile.money += rate * 2 await manager.update(profile) return await env.reply( f"⚫ Черный!\n🏆 Вы выиграли {rate*2}$.\n💰 Ваш баланс: {balance+rate*2}$.", keyboard=keyboard.dump_keyboard()) elif rInt == 9 and color == "g": profile.money += rate * 4 await manager.update(profile) return await env.reply( f"✅ Зеленый!\n🏆 Вы выиграли {rate*4}$.\n💰 Ваш баланс: {balance+rate*4}$.", keyboard=keyboard.dump_keyboard()) else: if rInt == 1 or rInt == 3 or rInt == 5 or rInt == 7 or rInt == 10: if profile.money - rate * 2 <= 0: profile.money = 0 balance = 0 else: profile.money -= rate * 2 balance -= rate * 2 await env.reply( f"🔴 Красный!\n😭 Вы проиграли {rate*2}$.\n💰 Ваш баланс: {balance}$.", keyboard=keyboard.dump_keyboard()) elif rInt == 2 or rInt == 4 or rInt == 6 or rInt == 8 or rInt == 11: if profile.money - rate * 2 <= 0: profile.money = 0 balance = 0 else: profile.money -= rate * 2 balance -= rate * 2 await env.reply( f"⚫ Черный!\n😭 Вы проиграли {rate*2}$.\n💰 Ваш баланс: {balance}$.", keyboard=keyboard.dump_keyboard()) elif rInt == 9: if profile.money - rate * 4 <= 0: profile.money = 0 balance = 0 else: profile.money -= rate * 4 balance -= rate * 4 await env.reply( f"✅ Зеленый!\n😭 Вы проиграли {rate*4}$.\n💰 Ваш баланс: {balance}$.", keyboard=keyboard.dump_keyboard()) await manager.update(profile) return "DONE"
async def on_message(message, attachments, env): idl = await get_or_none(Relations, user1=int(message.from_id)) if not env['args']: await env.reply(f"Аргументы:\n" f"отношения принять - принять предложение.\n" f"отношения отказать - отказаться от предложения.\n" f"отношения инфа - инфа об твоих отношениях") return "GOON" if env['args'][0].lower() == "инфа": if not idl: return await env.reply("Отношения: У тебя парня/девушки нет.") relays = idl info = await env.request('users.get', user_ids=relays.user2, fields='sex') info = info.response user1, user2 = await get_or_none( PxUser, iduser=message.from_id), await get_or_none(PxUser, iduser=relays.user2) if not user1: return env.reply( "[Отношения] пожалуйста введите !rank для просмотра этой команды!" ) if not user2: return env.reply( "[Отношения] пожалуйста попросите своего партнёра прописать !rank, чтобы взглянуть на статистику отношений" ) kb = VKKeyboard() kb.set_inline(True) if not env.eenv.is_multichat: kb.add_row() kb.edit_row(0).add_button( "Порвать отношения", payload={'command': f"{env.eenv.prefix}отношения порвать"}, color="negative") xpuser1 = user1.xpcount xpuser2 = user2.xpcount allcount = int(xpuser1) + int(xpuser2) mxpuser1 = user1.messcount mxpuser2 = user2.messcount mess = int(mxpuser1) + int(mxpuser2) strdt = datetime.datetime.fromtimestamp( relays.datetime).strftime('%Y-%m-%d %H:%M:%S') if info[0]['sex'] == 1: return await env.reply( f"💞Твоя тян: [id{info[0]['id']}|{info[0]['first_name']} {info[0]['last_name']}]\n" f"💡Ваш общий опыт: {allcount}xp\n" f"📮Ваше общее количество сообщений: {mess}\n" f"📅Когда были зарегестрированы: {strdt}", keyboard=kb.dump_keyboard()) elif info[0]['sex'] == 2: return await env.reply( f"💞Твой кун: [id{info[0]['id']}|{info[0]['first_name']} {info[0]['last_name']}]\n" f"💡Ваш общий опыт: {allcount}xp\n" f"📮Ваше общее количество сообщений: {mess}\n" f"📅Когда были зарегестрированы: {strdt}", keyboard=kb.dump_keyboard()) if str(message.from_id) in relationtemp: if env['args'][0].lower() == "принять": await env.request( 'messages.send', user_id=relationtemp[f'{str(message.from_id)}'], message= f"Отношения: [id{relationtemp[f'{str(message.from_id)}']}|Поздравляем], твоё предложение приняли." ) await env.reply("Отношения: Поздравляем, теперь вы пара.") user_1 = relationtemp[f'{str(message.from_id)}'] user_2 = message.from_id timestamp = int(datetime.datetime.now().timestamp()) await peewee_async.create_object(Relations, user1=user_1, user2=user_2, datetime=timestamp) await peewee_async.create_object(Relations, user1=user_2, user2=user_1, datetime=timestamp) del (relationtemp[f'{str(message.from_id)}']) elif env['args'][0].lower() == "отказать": await env.reply( "Отношения: Спасибо, что написали, пойду сообщу эту грустную новость тому человеку, чьи чувства были разбиты." ) await env.request( 'messages.send', user_id=relationtemp[f'{str(message.from_id)}'], message= f"Отношения: [id{relationtemp[f'{str(message.from_id)}']}|К сожалению], тебе отказали." ) del (relationtemp[f'{str(message.from_id)}']) else: pass return "DONE"
async def on_message(message, attachments, env): idl = await get_or_none(Relations, user1=int(message.from_id)) if not env['args']: return await env.reply("Отношения: С кем встречаться та буишь?") usera = idl if not usera: usc = await parse_user_id(message, env) if usc: if await get_or_none(Relations, user1=usc[0]): return await env.reply("Отношения: Он/Она уже с кем-то.") sex = await env.request('users.get', user_ids=f'{usc[0]},{message.from_id}', fields='sex') sex = sex.response if usc[0] == message.from_id: return await env.reply( "Отношения: А, как с самим собой встречаться чёт я хз.") kb = VKKeyboard() kb.set_inline(True) kb.add_row() kb.edit_row(0).add_button( "💝 Согласиться", payload={'command': f"{env.eenv.prefix}отношения принять"}, color="positive") kb.add_row() kb.edit_row(1).add_button( "💘 Отказать", payload={'command': f"{env.eenv.prefix}отношения отказать"}, color="negative") r = await env.request( 'messages.send', keyboard=kb.dump_keyboard(), user_id=usc[0], message= f"Отношения: [id{usc[0]}|{sex[0]['first_name']}], тебе предложил(-а) встречаться [id{message.from_id}|{sex[1]['first_name']} {sex[1]['last_name']}]\nНапишите команду '!отношения принять' или '!отношения отказать', у вас 120 секунд" ) if not r.error: await env.reply("Отношения: Ну я написал ждёмс 120 секунд") else: return await env.reply( "Отношения: Личка не доступна\nЧеловек с которым вы хотите встречаться должен написать боту в лс vk.me/honkbot" ) relationtemp[f'{str(usc[0])}'] = message.from_id await asyncio.sleep(120) if str(usc[0]) in relationtemp: await env.reply( "Отношения: К сожалению прошло 120 секунд, а ответа не поступило." ) await env.request('messages.send', user_id=env['args'], message=f"Отношения: Отмена.....") del (relationtemp[f'{str(usc[0])}']) else: return await env.reply( "Отношения: Вы должны были написать упоминание о человеке.") else: return await env.reply( "Отношения: А изменять не очень хорошо, я слышала.")
async def notificator(*args): while True: timedb2 = await get_or_none(DynamicSettings, key="LAST_AUTOPOST_TIME") if not timedb2: await manager.create_or_get(DynamicSettings, key="LAST_AUTOPOST_TIME", value=str(int(time.time()))) timedb = int(time.time()) else: timedb = int(timedb2.value) remaining_time = (timedb + 1800) - int(time.time()) if remaining_time > 0: await asyncio.sleep(remaining_time) plugin.votes = {} plugin.positive_votes = 0 plugin.cancel_votes = 0 upload_photo = make_upload_photo( args[0]['kutana']['kutana'].controllers[0], chat_id) request = RawRequest( load_configuration("vk_token", "configuration.json")).schedule_raw_request ruris_request = RawRequest(ruris_token).schedule_raw_request tag_splitted = random.choice(tags).split("|") tag = tag_splitted[0] person = tag_splitted[1] images = await parseImages(tag_splitted) plugin.hash = secrets.token_hex(16) attach_ids = [] for link in images: attach = None async with aiohttp.ClientSession() as sess: async with sess.get(link) as resp: attach = await upload_photo(io.BytesIO(await resp.read())) if attach: attach_ids.append( f'{attach.type}{attach.owner_id}_{attach.id}') kb = VKKeyboard() x = 1 buttons = [] for _ in images: buttons.append({ 'text': f'{x}', 'payload': { 'command': f'!пикчуресхуюреснахуйловлайвлизэйшнблять {x} {plugin.hash}' }, 'color': 'positive' }) x += 1 buttons.append({ 'text': 'Отмена', 'payload': { 'command': f'!пикчуресхуюреснахуйловлайвлизэйшнблять cancel {plugin.hash}' }, 'color': 'negative' }) kb.lazy_buttons({'one_time': False, 'buttons': buttons}) text = f''' Привет, я тут захотела выложить пару фоточек, не поможешь мне выбрать какая подходит для паблика? Обратите внимание!!!! Нужен именно персонаж/общий план: {person} На голосование есть 10 минут! #{tag}@honkbot''' await request("messages.send", peer_id=chat_id, message=text, attachment=','.join(attach_ids), keyboard=kb.dump_keyboard()) await asyncio.sleep(10 * 60) timedb2.value = str(int(time.time())) await manager.update(timedb2) plugin.over_cancel = False if plugin.positive_votes + plugin.cancel_votes < 2: plugin.votes = {} plugin.positive_votes = 0 plugin.cancel_votes = 0 plugin.hash = "-1-1-1-1-1-1-1-1-1-1--11-1-1-1-1-1-1-1-1" await request( "messages.send", peer_id=chat_id, message= "К сожалению не достаточно голосов, может тогда опубликуем что-нибудь через часик?", keyboard='{"buttons": []}') continue if plugin.cancel_votes > plugin.positive_votes: plugin.votes = {} plugin.positive_votes = 0 plugin.cancel_votes = 0 plugin.hash = "-1-1-1-1-1-1-1-1-1-1--11-1-1-1-1-1-1-1-1" await request( "messages.send", peer_id=chat_id, message= "Я походу выбрала не очень да? Может тогда опубликуем что-нибудь через часик?", keyboard='{"buttons": []}') continue results = {} for (_, v) in plugin.votes.items(): if v not in results: results[v] = 1 continue results[v] += 1 final_results = [ (k, results[k]) for k in sorted(results, key=results.get, reverse=True) ] kb = VKKeyboard() kb.lazy_buttons({ 'one_time': False, 'buttons': [{ 'text': 'ACHTUNG! WRONG PICTURE(nsfw and etc..)', 'payload': { 'command': f'!пикчуресхуюреснахуйловлайвлизэйшнблять отмени_пост {plugin.hash}' }, 'color': 'negative' }] }) await request( "messages.send", peer_id=chat_id, message= f"Ура! Победила картинка №{final_results[0][0]} с {final_results[0][1]} голосами!", attachment=attach_ids[final_results[0][0] - 1], keyboard=kb.dump_keyboard()) await asyncio.sleep(15) plugin.votes = {} plugin.positive_votes = 0 plugin.cancel_votes = 0 plugin.hash = "-1-1-1-1-1-1-1-1-1-1--11-1-1-1-1-1-1-1-1" if plugin.over_cancel: await request("messages.send", peer_id=chat_id, message="Админ сказал что пикча не оч, отменяемс", keyboard='{"buttons": []}') continue params = { 'group_id': group_id, 'caption': f"Источник: {images[final_results[0][0]-1]}", } # Start uploading result = await ruris_request("photos.getWallUploadServer", **params) upload_url = result['upload_url'] data = aiohttp.FormData() async with aiohttp.ClientSession() as sess: async with sess.get(images[final_results[0][0] - 1]) as resp: #lets convert image image = Image.open(io.BytesIO(await resp.read())) buffer = io.BytesIO() image.save(buffer, format="JPEG") buffer.seek(0) data.add_field("photo", buffer, filename="img.jpg") upload_result = None async with aiohttp.ClientSession() as sess: async with sess.post(upload_url, data=data) as resp: upload_result = json.loads(await resp.read()) if "error" in upload_result: await request( "messages.send", peer_id=chat_id, message="Не удалось загрузить пикчу на сервера ВК!", keyboard='{"buttons": []}') continue params.update(upload_result) image_for_post = await ruris_request("photos.saveWallPhoto", **params) if len(image_for_post) < 1: await request("messages.send", peer_id=chat_id, message="Не удалось загрузить пикчу на сервера ВК!", keyboard='{"buttons": []}') continue image_for_post = f"photo{image_for_post[0]['owner_id']}_{image_for_post[0]['id']}" await ruris_request("wall.post", owner_id=f"-{group_id}", message=f"{person} #{tag} #lovelive", attachments=image_for_post, from_group=1) await request("messages.send", peer_id=chat_id, message="Пост был опубликован!", keyboard='{"buttons": []}')