Example #1
0
    def send_date_confirmation(self, call, channel_id):
        day = int(call.data.split(";")[4])
        month = int(call.data.split(";")[5])
        year = int(call.data.split(";")[6])
        date_ = date(year, month, day)

        text = self.data.message.form_calendar_confirm_date(date=date_)
        markup = InlineKeyboardMarkup()

        confirm_callback = self.form_order_callback(action="Confirm", channel_id=channel_id, day=day, month=month, year=year)
        confirm_button = InlineKeyboardButton(text="✅", callback_data=confirm_callback)
        decline_callback = self.form_order_callback(action="Start", channel_id=channel_id, prev_msg_action="Delete")
        decline_button = InlineKeyboardButton(text="❌", callback_data=decline_callback)
        markup.add(confirm_button, decline_button)

        self.send_message(call=call, text=text, reply_markup=markup)
Example #2
0
def show_statistics(message):

    user = Users.get_user(user_id=str(message.chat.id))
    text = STATISTICS_TEXT[user.lang]

    kb = InlineKeyboardMarkup(row_width=1)
    kb.add(*[InlineKeyboardButton(text=text, callback_data=f'{STATISTICS_IND}{SP}{button}')
             for button, text in STRATEGIES_KB.items()])

    try:
        bot.delete_message(message.chat.id, user.last_message())
    except Exception:
        pass

    lm = bot.send_message(message.chat.id, text, reply_markup=kb)
    user.last_message(lm.message_id)
Example #3
0
    def generety_categories_kb(self, categories: List[Union[Category, None]],
                               **kwargs):
        kb = InlineKeyboardMarkup(**kwargs)
        buttons = []
        for category in categories:
            id_ = category.id if category else None
            title_ = category.title if category else Text.get_body(
                Text.RETURN_TO_TOP)

            buttons.append(
                InlineKeyboardButton(
                    title_,
                    callback_data=f'{HENDLER_CATEGORY}{SEPARATOR}{id_}'))

        kb.add(*buttons)
        return kb
Example #4
0
def show_studying_keyboard(message):
    keyboard = InlineKeyboardMarkup()

    keyboard.add(
        InlineKeyboardButton(
            text=f'Методичні матеріали {emojize(":books:", use_aliases=True)}',
            callback_data='study_methods'))
    keyboard.add(
        InlineKeyboardButton(
            text=
            f'Моя успішність {emojize(":chart_with_upwards_trend:", use_aliases=True)}',
            callback_data='my_progress'))

    bot.send_message(message.from_user.id,
                     text='Вибери:',
                     reply_markup=keyboard)
Example #5
0
def show_referrals(call):

    user = Users.get_user(user_id=str(call.message.chat.id))

    kb = InlineKeyboardMarkup(row_width=1)

    if BACK_IND in call.data.split(SP):
        kb.add(*[InlineKeyboardButton(text=text[user.lang], callback_data=f'{ACCOUNT_IND}{SP}{button}')
                 for button, text in ACCOUNT_KB.items()])
        bot.edit_message_text(ACCOUNT_TEXT[user.lang], call.message.chat.id, call.message.message_id, reply_markup=kb)
    else:
        status = user.ref_status

        kb.add(InlineKeyboardButton(text=BACK_BUTTON[user.lang],
                                    callback_data=f'{ACCOUNT_IND}{SP}{REFERRALS_IND}{SP}{BACK_IND}'))
        bot.edit_message_text(status, call.message.chat.id, call.message.message_id, reply_markup=kb)
Example #6
0
def online_buttons():
    markup = InlineKeyboardMarkup()
    markup.row_width = 3

    button_counts = [0, 0, 0]
    for short_status in people_list.values():
        status_group = messages_db[short_status[0]][0]
        button_counts[status_group] += 1

    inline_buttons = []
    for i in range(3):
        inline_buttons.append(
            InlineKeyboardButton(f"{status_groups[i][:2]} {button_counts[i]}",
                                 callback_data=f"cb_group{i}"))
    markup.add(*inline_buttons)
    return markup
Example #7
0
def categories(message):
    kb = InlineKeyboardMarkup()
    for product in Product.get_promo_products():
        if int(product.discount_price) < int(product.price):
            price = f'{product.discount_price}'
        else:
            price = product.price
        button = [
            InlineKeyboardButton(text=f'{product.title[0:15]} Цена: {price}',
                                 callback_data=f'producttocar_{product.id}')
        ]
        kb.add(*button)

    bot.send_message(message.chat.id,
                     'Список акционных товаров:',
                     reply_markup=kb)
Example #8
0
def prj_button(user_id, soldate):
    prj = dbase.check_prj(user_id, soldate)
    print(prj)
    markup = InlineKeyboardMarkup()
    row = []
    for have in prj:
        row.append(
            types.InlineKeyboardButton(dbase.get_name_project(have[0]),
                                       callback_data="tap-project" +
                                       str(have[0])))
    markup.row(*row)
    row = []
    row.append(
        types.InlineKeyboardButton("↩️", callback_data="back_to_calendar"))
    markup.row(*row)
    return markup
Example #9
0
def training(d: Dictionary, phrase: Phrase,
             dst_lang: Language) -> InlineKeyboardMarkup:
    kb = InlineKeyboardMarkup()
    kb.add(
        handlers.dict_training_phrase(_('Yes'),
                                      dict_id=d.id,
                                      phrase_id=phrase.id,
                                      dst_lang_id=dst_lang.id,
                                      is_guessed=1),
        handlers.dict_training_phrase(_('No'),
                                      dict_id=d.id,
                                      phrase_id=phrase.id,
                                      dst_lang_id=dst_lang.id,
                                      is_guessed=0),
        handlers.training_done(_('Done'), d.id))
    return kb
Example #10
0
def show_department_callback(call):
    bot.answer_callback_query(call.id, "Ответ получен, загружаем данные!")
    un_id = call.data.split('#')[1]
    objects = postgre.get_departments_by_un_id(int(un_id))
    markup = InlineKeyboardMarkup()
    if objects is not None:
        for obj in objects:
            callback = str(obj[0]) + "_" + 'departments'
            markup.add(InlineKeyboardButton(obj[1], callback_data=callback))

    callback = 'back_from_departments' + '#' + un_id
    markup.add(InlineKeyboardButton('« Назад к университетам', callback_data=callback),
               InlineKeyboardButton('Нет моего факультета', callback_data='request_for_updates'))
    text = "Для этого университета на данный момент *доступны следующие факультеты:*"
    bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, parse_mode='Markdown',
                          text=text, reply_markup=markup)
def create_markup_delete(user_a_id, user_b_id):
    markup = InlineKeyboardMarkup(row_width=3)

    delete_buddy_but = InlineKeyboardButton(
        text="Удалить из приятелей",
        callback_data=f"user_profile_viewer_delete_buddy_{user_a_id}"
        f"_{user_b_id}")

    cancel_but = InlineKeyboardButton(
        text="Назад",
        callback_data="user_profile_viewer_cancel")

    markup.add(delete_buddy_but)
    markup.add(cancel_but)

    return markup
def events_inline_keyboard(events_ids=[], user=None, language='ua'):
    keyboard = InlineKeyboardMarkup(row_width=7)

    user_events_ids = [obj.event_id for obj in user.events.all()]
    buttons = [InlineKeyboardButton("<", callback_data=f"page_down")]

    for i, event_id in enumerate(events_ids):  # event_id is event's primary key (id)
        if event_id in user_events_ids:
            buttons.append(InlineKeyboardButton(f"{i+1} ✅ ", callback_data=f"sub_{event_id}"))
        else:
            buttons.append(InlineKeyboardButton(i+1, callback_data=f"sub_{event_id}"))

    buttons.append(InlineKeyboardButton(">", callback_data=f"page_up"))
    keyboard.add(*buttons)

    return keyboard
Example #13
0
def gen_markup(db, key=None):

    markup = InlineKeyboardMarkup()

    if key == 'trips_list':
        trips = db['trips']
        for k in trips:

            trip = trips[k]['title']

            print('trips_list:>>>>>', trip, '  id - ', k)
            markup.add(InlineKeyboardButton(
                trip, callback_data=k))  #str(trips[k]['id'])

    elif key == 'new_trip':
        markup.add(InlineKeyboardButton('Заголовок', callback_data='title'),
                   InlineKeyboardButton('Дата', callback_data='date'),
                   InlineKeyboardButton('Описание', callback_data='descr'),
                   InlineKeyboardButton('Фото', callback_data='pic'),
                   InlineKeyboardButton('Условия', callback_data='cond'),
                   InlineKeyboardButton('Цена', callback_data='price'))

        markup.add(InlineKeyboardButton('Постим?', callback_data='post'))

    elif key == 'register':
        print('get_trips_markup<<<<<<<reg<<<<<<<<<<', db.keys())
        for k in db['price']:
            markup.add(
                InlineKeyboardButton(f'Register for: {k}', callback_data=k))
            print(k, type(k))

#    elif key == 'usr_data':
#        markup.add(KeyboardButton('Телефон',
#                                  request_location = False,
#                                  request_contact = True))

    else:
        print('get_trips_markup<<<<<<<else<<<<<<<<<<')
        pass


#        for k in trips:
#            markup.add(InlineKeyboardButton(trips[k], callback_data = trips[k]))

    markup.add(InlineKeyboardButton('Назад', callback_data='back'))

    return markup
Example #14
0
    def adding_book(self, message: Message):
        """
        Respond to a message asking to add, and then
         asks the user to add a book to the subscription using the buttons.

        If the link is not valid, then a message is sent asking
         to enter the correct link and the error is logged
        If the image does not exist, only text is sent.
        """

        logger.show_msg(message)
        markup = InlineKeyboardMarkup()
        markup.add(InlineKeyboardButton(text="Да", callback_data="add_link"))
        markup.add(
            InlineKeyboardButton(text="Нет", callback_data="no_add_link"))
        parser = ParserManager()

        try:
            link = message.text.strip()
            book = parser.parsing_book(link)
            image_path = f"images/{book['image_name']}"
            case_rub = f'рубл{detail.ruble_cases[book["price"] % 100]}'

            if os.path.exists(image_path):
                self.uploading_photo(0.5, message)
                reply_msg = self.bot.send_photo(
                    message.chat.id,
                    photo=open(image_path, 'rb'),
                    caption='Вы уверены, что хотите добавить:\n'
                    f'"{book["title"]}" за {book["price"]} {case_rub}?',
                    reply_markup=markup)

                logger.show_caption_photo(reply_msg)
            else:
                reply_msg = self.bot.send_message(
                    message.chat.id,
                    text='Вы уверены, что хотите добавить:\n'
                    f'"{book["title"]}" за {book["price"]} {case_rub}?',
                    reply_markup=markup)
                logger.show_msg(reply_msg)
            self.book_to_add[reply_msg.message_id] = book

        except:
            self.typing(1, message)
            error_msg = self.bot.send_message(message.chat.id,
                                              "Введите правильную ссылку!")
            logger.show_msg(error_msg)
    def __ProcessChangeQuantity(self, msg: str):
        if msg == ld.CancelKey or msg == "/start":
            print(self.username +
                  " has been cancelled changing request process")
            self.__deleteProcessMessage()
            self.Start()
            return
        if not (msg == ld.SkipKey):
            try:
                parsedValue = self.__GetNumberFromString(msg)
                if not parsedValue:
                    raise Exception("Parsing error!")
                self.__quantity = parsedValue
            except:
                self.__bot.send_message(
                    self.__chatId,
                    ld.get_translate(self.__db, self.username,
                                     ld.WrongInputKey))
                return

        self.__deleteProcessMessage()
        self.currentStep = RequestSteps.ChangeFeeType
        keyboard = InlineKeyboardMarkup(row_width=2)
        keyboard.row(
            InlineKeyboardButton(ld.get_translate(self.__db, self.username,
                                                  ld.SellerKey),
                                 callback_data=ld.SellerKey),
            InlineKeyboardButton(ld.get_translate(self.__db, self.username,
                                                  ld.BuyerKey),
                                 callback_data=ld.BuyerKey))
        keyboard.row(
            InlineKeyboardButton(ld.get_translate(self.__db, self.username,
                                                  ld.NobodyKey),
                                 callback_data=ld.NobodyKey))
        keyboard.row(
            InlineKeyboardButton(ld.get_translate(self.__db, self.username,
                                                  ld.CancelKey),
                                 callback_data=ld.CancelKey),
            InlineKeyboardButton(ld.get_translate(self.__db, self.username,
                                                  ld.SkipKey),
                                 callback_data=ld.SkipKey))
        reply = self.__bot.send_message(self.__chatId,
                                        ld.get_translate(
                                            self.__db, self.username,
                                            ld.SelectWhoPayFee),
                                        reply_markup=keyboard)
        self.__processMsgId = reply.message_id
Example #16
0
def callbackAdditionalButtons(call):
  chatId = call.message.chat.id
  currentChat = Chats.getChat(chatId)
  settingsStrings = call.replies.stg.strings

  # ? All buttons
  # * Edit values buttons
  if call.data == 'stgEditValues':
    botReplies = call.replies.stg
    userDmId = currentChat.settings.lastMessageId[1]

    # * Creating a markup with all settings names, whose value can be edited
    markup = InlineKeyboardMarkup()
    for setting in settingsStrings:
      for button in setting:
        if button[2]:
          # * Converts in a strange way to get 'Test String' from 'testString'
          text = settingForUser(button[3])
          tempButton = InlineKeyboardButton(
            text,
            callback_data=dumps([
              button[1].replace('stg', 'edit'),
              button[3]
            ])
          )
          markup.row(tempButton)

    checkChat(userDmId)
    dmChat = Chats.getChat(userDmId)
    dmChat.settings.editMessageInfo['originalChatId'] = call.message.chat.id
    dmChat.save()

    originalChatUsername = call.message.chat.username
    if originalChatUsername:
      addUrlButton(markup, call.replies.goToChat[0], originalChatUsername)

    bot.send_message(userDmId, botReplies.editorMessage, reply_markup=markup)

  # * More info button
  if call.data == 'stgMoreInfo':
    allSettingsNames = []
    for setting in settingsStrings:
      for button in setting:
        allSettingsNames.append(settingForUser(button[3]))

    text = '\n\n'.join(call.replies.stg.additionalInfo).format(*allSettingsNames)
    bot.send_message(chatId, text, parse_mode='html')
Example #17
0
def menu(message):
    markup = InlineKeyboardMarkup(row_width=2)
    kanal = InlineKeyboardButton("📣 Kanalımız", url="https://t.me/WixströfkdmraGod")
    koruma = InlineKeyboardButton("Korumaya Al 🛡️", url="https://t.me/kdhsnfkdbot?startgroup=a")
    markup.add(kanal,koruma)
    bot.send_message(message.chat.id, """
*Spam Protector*
_Gruplarınızı Korumak Amacı İle Yapılan Bir Bottur Botun Mantığı Spam Barındıran İçerikleri Gizlediği İçin Grubunuz Spama Düşmez Bölelikle Spam Tehlikesi Ortadan Kalkar_
*Yapmanız Gerekenler*

_•Grubunuza Eklemek. (Korumaya Al Butonuna Tıklayarak) 1.Adım_
_•Full Yetkiye Sahip Olması İle Grubunuz Güvende Olacaktır. (Yetki Veriniz) 2.Adım_
_•Grup İçerisinde /spam komutunu yazmak (Komutu Yazmak) 3. Adım_

_LÜTFEN GRUBUNUZA EKLEDİKTEN VE YETKİ VERDİKTEN SONRA GRUP
İÇERİSİNDE /spam YAZINIZ YOKSA KORUMA İŞLEMİ KAYIT ALITINA ALINMAZ_
""", reply_markup=markup, parse_mode="Markdown")
Example #18
0
    def sendDriverAgreeInline(self, bot, chatId, driverId, harga, orderId):
        # send only one button
        driver = self.dbconnector.read(driverId)
        nama = driver.nama
        alamat = driver.location['address']
        lat = driver.location['location']['latitude']
        lng = driver.location['location']['longitude']
        response = 'Driver ' + nama + ' INGIN harga ' + harga + '\n'

        markup = InlineKeyboardMarkup(row_width=1)
        data = orderId + '@&' + 's@&' + driverId + '@&n'

        itembtn2 = InlineKeyboardButton('Pilih', callback_data=data)
        markup.add(itembtn2)

        bot.send_message(chatId, response, reply_markup=markup)
        bot.send_venue(chatId, lat, lng, 'Lokasi pengemudi', alamat)
Example #19
0
def print_settings(chatId):
    try:
        key = InlineKeyboardMarkup()
        button = InlineKeyboardButton(text='Вкл/Выкл уведомления',
                                      callback_data='notifications')
        key.add(button)
        user = backend.get_user(chatId)
        notifications = user['notifications']
        status = 'Уведомления: '
        if notifications:
            status += '🟢'
        else:
            status += '🔴'
        bot.send_message(chatId, status, reply_markup=key)
    except Exception as err:
        bot.send_message(chatId, "Произошла ошибка")
        print('Произошла ошибка при выводе настроек пользователя', err)
Example #20
0
def second_categories(message):
    chat_id = message.from_user.id

    keyboard = InlineKeyboardMarkup()

    keyboard.row_width = 1

    _, ctgs = get_ctgs()

    for ctg in ctgs:
        if ctgs.index(ctg) > 58:
            keyboard.add(InlineKeyboardButton(ctg.replace("'", "\'"), callback_data=str(ctgs.index(ctg))))

    keyboard.add(InlineKeyboardButton('Еще категории', callback_data='e2'),
                 InlineKeyboardButton('Меню', callback_data='m'))
    bot.send_message(chat_id, 'Выберите категорию из списка', reply_markup=keyboard)
    return
def faq_markup():
    markup = InlineKeyboardMarkup()
    markup.row_width = 2
    markup.add(InlineKeyboardButton("Office", callback_data="get_halloffice"),
               InlineKeyboardButton("Committees", callback_data="get_committees"),
               InlineKeyboardButton("Sponsorship/PDPA", callback_data="get_sponsorship_markup"),
               InlineKeyboardButton("Finance Matters", callback_data="get_finance"),
               InlineKeyboardButton("Facilities booking", callback_data="get_booking"),
               InlineKeyboardButton("Media Facilities", callback_data="get_media_facilities"),
               InlineKeyboardButton("Report Faults", callback_data="get_report"),
               InlineKeyboardButton("Points System", callback_data="get_points"),
               InlineKeyboardButton("Demerit Points", callback_data="get_demerit"),
               InlineKeyboardButton("PAL Programme", callback_data="get_pal"),
               InlineKeyboardButton("The Eusoff Awards", callback_data="get_tea"),
               InlineKeyboardButton("Map of Eusoff", callback_data="get_map"),
               InlineKeyboardButton("Main Page", callback_data="get_main"))
    return markup
Example #22
0
    def TIMEZONES_INLINE(self):
        back_btn = InlineKeyboardButton('<<Back', callback_data='timezone')
        keyboard = InlineKeyboardMarkup(row_width=2)

        for i in range(5):
            keyboard.row(
                InlineKeyboardButton("MSK" + self.timezones[i],
                                     callback_data="timezone_change_" +
                                     self.timezones[i]),
                InlineKeyboardButton("MSK" + self.timezones[6 + i],
                                     callback_data="timezone_change_" +
                                     self.timezones[6 + i]))
        keyboard.row(
            InlineKeyboardButton("MSK" + self.timezones[5],
                                 callback_data="timezone_change_" +
                                 self.timezones[5]), back_btn)
        return {'text': 'Choose timezone:', 'keyboard': keyboard}
Example #23
0
def vote(game):
    keyboard = InlineKeyboardMarkup(row_width=8)
    keyboard.add(*[
        InlineKeyboardButton(text=f'{i + 1}', callback_data=f'vote {i + 1}')
        for i, player in enumerate(game['players']) if player['alive']
    ])
    keyboard.add(
        InlineKeyboardButton(text='Не голосовать', callback_data='vote 0'))

    message_id = bot.send_message(game['chat'],
                                  lang.vote.format(vote=get_votes(game)),
                                  reply_markup=keyboard).message_id

    database.games.update_one({'_id': game['_id']},
                              {'$set': {
                                  'message_id': message_id
                              }})
def keyboa_maker(
    items: BlockItems = None,
    front_marker: CallbackDataMarker = None,
    back_marker: CallbackDataMarker = None,
    items_in_row: int = None,
    auto_alignment: Union[bool, Iterable] = False,
    reverse_alignment_range: bool = False,
    slice_start: int = None,
    slice_stop: int = None,
    slice_step: int = None,
    copy_text_to_callback: bool = False,
    add_to_keyboard: InlineKeyboardMarkup = None,
) -> InlineKeyboardMarkup:
    """
    :param items:
    :param front_marker:
    :param back_marker:
    :param items_in_row:
    :param auto_alignment:
    :param reverse_alignment_range:
    :param slice_start:
    :param slice_stop:
    :param slice_step:
    :param copy_text_to_callback:
    :param add_to_keyboard:
    :return:
    """
    keyboard = add_to_keyboard if add_to_keyboard else InlineKeyboardMarkup()

    if items is None:
        return keyboard

    items = get_verified_items(items, slice_start, slice_stop, slice_step)

    _keyboa_pre_check(items=items,
                      items_in_row=items_in_row,
                      keyboard=keyboard)

    if items_in_row or auto_alignment:
        return get_generated_keyboard(items, front_marker, back_marker,
                                      items_in_row, auto_alignment,
                                      reverse_alignment_range,
                                      copy_text_to_callback, keyboard)

    return get_preformatted_keyboard(items, front_marker, back_marker,
                                     copy_text_to_callback, keyboard)
Example #25
0
    def HOURS_INLINE(self, when):
        back_btn = InlineKeyboardButton('<<Back', callback_data=when)
        go_to_min_btn = InlineKeyboardButton('Change minutes >>',
                                             callback_data='go_to_min_' + when)
        keyboard = InlineKeyboardMarkup(row_width=6)
        for i in range(4):
            s = []
            for j in range(6):
                h = 6 * i + j
                s.append(
                    InlineKeyboardButton(str(h),
                                         callback_data='hour_' + when + '_' +
                                         str(h)))
            keyboard.row(s[0], s[1], s[2], s[3], s[4], s[5])
        keyboard.row(back_btn, go_to_min_btn)

        return keyboard
Example #26
0
def buy_product(call):
    keyboard = InlineKeyboardMarkup()
    back = InlineKeyboardButton(
        text='<< back',
        callback_data=f'look my cart_{call.data.split("_")[1]}')
    keyboard.add(back)

    bot.edit_message_text(text='You bought!.',
                          chat_id=call.message.chat.id,
                          message_id=call.message.message_id,
                          reply_markup=keyboard)

    user_id = models.User.objects(id_user=str(call.from_user.id)).first()
    cart_user = models.Cart.objects(user=user_id.id, active=True).first()
    cart_user.update(active=False, date_time=datetime.datetime.now())
    print('bbbb')
    print(datetime.datetime.now())
Example #27
0
def get_topic_links_keyboard(len_links, state_link=0):
    keyboard = InlineKeyboardMarkup()

    button_next = InlineKeyboardButton(text="»", callback_data="next_link")
    button_prev = InlineKeyboardButton(text="«", callback_data="prev_link")
    button_topics = InlineKeyboardButton(text="выбрать другую тему",
                                         callback_data="alt_topic")

    if state_link == 0 and state_link < len_links:
        keyboard.add(button_next)
    elif state_link > 0 and state_link < len_links:
        keyboard.add(button_prev, button_next)
    elif state_link > 0 and state_link == len_links:
        keyboard.add(button_prev)
    keyboard.add(button_topics)

    return keyboard
Example #28
0
def products_by_cat(call):
    user = get_user(call.message)
    category = Category.objects.filter(id=get_id(call)).first()
    products = category.category_products[:5]
    for p in products:
        keyboard = InlineKeyboardMarkup(row_width=1)
        keyboard.add(
            InlineKeyboardButton(
                text=Texts.get_text('add_to_cart', user.language),
                callback_data=f'{Modules.ADD_TO_CART}_{p.id}'),
            InlineKeyboardButton(text=Texts.get_text('more_info',
                                                     user.language),
                                 callback_data=f'{Modules.PRODUCT}_{p.id}'))
        bot.send_photo(user.telegram_id,
                       photo=SHOP_URL + p.image_url,
                       caption=p.title,
                       reply_markup=keyboard)
Example #29
0
def shooting_stage(game):
    players = [(i, player) for i, player in enumerate(game['players'])
               if player['alive']]
    random.shuffle(players)

    keyboard = InlineKeyboardMarkup(row_width=8)
    keyboard.add(*[
        InlineKeyboardButton(text=f'{i + 1}', callback_data=f'shot {i + 1}')
        for i, player in players
    ])

    bot.edit_message_text(
        f'{role_titles["mafia"].capitalize()} выбирает жертву.\n' +
        format_roles(game),
        chat_id=game['chat'],
        message_id=game['message_id'],
        reply_markup=keyboard)
Example #30
0
        def process_name_step(message):
            try:
                chat_id = message.chat.id
                name = message.text
                order = Order(name)
                self.user_dict[chat_id] = order
                update_stat(order, message.from_user)

                markup = InlineKeyboardMarkup()
                markup.row_width = 2
                markup.add(InlineKeyboardButton("היום", callback_data="cb_day_today"),
                           InlineKeyboardButton("מחר", callback_data="cb_day_tomorrow"))
                markup = self.add_reset(markup)
                msg = self.bot.reply_to(message, 'איזה יום נוח לך?', reply_markup=markup)

            except Exception as e:
                self.bot.reply_to(message, 'oooops')