row_list.append([button_view_archive]) if len(row_list) > 0: keyboard = ReplyKeyboardMarkup() for row in row_list: keyboard.row(*row) return keyboard button_create_new = KeyboardButton('Создать новое') button_view_archive = KeyboardButton('Архив') button_back_to_events = KeyboardButton('Вернуться к списку ивентов') button_cancel = KeyboardButton('Отмена') keyboard_cancel = ReplyKeyboardMarkup().row(button_cancel) # Изменить статус ивента button_status_decrease = InlineKeyboardButton('-', callback_data='-') button_status_increase = InlineKeyboardButton('+', callback_data='+') button_current_status = InlineKeyboardButton('', callback_data='status') status_buttons_list = [ button_status_decrease, button_current_status, button_status_increase ] def status_buttons(current_status: int): button_current_status.text = 'Статус: ' + str(current_status) return status_buttons_list
from aiogram.types import KeyboardButton, ReplyKeyboardMarkup get_phone_number = KeyboardButton('Отправить номер', request_contact=True) get_location = KeyboardButton('Отправить месторасположение', request_location=True) settings_buttons = ReplyKeyboardMarkup( resize_keyboard=True, # уменьшить размер клавиатуры one_time_keyboard=True, # скрыть после нажатия keyboard=[['Показать текущие настройки'], ['Изменить максимальную плотность'], ['Изменить объем кольца'], ['Отмена']]) grunt_random_button = ReplyKeyboardMarkup( resize_keyboard=True, keyboard=[['Мне повезёт!'], ['Вернуться в главное меню']])
async def welcome(message: types.Message): button = KeyboardButton(B_REGISTRER) button.request_contact = True kb = ReplyKeyboardMarkup(resize_keyboard=True).add(button) await bot.send_message(message.chat.id, T_HELLO, reply_markup=kb) await bot.send_sticker(message.chat.id, 'CAADBAAD8AIAAlI5kwZeZ9hi6NX9qQI')
from aiogram.types import KeyboardButton, ReplyKeyboardMarkup from aiogram.utils.emoji import emojize button_registration = KeyboardButton('{} Зарегистрироваться'.format( emojize(":customs:"))) registration_menu = ReplyKeyboardMarkup(resize_keyboard=True) registration_menu.clean() registration_menu.row(button_registration)
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton main_menu = ReplyKeyboardMarkup( keyboard=[ [ KeyboardButton( text="🧑💼 Личный кабинет" ) ], [ KeyboardButton( text='🙋 Тех. поддержка' ) ] ], resize_keyboard=True )
""" Different keyboards """ from aiogram.types import ( ReplyKeyboardRemove, ReplyKeyboardMarkup, InlineKeyboardMarkup, InlineKeyboardButton, # KeyboardButton, ) from bot.app.ticket import URGENCY no_keyboard = ReplyKeyboardRemove() select_urgent_keyboard = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) for value in URGENCY: select_urgent_keyboard.insert(URGENCY[value]) select_cancel_create = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) select_cancel_create.insert("/Отмена") select_command = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) select_command.insert("/Мои заявки") select_command.insert("/Создать заявку") def select_approve_refuse(ticket_id: int) -> InlineKeyboardMarkup: """ Keyboard to approve or refuse ticket with ticket_id label """
async def echo_message(message: types.Message): date = db.get_bot() text = message.text podcateg_active = False tovar_active = False tovar_chosen = False if db.get_podcat_by_parent(text, False): podcateg_active = True if db.get_prod_by_parent(text, False): tovar_active = True if db.get_prod_advanced(text, False): tovar_chosen = True if int(date[0]) != 0: if True: #-------------------------------ГЛАВНОЕ_МЕНЮ-----------------------------# state = dp.current_state(chat=message.chat.id, user=message.from_user.id) aastate = await state.get_state() if text == texts.back_button: state = dp.current_state(chat=message.chat.id, user=message.from_user.id) await state.finish() buttons = ReplyKeyboardMarkup(resize_keyboard=True) buy_menu = (texts.buy_button) pay_bal = (texts.balance_pay_button) buttons.add(buy_menu, pay_bal) balance = db.get_ebal(message.chat.id) reply = texts.menu_text b1 = db.get_buttons("1") b2 = db.get_buttons("2") if b1 != "0": buttons.add(b1) if b2 != "0": buttons.add(b2) if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: admin_menu = ("🔥 Админка 🔥") buttons.add(admin_menu) await message.answer(reply.format(balance[0]), reply_markup=buttons) #-------------------------------TOVARS_MENU------------------------------# elif text == "💰 Управление продажами 💰": state = dp.current_state(chat=message.chat.id, user=message.from_user.id) await state.finish() if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: buttons = ReplyKeyboardMarkup(resize_keyboard=True) categ_button = ("🎁 Категории 🎁") podcateg_button = ("💣 Подкатегории 💣") sell_button = ("💰 Товары 💰") admin = ("🔥 Админка 🔥") buttons.add(categ_button).add(podcateg_button).add( sell_button).add(admin) await message.answer("Menu", reply_markup=buttons) #--------------------------------TVARI------------------------------------# elif text == "💰 Товары 💰": state = dp.current_state(chat=message.chat.id, user=message.from_user.id) await state.finish() if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: buttons = ReplyKeyboardMarkup(resize_keyboard=True) categ_button = ("✅ Добавить товар ✅") podcateg_button = ("❌ Удалить товар ❌") podcateg_button1 = ("💣 Пополнить товар 💣") admin = ("💰 Управление продажами 💰") buttons.add(categ_button).add(podcateg_button).add( podcateg_button1).add(admin) await message.answer("Menu", reply_markup=buttons) elif text == "💣 Пополнить товар 💣": categs = db.get_cat() tovarsss = "💰 Товары 💰" buttons = ReplyKeyboardMarkup(resize_keyboard=True) await plus_tovar.categ.set() buttons.add(tovarsss) for cat in categs: buttons.add(cat[0]) await message.answer("🎁 Категории 🎁", reply_markup=buttons) elif text == "✅ Добавить товар ✅": categs = db.get_cat() tovarsss = "💰 Товары 💰" buttons = ReplyKeyboardMarkup(resize_keyboard=True) await add_tovar.categ.set() buttons.add(tovarsss) for cat in categs: buttons.add(cat[0]) await message.answer("🎁 Категории 🎁", reply_markup=buttons) elif text == "❌ Удалить товар ❌": categs = db.get_cat() tovarsss = "💰 Товары 💰" buttons = ReplyKeyboardMarkup(resize_keyboard=True) await del_tovar.categ.set() buttons.add(tovarsss) for cat in categs: buttons.add(cat[0]) await message.answer("🎁 Категории 🎁", reply_markup=buttons) #-------------------------------CATEG_MENU--------------------------------# elif text == "🎁 Категории 🎁": state = dp.current_state(chat=message.chat.id, user=message.from_user.id) await state.finish() if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: buttons = ReplyKeyboardMarkup(resize_keyboard=True) categ_button = ("✅ Добавить категорию ✅") podcateg_button = ("❌ Удалить категорию ❌") admin = ("💰 Управление продажами 💰") buttons.add(categ_button).add(podcateg_button).add(admin) await message.answer("Menu", reply_markup=buttons) elif text == "✅ Добавить категорию ✅": if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: buttons = ReplyKeyboardMarkup(resize_keyboard=True) categ_button = ("🎁 Категории 🎁") buttons.add(categ_button) await add_categ.name.set() await message.answer("Отправьте мне название категории.", reply_markup=buttons) elif text == "❌ Удалить категорию ❌": if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: buttons = ReplyKeyboardMarkup(resize_keyboard=True) categ_button = ("🎁 Категории 🎁") buttons.add(categ_button) categs = db.get_cat() for cat in categs: buttons.add(cat[0]) back_menu = (texts.back_button) await del_categ.name.set() await message.answer("Отправьте мне название категории.", reply_markup=buttons) #-------------------------------PODCATEG_MENU----------------------------# elif text == "💣 Подкатегории 💣": state = dp.current_state(chat=message.chat.id, user=message.from_user.id) await state.finish() if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: buttons = ReplyKeyboardMarkup(resize_keyboard=True) categ_button = ("✅ Добавить подкатегорию ✅") podcateg_button = ("❌ Удалить подкатегорию ❌") admin = ("💰 Управление продажами 💰") buttons.add(categ_button).add(podcateg_button).add(admin) await message.answer("Menu", reply_markup=buttons) elif text == "✅ Добавить подкатегорию ✅": if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: buttons = ReplyKeyboardMarkup(resize_keyboard=True) categ_button = ("💣 Подкатегории 💣") buttons.add(categ_button) await add_podcateg.categ.set() categs = db.get_cat() buttons = ReplyKeyboardMarkup(resize_keyboard=True) for cat in categs: buttons.add(cat[0]) back_menu = (texts.back_button) buttons.add(back_menu) await message.answer("В какую категорию ?", reply_markup=buttons) elif text == "❌ Удалить подкатегорию ❌": if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: buttons = ReplyKeyboardMarkup(resize_keyboard=True) categ_button = ("💣 Подкатегории 💣") buttons.add(categ_button) await del_podcateg.categ.set() categs = db.get_cat() buttons = ReplyKeyboardMarkup(resize_keyboard=True) for cat in categs: buttons.add(cat[0]) back_menu = (texts.back_button) buttons.add(back_menu) await message.answer("В какой категории??", reply_markup=buttons) #-------------------------------ADMIN_PANEL------------------------------# elif text == "🔥 Админка 🔥": state = dp.current_state(chat=message.chat.id, user=message.from_user.id) await state.finish() if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: buttons = ReplyKeyboardMarkup(resize_keyboard=True) #ref_edit = ("💵 Изменить % рефералки 💵") #change_faq = ("ℹ️ Изменить FAQ ℹ️") add_pr = ("📈 Редактирование рекламы 📈") sell_settings = ("💰 Управление продажами 💰") make_pr = ("💈 Сделать рассылку 💈") back_menu = (texts.back_button) buttons.add(add_pr).add(sell_settings).add(make_pr).add( back_menu) info = db.get_bot() await message.answer(texts.admin_panel.format( users_amount=db.get_len_users(), make_money=info[2], day=info[0], live=info[1], sold=info[3], refproc=info[4]), reply_markup=buttons ) #{make_money}#{sold}#{refproc} #-------------------------------Изменение доли рефералки-----------------# elif text == "💵 Изменить % рефералки 💵": if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: buttons = ReplyKeyboardMarkup(resize_keyboard=True) admin = ("🔥 Админка 🔥") buttons.add(admin) await ref_proc.get.set() await message.answer( "Отправьте мне долю реферера (целое число от 0 до 100 включительно.)", reply_markup=buttons) #-------------------------------Управление кнопками пиара--------------------------# elif text == "📈 Редактирование рекламы 📈": if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: b1 = db.get_buttons("1") b2 = db.get_buttons("2") buttons = ReplyKeyboardMarkup(resize_keyboard=True) if b1 == "0": buttons.add("🔴 Откл 1 🔴") else: buttons.add("🟢 Вкл 1 🟢") if b2 == "0": buttons.add("🔴 Откл 2 🔴") else: buttons.add("🟢 Вкл 2 🟢") admin = ("🔥 Админка 🔥") buttons.add(admin) await message.answer("Управление кнопками рекламы.", reply_markup=buttons) elif text == "🔴 Откл 1 🔴" or text == "🔴 Откл 2 🔴": if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: if text == "🔴 Откл 1 🔴": buttons = ReplyKeyboardMarkup(resize_keyboard=True) await add_piar_1.name.set() admin = ("🔥 Админка 🔥") buttons.add(admin) await message.answer("Введите название кнопки.", reply_markup=buttons) elif text == "🔴 Откл 2 🔴": buttons = ReplyKeyboardMarkup(resize_keyboard=True) await add_piar_2.name.set() admin = ("🔥 Админка 🔥") buttons.add(admin) await message.answer("Введите название кнопки.", reply_markup=buttons) elif text == "🟢 Вкл 1 🟢" or text == "🟢 Вкл 2 🟢": if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: if text == "🟢 Вкл 1 🟢": db.change_button("0", "0", 1) b1 = db.get_buttons("1") b2 = db.get_buttons("2") buttons = ReplyKeyboardMarkup(resize_keyboard=True) if b1 == "0": buttons.add("🔴 Откл 1 🔴") else: buttons.add("🟢 Вкл 1 🟢") if b2 == "0": buttons.add("🔴 Откл 2 🔴") else: buttons.add("🟢 Вкл 2 🟢") admin = ("🔥 Админка 🔥") buttons.add(admin) await message.answer("Кнопка была отключена.", reply_markup=buttons) elif text == "🟢 Вкл 2 🟢": db.change_button("0", "0", 2) b1 = db.get_buttons("1") b2 = db.get_buttons("2") buttons = ReplyKeyboardMarkup(resize_keyboard=True) if b1 == "0": buttons.add("🔴 Откл 1 🔴") else: buttons.add("🟢 Вкл 1 🟢") if b2 == "0": buttons.add("🔴 Откл 2 🔴") else: buttons.add("🟢 Вкл 2 🟢") admin = ("🔥 Админка 🔥") buttons.add(admin) await message.answer("Кнопка была отключена.", reply_markup=buttons) #-------------------------------Работа с товаром--------------------------# #-------------------------------РАССЫЛКА_С_ФОТО--------------------------# elif text == "💈 Сделать рассылку 💈": if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: buttons = ReplyKeyboardMarkup(resize_keyboard=True) get_pr_text = ("✉️ Тест рассылки ✉️") give_pr_text = ("📱 Изменить текст рассылки 📱") start_pr = ("🚀 Запуск рассылки 🚀") if Pr_set.photo: add_photo = ("🟢 Фото 🟢") else: add_photo = ("🔴 Фото 🔴") start_pr = ("🚀 Запуск рассылки 🚀") admin = ("🔥 Админка 🔥") buttons.add(get_pr_text).add(give_pr_text).add( add_photo).add(start_pr).add(admin) await message.answer( "Меню создания рассылки \n Отправьте мне фото, чтобы оно отображалось в рассылке. \n🔴 Фото 🔴 - фото в рассылке отключено .\n🟢 Фото 🟢 - фото в рассылке включено.", reply_markup=buttons) elif text == "🔴 Фото 🔴" or text == "🟢 Фото 🟢": if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: if text == "🔴 Фото 🔴": Pr_set.photo = True else: Pr_set.photo = False buttons = ReplyKeyboardMarkup(resize_keyboard=True) get_pr_text = ("✉️ Тест рассылки ✉️") give_pr_text = ("📱 Изменить текст рассылки 📱") start_pr = ("🚀 Запуск рассылки 🚀") if Pr_set.photo: add_photo = ("🟢 Фото 🟢") else: add_photo = ("🔴 Фото 🔴") start_pr = ("🚀 Запуск рассылки 🚀") admin = ("🔥 Админка 🔥") buttons.add(get_pr_text).add(give_pr_text).add( add_photo).add(start_pr).add(admin) await message.answer( "Меню создания рассылки \n Отправьте мне фото, чтобы оно отображалось в рассылке. \n🔴 Фото 🔴 - фото в рассылке отключено .\n🟢 Фото 🟢 - фото в рассылке включено.", reply_markup=buttons) elif text == "🚀 Запуск рассылки 🚀": if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: ids = db.get_users_id() for id in ids: if Pr_set.photo: try: with open("pr.jpg", "rb") as f: await bot.send_photo(id[0], f, caption=Pr_set.text) except: pass else: await bot.send_message(id[0], Pr_set.text) elif text == "✉️ Тест рассылки ✉️": if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: if Pr_set.photo: with open("pr.jpg", "rb") as f: await bot.send_photo(message.from_user.id, f, caption=Pr_set.text) else: await bot.send_message(message.from_user.id, Pr_set.text) elif text == "📱 Изменить текст рассылки 📱": if str( message.from_user.id ) == settings.admin or message.from_user.id in settings.head_admin: buttons = ReplyKeyboardMarkup(resize_keyboard=True) admin = ("🔥 Админка 🔥") buttons.add(admin) await pr_make.get_text.set() await message.answer("Отправьте мне текст для рассылки.", reply_markup=buttons) #---------------------------ПОПОЛНЕНИЕ_БАЛАНСА---------------------------# elif text == texts.balance_pay_button: buttons = ReplyKeyboardMarkup(resize_keyboard=True) btc_pay = (texts.btc_pay_button) ticket_pay = (texts.eticket_pay_button) back_menu = (texts.back_button) buttons.add(btc_pay, ticket_pay).add(back_menu) await message.answer(texts.deposit_menu_text, reply_markup=buttons) #---------------------------ГЛАВНЫЕ_КАТЕГОРИИ----------------------------# elif aastate != "del_categ:name" and text == texts.buy_button: categs = db.get_cat() buttons = ReplyKeyboardMarkup(resize_keyboard=True) for cat in categs: buttons.add(cat[0]) back_menu = (texts.back_button) buttons.add(back_menu) await message.answer("Главные категории", reply_markup=buttons) #------------------------------ПОДКАТЕГОРИИ------------------------------# elif podcateg_active and aastate != "del_categ:name" and aastate != "add_podcateg:categ" and aastate != "add_podcateg:name" and aastate != "del_podcateg:categ" and aastate != "add_tovar:categ" and aastate != "del_tovar:categ" and aastate != "plus_tovar:categ": buttons = ReplyKeyboardMarkup(resize_keyboard=True) podcats = db.get_podcat_by_parent(text, True) for podcat in podcats: buttons.add(podcat[0]) back_menu = (texts.back_button) buttons.add(back_menu) await message.answer("Подкатегории", reply_markup=buttons) #--------------------------------ТОВАРЫ----------------------------------# elif tovar_active and aastate != "del_podcateg:name" and aastate != "add_tovar:podcateg" and aastate != "del_tovar:podcateg" and aastate != "plus_tovar:tt" and aastate != "plus_tovar:podcateg": buttons = ReplyKeyboardMarkup(resize_keyboard=True) products = db.get_prod_by_parent(text, True) for tov in products: buttons.add(tov[0]) back_menu = (texts.back_button) buttons.add(back_menu) await message.answer("Товары", reply_markup=buttons) #----------------ТОВАР_ВЫБРАН_ПОКАЗ_ОПИСАНИЯ_И_ПОКУПКА-------------------# elif tovar_chosen and aastate != "del_tovar:name" and aastate != "plus_tovar:name" and aastate != "plus_tovar:tt": buttons = InlineKeyboardMarkup(resize_keyboard=True) product = db.get_prod_advanced(text, True) tovar = "buy_" + product[3] buy_button = InlineKeyboardButton('Купить!', callback_data=tovar) buttons.add(buy_button) msg_text = "{}\nОсталось товара: {}\nЦена: {}".format( product[0], product[2], product[1]) await message.answer(msg_text, reply_markup=buttons) #---------------------------БИТКОИН_ПЕРЕВОД------------------------------# elif text == texts.btc_pay_button: await btc_pay_balance.money.set() buttons = ReplyKeyboardMarkup(resize_keyboard=True) back_menu = (texts.back_button) buttons.add(back_menu) await message.answer(texts.deposit_btc_pay, reply_markup=buttons) #---------------------------ЭЛЕКТРОННЫЙ_ПЕРЕВОД--------------------------# elif text == texts.eticket_pay_button: await crystal_pay.money.set() buttons = ReplyKeyboardMarkup(resize_keyboard=True) back_menu = (texts.back_button) buttons.add(back_menu) await message.answer(texts.deposit_crystal_pay, reply_markup=buttons) #---------------------------STATES---------------------------------------# else: state = dp.current_state(chat=message.chat.id, user=message.from_user.id) astate = await state.get_state() if astate == "btc_pay_balance:money": try: if int(message.text) >= 1: await state.update_data(money=message.text) await btc_pay_balance.next() await message.answer(texts.deposit_btc_check) except: await message.answer("Сумма указана некорректно!") elif astate == "btc_pay_balance:check": user_data = await state.get_data() amount = user_data['money'] await state.finish() good = InlineKeyboardButton( 'Принять', callback_data=f'good_{message.from_user.id}_{amount}') bad = InlineKeyboardButton( 'Отклонить', callback_data=f'bad_{message.from_user.id}') inlineb = InlineKeyboardMarkup().add(good, bad) await bot.send_message( db.get_log_chat(), texts.deposit_go_to_log_channel.format( username=message.from_user.username, user_id=message.from_user.id, amount=user_data['money'], check=message.text), reply_markup=inlineb) elif astate == "crystal_pay:money": row = get( f"https://api.crystalpay.ru/api.php?s={settings.crystal_token}&n={settings.crystal_pay_name}&o=generate&amount={message.text}" ).text row = json.loads(row) #https://pay.crystalpay.ru/?i= await state.finish() pay = InlineKeyboardButton( 'Оплатить', url=f"https://pay.crystalpay.ru/?i={row['id']}") check_payment = InlineKeyboardButton( 'Проверить оплату', callback_data=f"check_{row['id']}") inlineb = InlineKeyboardMarkup().add(pay).add( check_payment) await message.answer(texts.deposit_btc_pay, reply_markup=inlineb) elif astate == "pr_make:get_text": await state.finish() Pr_set.text = message.text await message.answer("Текст рассылки был установлен!") elif astate == "ref_proc:get": await state.finish() db.change_ref_proc(message.text) await message.answer("Новый процент был установлен.") elif astate == "add_piar_1:name": await state.update_data(name=message.text) await add_piar_1.next() await message.answer("Введите текст кнопки.") elif astate == "add_piar_1:text": user_data = await state.get_data() db.change_button(user_data['name'], message.text, 1) await message.answer("Кнопка включена!") elif astate == "add_piar_2:name": await state.update_data(name=message.text) await add_piar_2.next() await message.answer("Введите текст кнопки.") elif astate == "add_piar_2:text": user_data = await state.get_data() db.change_button(user_data['name'], message.text, 2) await message.answer("Кнопка включена!") elif astate == "add_categ:name": db.add_cat(message.text) await state.finish() await message.answer("Категория добавлена!") elif astate == "del_categ:name": db.del_cat(message.text) await state.finish() categ_button = ("🎁 Категории 🎁") buttons = ReplyKeyboardMarkup(resize_keyboard=True) buttons.add(categ_button) await message.answer("Категория удалена !", reply_markup=buttons) elif astate == "add_podcateg:categ": await state.update_data(categ=message.text) categ_button = ("💣 Подкатегории 💣") buttons = ReplyKeyboardMarkup(resize_keyboard=True) buttons.add(categ_button) await add_podcateg.next() await message.answer("Отправь название подкатегории.", reply_markup=buttons) elif astate == "add_podcateg:name": user_data = await state.get_data() await state.finish() db.add_podcat(user_data['categ'], message.text) await message.answer("Подкатегория была добавлена!") elif astate == "del_podcateg:categ": await state.update_data( categ=db.get_podcat_by_parent(message.text, True)) categ_button = ("💣 Подкатегории 💣") buttons = ReplyKeyboardMarkup(resize_keyboard=True) buttons.add(categ_button) podcats = db.get_podcat_by_parent(text, True) for podcat in podcats: buttons.add(podcat[0]) back_menu = (texts.back_button) buttons.add(back_menu) await del_podcateg.next() await message.answer("Отправь название подкатегории.", reply_markup=buttons) elif astate == "del_podcateg:name": user_data = await state.get_data() await state.finish() db.del_podcat(message.text) await message.answer("Подкатегория была удалена!") elif astate == "add_tovar:categ": await add_tovar.next() categ_button = ("💰 Товары 💰") buttons = ReplyKeyboardMarkup(resize_keyboard=True) buttons.add(categ_button) podcats = db.get_podcat_by_parent(text, True) for podcat in podcats: buttons.add(podcat[0]) await message.answer("💣 Подкатегории 💣", reply_markup=buttons) elif astate == "add_tovar:podcateg": await state.update_data(podcateg=message.text) await add_tovar.next() categ_button = ("💰 Товары 💰") buttons = ReplyKeyboardMarkup(resize_keyboard=True) await message.answer("Отправь мне название", reply_markup=buttons) elif astate == "add_tovar:name": await state.update_data(name=message.text) await message.answer("Сколько он будет стоить?") await add_tovar.next() elif astate == "add_tovar:price": await state.update_data(price=message.text) await add_tovar.next() await message.answer("Отправь описание товара") elif astate == "add_tovar:desc": # del_tovar(tovid) get_prodid_by_name(name) user_data = await state.get_data() await state.finish() db.add_prod(user_data['podcateg'], user_data['name'], user_data['price'], message.text) await message.answer("Товар добавлен.") elif astate == "del_tovar:categ": await del_tovar.next() categ_button = ("💰 Товары 💰") buttons = ReplyKeyboardMarkup(resize_keyboard=True) buttons.add(categ_button) podcats = db.get_podcat_by_parent(text, True) for podcat in podcats: buttons.add(podcat[0]) await message.answer("💣 Подкатегории 💣", reply_markup=buttons) elif astate == "del_tovar:podcateg": await del_tovar.next() buttons = ReplyKeyboardMarkup(resize_keyboard=True) products = db.get_prod_by_parent(text, True) for tov in products: buttons.add(tov[0]) await message.answer("Товары", reply_markup=buttons) elif astate == "del_tovar:name": await state.update_data(name=message.text) db.del_tovar(db.get_prodid_by_name(message.text)) categ_button = ("💰 Товары 💰") buttons = ReplyKeyboardMarkup(resize_keyboard=True) buttons.add(categ_button) await message.answer("Товар удалён", reply_markup=buttons) await state.finish() elif astate == "plus_tovar:categ": await plus_tovar.next() categ_button = ("💰 Товары 💰") buttons = ReplyKeyboardMarkup(resize_keyboard=True) buttons.add(categ_button) podcats = db.get_podcat_by_parent(text, True) for podcat in podcats: buttons.add(podcat[0]) await message.answer("💣 Подкатегории 💣", reply_markup=buttons) elif astate == "plus_tovar:podcateg": await plus_tovar.next() buttons = ReplyKeyboardMarkup(resize_keyboard=True) products = db.get_prod_by_parent(text, True) for tov in products: buttons.add(tov[0]) await message.answer("Товары", reply_markup=buttons) elif astate == "plus_tovar:tt": await state.update_data(name=message.text) await plus_tovar.next() categ_button = ("💰 Товары 💰") buttons = ReplyKeyboardMarkup(resize_keyboard=True) buttons.add(categ_button) await message.answer( "Отправьте мне товар, каждые данные должны начинаться с новой строки", reply_markup=buttons) elif astate == "plus_tovar:name": user_data = await state.get_data() tove = text.split("\n") for x in tove: if x.replace(" ", ""): db.add_prod_real( db.get_prodid_by_name(user_data['name']), x) categ_button = ("💰 Товары 💰") buttons = ReplyKeyboardMarkup(resize_keyboard=True) buttons.add(categ_button) await message.answer("Товар пополнен", reply_markup=buttons) await state.finish() else: # add_prod_real(prodid,datayoba): button_text = db.get_button_name(message.text) if button_text != "0": await message.answer(button_text[0]) #Head Admin's comm_ass if int(message.from_user.id) in settings.head_admin: if text.startswith("/addday"): day = text.replace("/addday", "").replace(" ", "") db.plus_day(day) await message.answer( f"Срок был продлён на {day} дней. ") elif text == "/addlog": db.add_log(message.chat.id) elif text.startswith("/addcat"): # /addcat catname catname = text.replace("/addcat", "").replace(" ", "") try: db.add_cat(catname) except: pass await message.answer( f"Добавлена новая категория: {catname}") elif text.startswith( "/addpodcat"): # /addpodcat catname podcatname podcatname = text.replace("/addpodcat ", "") hopeless = podcatname.split() try: db.add_podcat(hopeless[0], hopeless[1]) except: pass await message.answer( "Добавлена новая подкатегория {} , к категории {}" .format(hopeless[1], hopeless[0])) elif text.startswith( "/addprod" ): # /addprod podcatname tovarname price description podcatname = text.replace("/addprod ", "") hope = podcatname.split() desc = hope[4].replace("_", " ") try: sos = db.add_prod(hope[0], hope[1], hope[2], desc) except: sos = "ERROR - TOVAR NOT DOBAVLEN" await message.answer( "Добавлен товар {} , к подкатегории {}, ценой {} рублей и идентефикатором {}" .format(hope[2], hope[1], hope[3], sos)) elif text.startswith( "/adddataprod"): # /adddataprod id data product = text.replace("/adddataprod ", "") product = product.split() error = False try: db.add_prod_real(product[0], product[1]) except: error = True if error: await message.answer( "ERROR - Неверно введен id товара.") else: await message.answer( f"Добавлен новый товар к id {product[0]}") else: await message.answer("Срок аренды бота истёк.") if int(message.from_user.id) in settings.head_admin: if text.startswith("/addday"): day = text.replace("/addday", "").replace(" ", "") db.plus_day(day) await message.answer(f"Срок был продлён на {day} дней. ")
import emoji from aiogram.types import ReplyKeyboardMarkup, KeyboardButton start_mark = ReplyKeyboardMarkup( keyboard=[ [ KeyboardButton(text=emoji.emojize(':black_circle:') + ' Начать ' + emoji.emojize(':red_circle:')), ] ], resize_keyboard=True )
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton gender_keyboard = ReplyKeyboardMarkup( keyboard=[ [ KeyboardButton(text="Жінка"), KeyboardButton(text="Чоловік") ], ], resize_keyboard=True )
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton menu = ReplyKeyboardMarkup( keyboard=[[ KeyboardButton(text='Инструкции кассира'), KeyboardButton(text='Ошибки ККТ'), ], [KeyboardButton(text='FAQ Часто задаваемые вопросы')], [KeyboardButton(text='Заказать звонок')]], resize_keyboard=True, ) cancel = ReplyKeyboardMarkup(keyboard=[[KeyboardButton(text='⬅️ Отмена')]], resize_keyboard=True)
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton from models import Stock, Currency stocks_dict = {'Moscow Exchange': 'ME', 'NASDAQ': 'NSDQ'} curr_dict = {'Рубль': 'RUB', 'Доллар': 'USD', 'Евро': 'EUR'} stocks = [Stock(name, sym) for name, sym in stocks_dict.items()] currencies = [Currency(curr, sym) for curr, sym in curr_dict.items()] cancel_button = KeyboardButton('Cancel') stock_kb = ReplyKeyboardMarkup([[stock.kb for stock in stocks], [cancel_button]], resize_keyboard=True) currency_kb = ReplyKeyboardMarkup([[curr.kb for curr in currencies]], resize_keyboard=True) paper_kb = ReplyKeyboardMarkup([['Add shares', 'Sell shares'], ['Sell all', 'Delete position']], resize_keyboard=True) cancel_kb = ReplyKeyboardMarkup([[cancel_button]], resize_keyboard=True)
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton keyboard = ReplyKeyboardMarkup( keyboard=[[KeyboardButton(text="Local", request_location=True)]], resize_keyboard=True, one_time_keyboard=True)
InlineKeyboardButton('Физика 🤷🏻♀️', callback_data='subject_Физика'), InlineKeyboardButton('Информатика 💻', callback_data='subject_Информатика'), InlineKeyboardButton('Обществознание ⚖', callback_data='subject_Обществознание'), InlineKeyboardButton('История ⚔', callback_data='subject_История'), InlineKeyboardButton('Биология 🌿', callback_data='subject_Биология'), InlineKeyboardButton('Химия 💥', callback_data='subject_Химия'), InlineKeyboardButton('Иностранный язык ㊙', callback_data='subject_Иностранный язык'), InlineKeyboardButton('Родной язык 👅', callback_data='subject_Родной язык'), InlineKeyboardButton('Родная литература 📚', callback_data='subject_Родная литература'), InlineKeyboardButton('Физкультура 🏋🏻♀️', callback_data='subject_Физкультура'), InlineKeyboardButton('География 🗺', callback_data='subject_География')) subjects_kb.add(InlineKeyboardButton('Удалить последний добавленный предмет 🗑', callback_data='subject_del')) subjects_kb.add(InlineKeyboardButton('Добавить предмет 🆕', callback_data='subject_add')) subjects_kb.add(InlineKeyboardButton('Больше уроков в этот день нет 🆗', callback_data='subject_end')) main_kb = ReplyKeyboardMarkup(resize_keyboard=True).add(KeyboardButton('Домашнее задание на завтра ➡')) main_kb.add(KeyboardButton('Домашнее задание на неделю 📅')) main_kb.add(KeyboardButton('Расписание 📃')) main_kb_adm = ReplyKeyboardMarkup(resize_keyboard=True).add(KeyboardButton('Изменить расписание 🔧')) main_kb_adm.add(KeyboardButton('Домашнее задание на завтра ➡')) main_kb_adm.add(KeyboardButton('Домашнее задание на неделю 📅')) main_kb_adm.add(KeyboardButton('Расписание 📃')) main_kb_sat = ReplyKeyboardMarkup(resize_keyboard=True).add(KeyboardButton('Домашнее задание на послезавтра ➡')) main_kb_sat.add(KeyboardButton('Домашнее задание на неделю 📅')) main_kb_sat.add(KeyboardButton('Расписание 📃')) main_kb_adm_sat = ReplyKeyboardMarkup(resize_keyboard=True).add(KeyboardButton('Изменить расписание 🔧')) main_kb_adm_sat.add(KeyboardButton('Домашнее задание на послезавтра ➡')) main_kb_adm_sat.add(KeyboardButton('Домашнее задание на неделю 📅'))
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton broadcast = ReplyKeyboardMarkup(resize_keyboard=True, keyboard=[[ KeyboardButton(text="✉️ Отправить"), KeyboardButton(text="🔀 Другой пост") ], [KeyboardButton(text="🏠 Вернуться в меню")] ])
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton StartButton = ReplyKeyboardMarkup(keyboard= [ [ KeyboardButton(text="Начать") ] ], resize_keyboard=True, one_time_keyboard=True )
bot = Bot(token=TOKEN) dp = Dispatcher(bot) device = torch.device("cuda" if torch.cuda.is_available() else "cpu") cnn = models.vgg19(pretrained=True).features.to(device).eval() cnn_normalization_mean = torch.tensor([0.485, 0.456, 0.406]).to(device) cnn_normalization_std = torch.tensor([0.229, 0.224, 0.225]).to(device) bot = Bot(token=TOKEN) dp = Dispatcher(bot, storage=MemoryStorage()) image1 = False image2 = False bio = BytesIO() bio.name = 'image.jpeg' button_hi = KeyboardButton('Давай!') greet_kb = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True).add(button_hi) @dp.message_handler(commands=['start', 'reset'], state='*') async def process_start_command(message: types.Message): # set_state(message.from_user.id, str(States.S_START.value)) await States.S_START.set() await message.reply( "Привет!\nЯ умею переносить стиль на фотографии, давай поиграем!", reply_markup=greet_kb) @dp.message_handler(text="Давай!", state=States.S_START) async def process_start_style_button_command(message: types.Message, state: FSMContext): # set_state(message.from_user.id, str(States.S_START.value))
def add_key(avaliable_menu): keyboard = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) for name in avaliable_menu: keyboard.add(name) return keyboard
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton panel_admin = ReplyKeyboardMarkup(keyboard=[ [ KeyboardButton(text='Статистика'), KeyboardButton(text='Назад'), ], ], resize_keyboard=True)
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton from data import constants lang = ReplyKeyboardMarkup(keyboard=[ [KeyboardButton(text=constants.Uz), KeyboardButton(text=constants.Ru)], ], resize_keyboard=True) share_number_uz = ReplyKeyboardMarkup(keyboard=[ [ KeyboardButton(text="Telefon raqamni ulashish", request_contact=True), ], ], resize_keyboard=True) share_number_ru = ReplyKeyboardMarkup(keyboard=[ [ KeyboardButton(text="Поделиться контактом", request_contact=True), ], ], resize_keyboard=True) regions_uz = ReplyKeyboardMarkup(keyboard=[ [KeyboardButton(text="Toshkent"), KeyboardButton(text="Andijon viloyati")], [ KeyboardButton(text="Namangan viloyati"), KeyboardButton(text="Farg\'ona viloyati") ],
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton Standard_section = ['О нас', 'Преподаватели', 'Цены', 'Расписание', '/start'] admin_markup = ReplyKeyboardMarkup(resize_keyboard=True) for section in Standard_section: admin_markup.add(section) admin_markup.add( KeyboardButton('Часто задаваемые вопросы') ).add( KeyboardButton('Статистика') ).add( KeyboardButton('Уведомления') ).add( KeyboardButton('Выйти из админки') )
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton menu = ReplyKeyboardMarkup( keyboard=[ [ KeyboardButton(text='BTC'), KeyboardButton(text='ETH') ], [ KeyboardButton(text='APL'), KeyboardButton(text='PAT') ] ], resize_keyboard=True )
from aiogram.types import ReplyKeyboardRemove, \ ReplyKeyboardMarkup, KeyboardButton, \ InlineKeyboardMarkup, InlineKeyboardButton from lsg_parser import lsg button_hi = KeyboardButton('Привет! 👋') greet_kb = ReplyKeyboardMarkup() greet_kb.add(button_hi) greet_kb1 = ReplyKeyboardMarkup(resize_keyboard=True).add(button_hi) greet_kb2 = ReplyKeyboardMarkup( resize_keyboard=True, one_time_keyboard=True ).add(button_hi) button1 = KeyboardButton('1️⃣') button2 = KeyboardButton('2️⃣') button3 = KeyboardButton('3️⃣') markup3 = ReplyKeyboardMarkup().add( button1).add(button2).add(button3) markup4 = ReplyKeyboardMarkup().row( button1, button2, button3 ) markup5 = ReplyKeyboardMarkup().row( button1, button2, button3 ).add(KeyboardButton('Средний ряд'))
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton button_plus = KeyboardButton('1️⃣') markup = ReplyKeyboardMarkup().row(button_plus)
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton buttons = [{ 'status': 'Статус', 'add': 'Новая', 'delete': 'Удалить', 'start_stop': 'Старт\\Стоп' }, { 'complete': 'Выполнить' }] menu_button = ReplyKeyboardMarkup([list(x.values()) for x in buttons], resize_keyboard=True) cancel = ReplyKeyboardMarkup([['Отмена']], resize_keyboard=True, one_time_keyboard=True)
def create_contact_request(): return ReplyKeyboardMarkup(resize_keyboard = True).add( create_key('Отправить свой контакт ☎️', True) )
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton panel_choose_role = ReplyKeyboardMarkup(keyboard=[[ KeyboardButton(text='Начальник'), KeyboardButton(text='Подчиненный'), ], [ KeyboardButton(text='Назад'), ]], resize_keyboard=True)
async def main_logic(message: types.Message): t0 = time.time() if message.text == 'clean': with open('data2.json', 'rb') as f: await bot.edit_message_media(InputMediaDocument(f), admin_id, 4) # with open('data.json', 'rb') as f: # print(f) # await bot.send_document(message.chat.id, f) print(message.message_id) data = await get_data() # print(data) print(len(data['users'])) metka2 = False for user in data['users']: if user['chatid'] == message.chat.id: time_user = [] try: for stroka in message.text.split(':'): time_user.append(int(re.search(r'\d+', stroka).group())) except Exception as ex: # print(ex) pass print(time_user) if len(time_user) == 1: if time_user[0] > 0 and time_user[0] < 120: new_time = datetime.datetime.now() + datetime.timedelta( minutes=time_user[0]) metka_time = False for time_us in user['calltime']: if (new_time.time().hour + 3) == time_us[0] and new_time.time( ).minute == time_us[1]: await bot.send_message( message.chat.id, 'На данное время у Вас уже записан звонок') metka_time = True break if metka_time == False: user['calltime'].append( [new_time.time().hour + 3, new_time.time().minute]) await save_data(data) await bot.send_message( message.chat.id, 'Вы добавили звонок на {}:{}'.format( str(new_time.time().hour + 3), str(new_time.time().minute))) else: await bot.send_message(message.chat.id, 'Укажите время от 1 до 120 минут') if len(time_user) == 2: if time_user[0] >= 0 and time_user[0] <= 24 and time_user[ 1] >= 0 and time_user[1] <= 60: metka_time = False for time_us in user['calltime']: if time_user[0] == time_us[0] and time_user[ 1] == time_us[1]: await bot.send_message( message.chat.id, 'На данное время уже запланирован звонок') metka_time = True break if metka_time == False: user['calltime'].append([time_user[0], time_user[1]]) await save_data(data) await bot.send_message( message.chat.id, 'Вы добавили звонок на {}:{}'.format( str(time_user[0]), str(time_user[1]))) else: await bot.send_message( message.chat.id, 'Вы указали неправильное время. Попробуйте занова.') if message.text == B_CLEAN: user['calltime'].clear() await save_data(data) await bot.send_message(message.chat.id, 'Все звонки удачно сброшены.') if message.text == B_CALL_NOW: client = Client(account_sid, auth_token) client.calls.create(url='https://ex.ru', to=user['phones'], from_='+12027967603') if message.text == B_LIST_CALLS: if len(user['calltime']) == 0: await bot.send_message( message.chat.id, 'У Вас нет запланированных звонков') else: str_call_list = 'Запланированные звонки:\n' for time_call in user['calltime']: str_call_list += str(time_call[0]) + ':' + str( time_call[1]) + '\n' await bot.send_message(message.chat.id, str_call_list) if message.text == B_INFO: await bot.send_message(message.chat.id, 'Инфо тут') metka2 = True break if metka2 == False: button = KeyboardButton(B_REGISTRER) button.request_contact = True kb = ReplyKeyboardMarkup(resize_keyboard=True).add(button) await bot.send_message( message.chat.id, 'Вы не зарегистрированы, нажмите на кнопку "Регистрация"', reply_markup=kb) if message.text == 'add': for number in range(10000): data['users'].append({ 'chatid': number, 'phones': 8917, 'state': 0, 'calltime': [] }) with open('data3.json', 'w') as json_file: json.dump(data, json_file) with open('data3.json', 'rb') as f: await bot.edit_message_media(InputMediaDocument(f), admin_id, 4) t1 = time.time() print('end: ' + str(t1 - t0))
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton director_panel = ReplyKeyboardMarkup( keyboard=[ [ KeyboardButton(text='Создать класс'), KeyboardButton(text='Добавить учителя') ], [ KeyboardButton(text='Классы'), ] ], resize_keyboard=True )
from aiogram.types import ReplyKeyboardRemove, \ ReplyKeyboardMarkup, KeyboardButton, \ InlineKeyboardMarkup, InlineKeyboardButton # стартовая кнопка btn_start = KeyboardButton('Начать') kb_start = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True).add(btn_start) # кнопки со входами в функции бота btn_weather_now = KeyboardButton('Узнать погоду') btn_sub_on_notion_menu = KeyboardButton('Настройка уведомлений') kb_main = ReplyKeyboardMarkup(resize_keyboard=True).row( btn_weather_now, btn_sub_on_notion_menu) # кнопки для работы с уведомлениями btn_sub_yes = InlineKeyboardButton('Включить ✅', callback_data='sub_yes') btn_sub_no = InlineKeyboardButton('Выключить ❌', callback_data='sub_no') kb_sub_yes_or_no = InlineKeyboardMarkup(row_width=2).row( btn_sub_yes, btn_sub_no) # инлайн клавиатура городов btn_city_1 = KeyboardButton('Москва') btn_city_2 = KeyboardButton('Санкт-Петербург') btn_city_3 = KeyboardButton('Калининград') btn_city_4 = KeyboardButton('Нижний Новгород') btn_city_exite = KeyboardButton('Выйти') kb_of_cities = ReplyKeyboardMarkup(resize_keyboard=True)\ .row(btn_city_1, btn_city_2).row(btn_city_3, btn_city_4).add(btn_city_exite)
from aiogram.types import ReplyKeyboardRemove, \ ReplyKeyboardMarkup, KeyboardButton, \ InlineKeyboardMarkup, InlineKeyboardButton print_button = KeyboardButton('/print') copy_button = KeyboardButton('/copy') scan_button = KeyboardButton('/scan') greet_kb = ReplyKeyboardMarkup() greet_kb.add(print_button) greet_kb.add(copy_button) greet_kb.add(scan_button)