def is_account(msg): user = User.get(User.id == msg.chat.id) if msg.text == 'Да': keyboard = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) keyboard.add(KeyboardButton('Да'), KeyboardButton('Нет')) bot.send_message(msg.chat.id, 'Хотите ли Вы пройти авторизацию?', reply_markup=keyboard) user.act = 'auth' else: bot.send_message(msg.chat.id, 'Жаль, Вам будут недоступны некоторые функции :(\n' 'Можете тогда просто поговорить со мной или спросить о чём-нибудь!', reply_markup=ReplyKeyboardRemove()) user.act = None user.save()
def getMenu(message): shop_list = list(utils.today_store_func()) # Returns list of stores opened today item_select = ReplyKeyboardMarkup(one_time_keyboard=True) # Converts list of stores to keyboard for i in shop_list: item_select.add(i) cid = message.chat.id bot.send_chat_action(message.chat.id, 'typing') # Bot typing action store_choices = bot.send_message(cid, "The stores opened today are: \n" + str(shop_list), reply_markup=item_select) # Display Keyboard utils.today_store_func() bot.register_next_step_handler(store_choices, menuSelect)
def send_text(message): uid = message.from_user.id return_keyboard = ReplyKeyboardMarkup(resize_keyboard=True) return_keyboard.row('На главную') cur_state = user_states.get(uid, IDLE) if cur_state in [WAIT_FOR_REVIEW_B, WAIT_FOR_REVIEW_C]: user_states[uid] = IDLE bot.send_message( message.chat.id, 'Твой отзыв отправлен на проверку пользователям. Спасибо.') db.save_review(opened_rev[uid], message.text, cur_state == WAIT_FOR_REVIEW_C) elif message.text == 'Разработчик' or \ message.text == 'На главную' and user_profiles.get(uid, USER_MODE) == DEV_MODE: user_profiles[uid] = DEV_MODE bot.send_message(message.chat.id, 'Вы - разработчик', reply_markup=return_keyboard) dev_kb = InlineKeyboardMarkup([[ InlineKeyboardButton(text='Мои приложения', callback_data='dev1'), InlineKeyboardButton(text='Добавить приложение', callback_data='dev2') ]]) bot.send_message(uid, 'Выбери, что тебя интересует', reply_markup=dev_kb) elif message.text == 'Пользователь' or \ message.text == 'На главную' and user_profiles.get(uid, USER_MODE) == USER_MODE: user_profiles[uid] = USER_MODE user_states[uid] = IDLE bot.send_message(message.chat.id, 'Отлично', reply_markup=return_keyboard) user_kb = InlineKeyboardMarkup([ [InlineKeyboardButton(text='Поиск', callback_data='do_search')], [ InlineKeyboardButton(text='Выбор категории', callback_data='do_category') ], [ InlineKeyboardButton(text='Оставить отзыв', callback_data='do_review'), InlineKeyboardButton(text='Проверить отзыв', callback_data='do_check') ], ]) bot.send_message(uid, text='Что будем делать?', reply_markup=user_kb) elif cur_state == WAIT_FOR_QUERY: user_states[uid] = message.text process_search(uid, message.text)
def handle_text(message): try: text = message.text.lower() if text == 'today': date = datetime.datetime.now(TIMEZONE).date().toordinal() bot.send_message(message.chat.id, get_schedule(message.from_user.id, date), parse_mode='HTML') elif text == 'tomorrow': date = datetime.datetime.now(TIMEZONE).date().toordinal() + 1 bot.send_message(message.chat.id, get_schedule(message.from_user.id, date), parse_mode='HTML') elif text == 'week': date = datetime.datetime.now(TIMEZONE).date().toordinal() for i in range(7): bot.send_message(message.chat.id, get_schedule(message.from_user.id, date), parse_mode='HTML') date += 1 elif text == 'all': dates = get_dates(message.from_user.id, ordinal=True) if not dates: bot.send_message(message.chat.id, 'You have no recorded homework.') return for date in dates: bot.send_message(message.chat.id, get_schedule(message.from_user.id, date), parse_mode='HTML') elif text == 'add': subjects = get_subjects(message.from_user.id) markup = ReplyKeyboardMarkup(resize_keyboard=True).add(*subjects, row_width=1).add('❌ Cancel ❌') bot.send_message(message.chat.id, 'Choose the subject.', reply_markup=markup) bot.register_next_step_handler(message, handle_subject) elif text == 'delete': dates = get_dates(message.from_user.id) if not dates: bot.send_message(message.chat.id, 'You have no recorded homework to delete.') return markup = ReplyKeyboardMarkup(resize_keyboard=True).add(*dates, row_width=3).add('❌ Cancel ❌') bot.send_message(message.chat.id, 'Choose the date of the homework you wish to delete.\n' '(Or type it as <b>DD.MM</b>).', reply_markup=markup, parse_mode='HTML') bot.register_next_step_handler(message, handle_existing_date) else: date = process_date(message) if date: bot.send_message(message.chat.id, get_schedule(message.from_user.id, date), parse_mode='HTML') elif date is False: bot.send_message(message.chat.id, "Bot didn't understand you.", reply_markup=MARKUP) except Exception as e: bot.send_message(message.chat.id, 'Error: {}.'.format(str(e)), reply_markup=MARKUP)
def handle_text(message): client_id = message.chat.id if client_id in constants.client_status: if constants.client_status[client_id] == constants.firstname: user = UserQuestionnaire.objects.get(telegram_id=client_id) user.first_name = message.text user.save() kb = inline_kb_from_iterable(constants.lastname, 'Ввести фамилию') bot.send_message(message.chat.id, "Сохранили имя. ", reply_markup=kb) elif constants.client_status[client_id] == constants.lastname: user = UserQuestionnaire.objects.get(telegram_id=client_id) user.last_name = message.text user.save() kb = ReplyKeyboardMarkup() but = KeyboardButton('Отправить телефон', request_contact=True) kb.add(but) bot.send_message(message.chat.id, "Сохранили фамилию. Отправьте телефон ", reply_markup=kb) elif constants.client_status[client_id] == constants.email: try: user = UserQuestionnaire.objects.get(telegram_id=client_id) user.email = message.text user.save() kb = inline_kb_from_iterable(constants.address, 'Ввести адрес') bot.send_message(message.chat.id, "Мы сохранили почту. ", reply_markup=kb) except ValidationError: kb = inline_kb_from_iterable(constants.email, 'Ввести почту') bot.send_message(message.chat.id, "Не верная почта. ", reply_markup=kb) elif constants.client_status[client_id] == constants.address: user = UserQuestionnaire.objects.get(telegram_id=client_id) user.address = message.text user.save() kb = inline_kb_from_iterable(constants.wishes, 'Ввести пожелания') bot.send_message(message.chat.id, "Сохранили адрес. ", reply_markup=kb) elif constants.client_status[client_id] == constants.wishes: user = UserQuestionnaire.objects.get(telegram_id=client_id) user.wishes = message.text user.save() bot.send_message( message.chat.id, "Спасибо что вы с нами. Все данные у нас. Мы с вами свяжемся")
def change_roles(message): chat_id = message.chat.id global username username = message.text markup = ReplyKeyboardMarkup(one_time_keyboard=True) for role in Role: markup.add(KeyboardButton(role.value)) bot.send_message(chat_id, "Выберите новую роль:", reply_markup=markup) bot.register_next_step_handler(message, option_select)
def listKeyboard(items): if items is None: items = [] buttons = [] keyboard = ReplyKeyboardMarkup() for item in items: buttons.append(KeyboardButton(item)) keyboard.add(*buttons) return keyboard
def start(message): # txt = Texts.objects.filter( # text_type='Greetings' # ).get() txt = 'hello' kb = ReplyKeyboardMarkup() buttons = [ KeyboardButton(button_name) for button_name in START_KB.values() ] kb.add(*buttons) bot.send_message(message.chat.id, txt, reply_markup=kb)
def start_menu(self): """ Создает разметку кнопок в основном меню и возвращает разметку """ self.markup = ReplyKeyboardMarkup(True, True) itm_btn_1 = self.set_btn('CHOOSE_ORDER') itm_btn_2 = self.set_btn('CHOOSE_GOODS') itm_btn_3 = self.set_btn('INFO') itm_btn_4 = self.set_btn('SETTINGS') # рассположение кнопок в меню self.markup.row(itm_btn_1, itm_btn_2) self.markup.row(itm_btn_3, itm_btn_4) return self.markup
def mainhandler(message): if message.text == 'Ish': markup = ReplyKeyboardMarkup(row_width=2) markup = mid2_maker(markup) bot.send_message(message.chat.id, text="Ish to'g'risida e'lon berish uchun tanlang", reply_markup=markup) if message.text == 'Savdo': markup = ReplyKeyboardMarkup(row_width=2) markup = mid1_maker(markup) bot.send_message(message.chat.id, text="Savdo to'g'risida e'lon berish uchun tanlang", reply_markup=markup)
def start(message): txt = "Hello!" try: User.objects.get(telegram_id=str(message.from_user.id)) except DoesNotExist: User(telegram_id=str(message.from_user.id)).save() kb = ReplyKeyboardMarkup(resize_keyboard=True) buttons = [KeyboardButton(button_name) for button_name in START_KB.values()] kb.add(*buttons) bot.send_message(message.chat.id, txt, reply_markup=kb)
def ask_second_mark(self, text): if self.excpecting == 'mark_1': self.message(messages['late']) kb = ReplyKeyboardMarkup(one_time_keyboard=True) for i in range(1, 11): kb.add(KeyboardButton(text=str(i))) # kb.add(KeyboardButton(text='\U0001f971')) # kb.add(KeyboardButton(text='\U0001f614')) # kb.add(KeyboardButton(text='\U0001f610')) # kb.add(KeyboardButton(text='\U0001f60a')) # kb.add(KeyboardButton(text='\U0001f60d')) self.bot.send_message(self.id, text, reply_markup=kb)
def make_payment(self): self.markup = ReplyKeyboardMarkup(True, True) itm_btn_1 = self.set_btn('Оплатить карту ' + config.KEYBOARD['PAYMENT']) itm_btn_2 = self.set_btn('Ваши карты клиента') itm_btn_3 = self.set_btn('Сформировать новую карту') itm_btn_4 = self.set_btn('Выход') # рассположение кнопок в меню self.markup.row(itm_btn_1) self.markup.row(itm_btn_2) self.markup.row(itm_btn_3) self.markup.row(itm_btn_4) return self.markup
def movie(message): choice = ["yeh", "meh"] choice_select = ReplyKeyboardMarkup( one_time_keyboard=True) # Converts list of stores to keyboard for i in choice: choice_select.add(i) bot.send_chat_action(message.chat.id, 'typing') # Bot typing action final_choice = bot.send_message( message.chat.id, "legit wanna watch a movie???", reply_markup=choice_select) # Send catch response bot.register_next_step_handler(final_choice, what_movie)
def start_bot(message): #message.text - Текст сообщения #message.chat.id - Айди чата = айди юзера #messsage.from_user.id - айди чата #message.message_id - айди сообщения print(message) kb = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) buttons = [KeyboardButton(value) for value in START_KB.values()] kb.add(*buttons) bot.send_message(message.chat.id, 'Hello', reply_markup=kb)
def main_menu(admin=False): markup = ReplyKeyboardMarkup(True) markup.row('🛒 STORE', '💵 WALLET') markup.row('🗓 ORDER HISTORY', '⚠ SHOP POLICY') if admin: markup.row('👨💻 ADMIN MENU ⚙') return markup
def city_handler(message): user_id = str(message.from_user.id) try: params["q"] = message.text requests.get(weather_api_url, params).json()['name'] except KeyError: bot.reply_to(message, "Incorrect city, try to input the city again") return markup = ReplyKeyboardMarkup(resize_keyboard=True) markup.row("temperature", "pressure", "humidity", "all") bot.send_message(message.chat.id, "What details would you know: temperature, pressure, humidity or all?", reply_markup=markup) change_data(user_id, "states", DETAILS_STATE) change_data(user_id, DETAILS_STATE, message.text)
def send_greetings(message): User.get_or_create_user(message) keyboard = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) keyboard.row('Категории', 'Корзина', 'История заказов') # keyboard.row(*config.START_KEYBOARD.values()) if message.from_user.language_code == 'ru': bot.send_message(message.chat.id, Text.get_text('Ru greetings'), reply_markup=keyboard) elif message.from_user.language_code == 'de': bot.send_message(message.chat.id, Text.get_text('Greetings'), reply_markup=keyboard)
def reply_keyboard(options, is_eng): if is_eng is None or is_eng: option_variant = options[0] else: option_variant = options[1] keyboard = ReplyKeyboardMarkup(resize_keyboard=True) length = len(option_variant) for cur_measure in range(0, length, 2): row = [option_variant[cur_measure]] if cur_measure + 1 < length: row.append(option_variant[cur_measure + 1]) keyboard.row(*row) return keyboard
def current_order_menu(self): """ making markup for work with order :return: """ self.markup = ReplyKeyboardMarkup(True, True) itm_btn_1 = self.set_btn('CHOOSE_ORDER') itm_btn_2 = self.set_btn('CHOOSE_GOODS') itm_btn_3 = self.set_btn('<<') itm_btn_4 = self.set_btn('ORDER') # рассположение кнопок в меню self.markup.row(itm_btn_1, itm_btn_2) self.markup.row(itm_btn_3, itm_btn_4) return self.markup
def handle_end(message): chat_id = message.chat.id correct = USER_STATS[chat_id]["correct"] wrong = USER_STATS[chat_id]["wrong"] message_text = f"Результат: \n" f"Правильные ответы: {correct}\n" f"Неправильные ответы: {wrong}" keyboard = ReplyKeyboardMarkup(row_width=1) keyboard.add(KeyboardButton("Еще раз!")) USER_STATE[chat_id] = FIRST_PLAY bot.send_message(chat_id=chat_id, text=message_text, reply_markup=keyboard)
def go_to_shopping_basket(user): text = f'{user.text("ваш никнейм")}: {user.username}\n' \ f'{user.text("ваше золото")}: {user.gold}\n' \ f'{user.text("ваши товары")}: {user.purchased_goods}\n' \ f'{user.text("товаров в корзине")}: {len(user.shopping_basket)}\n' \ f'{user.help_message}\n\n' \ f'{user.text_with_symbols("корзина"):}\n' for num, products in enumerate(user.shopping_basket, start=1): text += f'{num}) - ' for weapon, properties in products.items(): text += f'{user.text(weapon)}\n' \ f'{user.text("золото")}: {properties["золото"]}\n' \ f'{user.text("количество")}: {properties["количество"]}\n' \ f'{user.text("урон")}: {properties["урон"]}\n' \ f'{user.text("количество ударов")}: {properties["количество ударов"]}\n' \ f'{user.text("кто может владеть")}: {properties["кто может владеть"]}\n' \ f'{"-" * 25}\n' keyboard = ReplyKeyboardMarkup(one_time_keyboard=True) keyboard.row(KeyboardButton(user.button_with_emoji('купить'))) keyboard.row(KeyboardButton(user.button_with_emoji('удалить из корзины'))) keyboard.row(KeyboardButton(user.button_with_emoji('назад'))) user.resend_message(text, keyboard) bot.register_next_step_handler_by_chat_id(user.chat_id, go_to_shopping_basket_handler)
def auto_ria_markup(): markup = ReplyKeyboardMarkup(resize_keyboard=True) btn1 = KeyboardButton('Tesla') btn2 = KeyboardButton('Bmw') btn3 = KeyboardButton('Audi') btn4 = KeyboardButton('Citroen') btn5 = KeyboardButton('Volkswagen') btn6 = KeyboardButton('Chevrolet') btn7 = KeyboardButton('Opel') btn8 = KeyboardButton('Lamborghini') markup.add(btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8) return markup
def start(self, buttons: List[KeyboardButton], text: str = None, force_send=True, chat_id: int = None): if not text: text = Texts.choices[0][0] kb = ReplyKeyboardMarkup(resize_keyboard=True) kb.add(*buttons) if all([force_send, chat_id, text]): self.send_message(chat_id, text, reply_markup=kb) else: return kb
def start(message): from_user_id = message.from_user.id # adding user if new if not User.objects(user_id=from_user_id): User.objects.create(user_id=from_user_id, first_name=message.from_user.first_name, last_name=message.from_user.last_name) kb = ReplyKeyboardMarkup(resize_keyboard=True) kb.add(*[KeyboardButton(text=text) for text in MAIN_MENU.values()]) bot.send_message(message.chat.id, text=Message.objects.get(title='greetings').body, reply_markup=kb)
def messages(message: Message): days_keyboard = ReplyKeyboardMarkup(resize_keyboard=True, row_width=1) ponedelnik = types.KeyboardButton('Понедельник') vtornik = types.KeyboardButton('Вторник') sreda = types.KeyboardButton('Среда') chetverg = types.KeyboardButton('Четверг') pyatnica = types.KeyboardButton('Пятница') days_keyboard.add(ponedelnik, vtornik, sreda, chetverg, pyatnica) menu_keyboard = ReplyKeyboardMarkup(resize_keyboard=True, row_width=1) menu_button = types.KeyboardButton('Вернуться в меню') menu_keyboard.add(menu_button) if 'Узнать расписание на сегодня' in message.text: bot.send_message(message.chat.id, text='<b>Выберите какой сегодня день недели</b>', parse_mode='html', reply_markup=days_keyboard) elif 'Узнать расписание на конкретный день' in message.text: bot.send_message(message.chat.id, text='<b>Выберите день недели</b>', parse_mode='html', reply_markup=days_keyboard) elif 'Понедельник' in message.text: bot.send_message(message.chat.id, text=''' (9:40 - 11:10) Средства и методы управ. кач. (лек.), Тищенко Е.А.\n(11:30 - 13:00) Средства и методы управ. кач. (практ.), Тищенко\n(13:10 - 14:40) Базы данных (лаб.), Зацепин М.Н. ''', reply_markup=menu_keyboard) elif 'Вторник' in message.text: bot.send_message(message.chat.id, text=''' (8:00 - 9:30) Теор. осн. электр. Литвинов С.А.\n(9:40 - 11:10) Архитектура компьютера (лаб.), Пономаренко Т.Н.\n(11:30-13:00) Теория вероят. и мат. статист. (практ.), Шаповалова И.В.\n(13:10 - 14:40) Физкультура ''', reply_markup=menu_keyboard) elif 'Среда' in message.text: bot.send_message( message.chat.id, text= "(8:00 - 9:30) Теор. осн. электр. Литвинов С.А.\n(9:40-11:10) Материаловедение (лек.) Кудашова Д.С.\n(11:30 - 13:00) Материаловедение (практ.) Кудашова Д.С." "\n(13:10 - 14:40) Архитектура компьютера (лек.) Пономаренко Т.Н.", reply_markup=menu_keyboard) elif 'Четверг' in message.text: bot.send_message( message.chat.id, text= '''(13:10 - 14:40) Методы и сред. изм., исп. и кон. (лек.)Тищенко Е.А.\n(15:00 - 16:30) Методы и сред. изм., исп. и кон. (практ.)Тищенко\n(16:40 - 18:10) Статистика (практ.) Бабенко А.И.''', reply_markup=menu_keyboard) elif 'Пятница' in message.text: bot.send_message( message.chat.id, text= '''(13:10 - 14:40) Физкультура\n(15:00 - 16:30) Инновационная экономика (практ.) Щербина К.О.\n(16:40 - 18:10) Метрол, стандарт. и сертиф. (практ.) Cальникова А.А''', reply_markup=menu_keyboard) elif 'Вернуться в меню' in message.text: bot.send_message(message.chat.id, text='<b>Меню</b>', parse_mode='html', reply_markup=markup) else: bot.send_message(message.chat.id, text='Я не понимаю')
def from_dishes(dishes, language: str) -> ReplyKeyboardMarkup: dishes_keyboard = ReplyKeyboardMarkup(resize_keyboard=True, row_width=2) names = [dish.name for dish in dishes] dishes_keyboard.add(*names) dishes_keyboard.add(get_string('go_back', language), get_string('go_to_menu', language)) dishes_keyboard.add(get_string('catalog.cart', language)) return dishes_keyboard
def Settings_Uz(): markup = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) markup.row(InlineKeyboardButton("UZ"), InlineKeyboardButton("RU")) markup.row(InlineKeyboardButton("Xizmatimizni Baholash"), InlineKeyboardButton("ismni ozgartirish"), InlineKeyboardButton("qaytarish")) markup.row(InlineKeyboardButton('Menu'), InlineKeyboardButton('Orqaga')) return markup
def dashboard(): markup = ReplyKeyboardMarkup(resize_keyboard=1) markup.row('Пополнить баланс') markup.row('Посмотреть историю пополнений') markup.row('Задать настройки комиссии') return markup
def account_settings_menu(user): text = f'{user.text_with_symbols("настройка аккаунта")}\n' \ f'{user.text("ваш никнейм")}: {user.username}\n' \ f'{user.text("ваше золото")}: {user.gold}\n' \ f'{user.help_message}' keyboard = ReplyKeyboardMarkup(one_time_keyboard=True) keyboard.row(KeyboardButton(user.button_with_emoji('изменить никнейм'))) keyboard.row(KeyboardButton(user.button_with_emoji('настройка меню')), KeyboardButton(user.button_with_emoji('настройка кнопок'))) keyboard.row(KeyboardButton(user.button_with_emoji('настройка языка'))) keyboard.row(KeyboardButton(user.button_with_emoji('назад'))) # bot.send_message(user.chat_id, text, reply_markup=keyboard) user.resend_message(text, keyboard) bot.register_next_step_handler_by_chat_id(user.chat_id, account_settings_handler)
def send_error(chat_id): key_board = ReplyKeyboardMarkup() key_board.add(*main.buttons.get('start')) bot.send_message(chat_id=chat_id, text=main.greetings.get('error'), reply_markup=key_board)
def dispatch(bot, chats, chat_id, command, message_id): command = command.strip() if command.startswith('/start') or command == 'Поехали' or command == 'Меню': chats[chat_id] = {} key_board = ReplyKeyboardMarkup() key_board.add(*buttons.get('start')) bot.send_message(chat_id=chat_id, text=greetings.get('start'), reply_markup=key_board) key_board = InlineKeyboardMarkup(row_width=3) key_board.add(*buttons.get('main')[0]), key_board.add(*buttons.get('main')[1]), key_board.add(*buttons.get('main')[2]), bot.send_message(chat_id=chat_id, text=greetings.get('main'), reply_markup=key_board) return True elif command == 'Просто сделай это': chat = chats.get(chat_id) if chats.get(chat_id) is not None else {} key_board = InlineKeyboardMarkup(row_width=1) key_board.add(*buttons.get('end')) if chat.get('message_id') is not None: del chat['message_id'] bot.edit_message_text(chat_id=chat_id, message_id=message_id, text='\n\n' + generate(chat) + '\n\n' + greetings['end'], reply_markup=key_board) del chats[chat_id] return True return False