Beispiel #1
0
# Вариант 1, как в прошлом уроке
# choice = InlineKeyboardMarkup(inline_keyboard=[
#     [
#         InlineKeyboardButton(text="Купить грушу", callback_data=buy_callback.new(item_name="pear")),
#         InlineKeyboardButton(text="Купить яблоки", callback_data="buy:apple")
#     ],
#     [
#         InlineKeyboardButton(text="Отмена", callback_data="next")
#     ]
# ])


# Вариант 2 - с помощью row_width и insert.
choice = InlineKeyboardMarkup(row_width=2)

buy_pear = InlineKeyboardButton(text="Купить грушу", callback_data=buy_callback.new(item_name="pear", quantity=1))
choice.insert(buy_pear)

buy_apples = InlineKeyboardButton(text="Купить яблоки", callback_data="buy:apple:5")
choice.insert(buy_apples)

cancel_button = InlineKeyboardButton(text="Отмена", callback_data="cancel")
choice.insert(cancel_button)

# А теперь клавиатуры со ссылками на товары
pear_keyboard = InlineKeyboardMarkup(inline_keyboard=[
    [
        InlineKeyboardButton(text="Купи тут", url="https://rozetka.com.ua/champion_a00225/p27223057")
    ]
])
apples_keyboard = InlineKeyboardMarkup(inline_keyboard=[
Beispiel #2
0
    async def _confirmation_callback(
        self,
        offer_id: ObjectId,
        op: typing.Mapping[str, typing.Any],
        trx_id: str,
        block_num: int,
    ) -> bool:
        """Confirm found block with transaction.

        Notify escrow asset sender and check if block is confirmed.
        If it is, continue exchange. If it is not, send warning and
        update ``transaction_time`` of escrow offer.

        :param offer_id: ``_id`` of escrow offer.
        :param op: Operation object to confirm.
        :param trx_id: ID of transaction with desired operation.
        :param block_num: Number of block to confirm.
        :return: True if transaction was confirmed and False otherwise.
        """
        offer = await database.escrow.find_one({"_id": offer_id})
        if not offer:
            return False

        if offer["type"] == "buy":
            new_currency = "sell"
            escrow_user = offer["init"]
            other_user = offer["counter"]
        elif offer["type"] == "sell":
            new_currency = "buy"
            escrow_user = offer["counter"]
            other_user = offer["init"]

        answer = i18n(
            "transaction_passed {currency}",
            locale=escrow_user["locale"]).format(currency=offer[new_currency])
        await tg.send_message(escrow_user["id"], answer)
        is_confirmed = await create_task(self.is_block_confirmed(
            block_num, op))
        if is_confirmed:
            await database.escrow.update_one(
                {"_id": offer["_id"]},
                {"$set": {
                    "trx_id": trx_id,
                    "unsent": True
                }})
            keyboard = InlineKeyboardMarkup()
            keyboard.add(
                InlineKeyboardButton(
                    i18n("sent", locale=other_user["locale"]),
                    callback_data="tokens_sent {}".format(offer["_id"]),
                ))
            answer = markdown.link(
                i18n("transaction_confirmed", locale=other_user["locale"]),
                self.trx_url(trx_id),
            )
            answer += "\n" + i18n("send {amount} {currency} {address}",
                                  locale=other_user["locale"]).format(
                                      amount=offer[f"sum_{new_currency}"],
                                      currency=offer[new_currency],
                                      address=markdown.escape_md(
                                          escrow_user["receive_address"]),
                                  )
            answer += "."
            await tg.send_message(
                other_user["id"],
                answer,
                reply_markup=keyboard,
                parse_mode=ParseMode.MARKDOWN,
            )
            return True

        await database.escrow.update_one(
            {"_id": offer["_id"]}, {"$set": {
                "transaction_time": time()
            }})
        answer = i18n("transaction_not_confirmed",
                      locale=escrow_user["locale"])
        answer += " " + i18n("try_again", locale=escrow_user["locale"])
        await tg.send_message(escrow_user["id"], answer)
        return False
Beispiel #3
0
def language_markup(lang):
    return InlineKeyboardMarkup(inline_keyboard=[[
        InlineKeyboardButton(f"[{value}]" if lang == key else value,
                             callback_data=LanguageCD.new(key))
    ] for key, value in AVAILABLE_LANGUAGES.items()])
Beispiel #4
0
async def set_init_send_address(address: str, message: types.Message,
                                offer: EscrowOffer):
    """Set ``address`` as sender's address of initiator.

    Send offer to counteragent.
    """
    locale = offer.counter["locale"]
    buy_keyboard = InlineKeyboardMarkup()
    buy_keyboard.row(
        InlineKeyboardButton(i18n("show_order", locale=locale),
                             callback_data=f"get_order {offer.order}"))
    buy_keyboard.add(
        InlineKeyboardButton(i18n("accept", locale=locale),
                             callback_data=f"accept {offer._id}"),
        InlineKeyboardButton(i18n("decline", locale=locale),
                             callback_data=f"decline {offer._id}"),
    )
    mention = markdown.link(offer.init["mention"],
                            User(id=offer.init["id"]).url)
    answer = i18n(
        "escrow_offer_notification {user} {sell_amount} {sell_currency} "
        "for {buy_amount} {buy_currency}",
        locale=locale,
    ).format(
        user=mention,
        sell_amount=offer.sum_sell,
        sell_currency=offer.sell,
        buy_amount=offer.sum_buy,
        buy_currency=offer.buy,
    )
    if offer.bank:
        answer += " " + i18n("using {bank}",
                             locale=locale).format(bank=offer.bank)
    answer += "."
    update_dict = {"init.send_address": address}
    if offer.type == "sell":
        insured = await get_insurance(offer)
        update_dict["insured"] = Decimal128(insured)
        if offer[f"sum_{offer.type}"].to_decimal() > insured:
            answer += "\n" + i18n(
                "exceeded_insurance {amount} {currency}").format(
                    amount=insured, currency=offer[offer.type])
    await offer.update_document({
        "$set": update_dict,
        "$unset": {
            "pending_input_from": True
        }
    })
    await tg.send_message(
        offer.counter["id"],
        answer,
        reply_markup=buy_keyboard,
        parse_mode=ParseMode.MARKDOWN,
    )
    sell_keyboard = InlineKeyboardMarkup()
    sell_keyboard.add(
        InlineKeyboardButton(i18n("cancel"),
                             callback_data=f"escrow_cancel {offer._id}"))
    await tg.send_message(message.from_user.id,
                          i18n("offer_sent"),
                          reply_markup=sell_keyboard)
    await dp.current_state().finish()
Beispiel #5
0
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton, ReplyKeyboardMarkup, KeyboardButton

inline_choose_menu = InlineKeyboardMarkup(inline_keyboard=[[
    InlineKeyboardButton(text="Я клиент", callback_data="customer")
], [InlineKeyboardButton(text="Я сотрудник", callback_data="employee")
    ], [InlineKeyboardButton(text="Я менеджер", callback_data="manager")]])

customer_menu = InlineKeyboardMarkup(
    row_width=2,
    inline_keyboard=[
        [InlineKeyboardButton(text="Услуги", callback_data="services")],
        [InlineKeyboardButton(text="Где находится", callback_data="where_is")],
        [
            InlineKeyboardButton(text="Контакты", callback_data="contacts"),
            InlineKeyboardButton(text="Оставить данные",
                                 callback_data="leave_contacts")
        ],
        [
            InlineKeyboardButton(text="Назад",
                                 callback_data="back_to_choose_menu")
        ]
    ])

employee_keyboard = InlineKeyboardMarkup(
    row_width=2,
    inline_keyboard=[[
        InlineKeyboardButton(text="Я пришел",
                             callback_data="employee_arrived"),
        InlineKeyboardButton(text="Информация", callback_data="employee_info")
    ], [
        InlineKeyboardButton(text="Назад", callback_data="back_to_choose_menu")
Beispiel #6
0
 def create(recipe: Recipe):
     select_button = InlineKeyboardButton(
         'Выбрать', callback_data=f'select_recipe_{recipe.id}')
     keyboard = InlineKeyboardMarkup(inline_keyboard=[[select_button]])
     return keyboard
Beispiel #7
0
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton

from keyboards.inline.callback_datas import place_callback, pagination_call

choice_p = InlineKeyboardMarkup(inline_keyboard=[
    [
        InlineKeyboardButton(text="Советский",
                             callback_data=place_callback.new(
                                 item_name="sov_r")),
        InlineKeyboardButton(text="Кировский",
                             callback_data=place_callback.new(
                                 item_name="kir_r")),
    ],
    [
        InlineKeyboardButton(text="Железнодорожный",
                             callback_data=place_callback.new(
                                 item_name="rai_r")),
        InlineKeyboardButton(text="Ворошиловский",
                             callback_data=place_callback.new(
                                 item_name="vor_r"))
    ],
    [
        InlineKeyboardButton(text="Октябрьский",
                             callback_data=place_callback.new(
                                 item_name="oct_r")),
        InlineKeyboardButton(text="Ленинский",
                             callback_data=place_callback.new(
                                 item_name="len_r")),
    ],
    [
        InlineKeyboardButton(text="Первомайский",
Beispiel #8
0
            KeyboardButton(text='Азии'),
            KeyboardButton(text='КЫРГЫЗСТАН'),
            KeyboardButton(text='Демир')
        ],
        [
            KeyboardButton(text='Кыргызкоммерцбанк'),
            KeyboardButton(text='Керемет')
        ]
    ], resize_keyboard=True
)

optima = InlineKeyboardMarkup(
    row_width=2,
    inline_keyboard=[
        [
            InlineKeyboardButton(text='USD', callback_data='optima_usd'),
            InlineKeyboardButton(text='EUR', callback_data='optima_eur')
        ], [
            InlineKeyboardButton(text='RUB', callback_data='optima_rub'),
            InlineKeyboardButton(text='KZT', callback_data='optima_kzt')
        ]
    ]
)

rsk = InlineKeyboardMarkup(
    row_width=2,
    inline_keyboard=[
        [
            InlineKeyboardButton(text='USD', callback_data='rsk_usd'),
            InlineKeyboardButton(text='EUR', callback_data='rsk_eur')
        ], [
def related_artists_keyboard(related, main_artist_id):
    kb = InlineKeyboardMarkup(1)
    for i, artist in enumerate(related[:10], start=1):
        kb.insert(InlineKeyboardButton(f'{i}. {artist.name}', callback_data=new_callback('artist', artist.id, 'send')))
    kb.insert(InlineKeyboardButton('Go back', callback_data=new_callback('artist', main_artist_id, 'main')))
    return kb
def generate_reply_keyboard_for_tasks_start():
    keyboard = InlineKeyboardMarkup()
    keyboard.insert(InlineKeyboardButton('Отмена', callback_data='cancel'))
    return keyboard
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton

exit_from_food_panel = InlineKeyboardMarkup(inline_keyboard=[[
    InlineKeyboardButton(text='Отмена',
                         callback_data='canteen_write_food_exit')
]])
def generate_reply_keyboard_for_tasks_done():
    keyboard = InlineKeyboardMarkup()
    keyboard.add(InlineKeyboardButton('Назад', callback_data='back'))
    keyboard.insert(InlineKeyboardButton('Отмена', callback_data='cancel'))
    keyboard.insert(InlineKeyboardButton('Подтверждаю', callback_data='done'))
    return keyboard
Beispiel #13
0
from aiogram import Bot, Dispatcher, types, executor
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
import asyncio
import aiohttp
token = '1225831912:AAG60sUGFoeRVePSufgLFM0Xaat176T2t1o'
bot = Bot(token)
dp = Dispatcher(bot)

inline_btn_1 = InlineKeyboardButton('Предложить новость',
                                    callback_data='add_news')
inline_btn_2 = InlineKeyboardButton('Вывести деньги',
                                    callback_data='get_money')
inline_btn_3 = InlineKeyboardButton('6🕕', callback_data='time6')
inline_btn_4 = InlineKeyboardButton('7🕖', callback_data='time7')
inline_btn_5 = InlineKeyboardButton('8🕗', callback_data='time8')
inline_btn_6 = InlineKeyboardButton('9🕘', callback_data='time9')
inline_btn_7 = InlineKeyboardButton('10🕙', callback_data='time10')
inline_btn_8 = InlineKeyboardButton('11🕚', callback_data='time11')
inline_btn_9 = InlineKeyboardButton('12🕛', callback_data='time12')
inline_kb1 = InlineKeyboardMarkup().add(inline_btn_1, inline_btn_2)


@dp.callback_query_handler()
async def process_callback_button1(callback_query: types.CallbackQuery):
    await bot.answer_callback_query(callback_query.id)
    if callback_query.data == 'add_news':
        await bot.edit_message_text(
            chat_id=callback_query.message.chat.id,
            message_id=callback_query.message.message_id,
            text=
            "Отправьте всю информацию которую хотите опубликовать одним сообщением"
def confirmInlineButton(callbackType: str) -> InlineKeyboardButton:
    return InlineKeyboardButton(
        text = '🆗',
        callback_data = CONFIRM_BUTTON_CALLBACK_OBJECT.new(type = callbackType)
    )
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
from callback import remember_callback

choice = InlineKeyboardMarkup(
    inline_keyboard=[[
        InlineKeyboardButton(text="\"Ван Гог\"",
                             callback_data=remember_callback.new(
                                 item_name="First")),
        InlineKeyboardButton(text="Перенос стилей",
                             callback_data=remember_callback.new(
                                 item_name="Second"))
    ],
                     [
                         InlineKeyboardButton(text="Отмена",
                                              callback_data=remember_callback.
                                              new(item_name="Abort"))
                     ]])

yes_or_no = InlineKeyboardMarkup(
    inline_keyboard=[[
        InlineKeyboardButton(
            text="Да", callback_data=remember_callback.new(item_name="Yep"))
    ],
                     [
                         InlineKeyboardButton(text="Нет",
                                              callback_data=remember_callback.
                                              new(item_name="Nope"))
                     ]])
Beispiel #16
0
def artist_radio_keyboard(radio, artist_id):
    kb = InlineKeyboardMarkup(1)
    for i, track in enumerate(radio, start=1):
        kb.insert(InlineKeyboardButton(f'{i}. {track.artist.name} \u2013 {track.title}', callback_data=new_callback('track', track.id, 'send')))
    kb.insert(InlineKeyboardButton('Go back', callback_data=new_callback('artist', artist_id, 'main')))
    return kb
Beispiel #17
0
from aiogram.types import ReplyKeyboardRemove, \
    ReplyKeyboardMarkup, KeyboardButton, \
    InlineKeyboardMarkup, InlineKeyboardButton

# ======== buttons ========
line_btn_1 = InlineKeyboardButton('транспорт та дороги', callback_data='btn1', content_types=['location'])
line_btn_2 = InlineKeyboardButton('благоустрій міста та будівництво', callback_data='btn2', content_types=['location'])
line_btn_3 = InlineKeyboardButton('соціальний захист та охорона праці', callback_data='btn3')
line_btn_4 = InlineKeyboardButton('сім’я, молодь, діти', callback_data='btn4')
line_btn_5 = InlineKeyboardButton('освіта', callback_data='btn5')
line_btn_6 = InlineKeyboardButton('екологія', callback_data='btn6')
line_btn_7 = InlineKeyboardButton('охорона здоровя', callback_data='btn7')
line_btn_8 = InlineKeyboardButton('житлово-комунальне господарство', callback_data='btn8')
line_btn_9 = InlineKeyboardButton('економіка та фінанси', callback_data='btn9')
line_btn_10 = InlineKeyboardButton('інші', callback_data='btn10')

# ======== keyboard ========
inline_kb = InlineKeyboardMarkup().add(line_btn_1)
inline_kb.add(line_btn_2)
inline_kb.add(line_btn_3)
inline_kb.add(line_btn_4)
inline_kb.add(line_btn_5)
inline_kb.add(line_btn_6)
inline_kb.add(line_btn_7)
inline_kb.add(line_btn_8)
inline_kb.add(line_btn_9)
inline_kb.add(line_btn_10)

button_dictionary = {
    line_btn_1.callback_data: line_btn_1,
    line_btn_2.callback_data: line_btn_2,
Beispiel #18
0
def top5_keyboard(artist, top):
    kb = InlineKeyboardMarkup(1)
    for i, track in enumerate(top, start=1):
        kb.insert(InlineKeyboardButton(f'{i}. {track.title}', callback_data=new_callback('track', track.id, 'send')))
    kb.insert(InlineKeyboardButton('Go back', callback_data=new_callback('artist', artist.id, 'main')))     
    return kb
Beispiel #19
0
def keyboard_yn(call1, call2):
    keyboard = InlineKeyboardMarkup()
    button1 = InlineKeyboardButton(text="Да", callback_data=call1)
    button2 = InlineKeyboardButton(text="Нет", callback_data=call2)
    keyboard.add(button1, button2)
    return keyboard
Beispiel #20
0
def large_file_keyboard():
    kb = InlineKeyboardMarkup(1)
    kb.insert(InlineKeyboardButton(
        "File is too big, Telegram won't let to upload it",
        callback_data='big_file'))
    return kb
Beispiel #21
0
async def ask_credentials(
    call: types.CallbackQuery,
    offer: EscrowOffer,
):
    """Update offer with ``update_dict`` and start asking transfer information.

    Ask to choose bank if user is initiator and there is a fiat
    currency. Otherwise ask receive address.
    """
    await call.answer()
    is_user_init = call.from_user.id == offer.init["id"]
    has_fiat_currency = "RUB" in {offer.buy, offer.sell}
    if has_fiat_currency:
        if is_user_init:
            keyboard = InlineKeyboardMarkup()
            for bank in SUPPORTED_BANKS:
                keyboard.row(
                    InlineKeyboardButton(
                        bank, callback_data=f"bank {offer._id} {bank}"))
            await tg.send_message(call.message.chat.id,
                                  i18n("choose_bank"),
                                  reply_markup=keyboard)
            await states.Escrow.bank.set()
        else:
            if offer.type == "buy":
                request_user = offer.init
                answer_user = offer.counter
                currency = offer.sell
            else:
                request_user = offer.counter
                answer_user = offer.init
                currency = offer.buy
            keyboard = InlineKeyboardMarkup()
            keyboard.add(
                InlineKeyboardButton(i18n("sent"),
                                     callback_data=f"card_sent {offer._id}"))
            mention = markdown.link(answer_user["mention"],
                                    User(id=answer_user["id"]).url)
            await tg.send_message(
                request_user["id"],
                i18n(
                    "request_full_card_number {currency} {user}",
                    locale=request_user["locale"],
                ).format(currency=currency, user=mention),
                reply_markup=keyboard,
                parse_mode=ParseMode.MARKDOWN,
            )
            state = FSMContext(dp.storage, request_user["id"],
                               request_user["id"])
            await state.set_state(states.Escrow.full_card.state)
            answer = i18n(
                "asked_full_card_number {user}",
                locale=answer_user["locale"]).format(
                    user=markdown.link(request_user["mention"],
                                       User(id=request_user["id"]).url))
            await tg.send_message(
                answer_user["id"],
                answer,
                parse_mode=ParseMode.MARKDOWN,
            )
        return

    await tg.send_message(
        call.message.chat.id,
        i18n("ask_address {currency}").format(
            currency=offer.sell if is_user_init else offer.buy),
    )
    await offer.update_document(
        {"$set": {
            "pending_input_from": call.from_user.id
        }})
    await states.Escrow.receive_address.set()
Beispiel #22
0
def finish_download_keyboard(track_id):
    kb = InlineKeyboardMarkup(1)
    kb.insert(InlineKeyboardButton(
        'Loading full track, please wait...', callback_data='finish_download'))
    return kb
Beispiel #23
0
async def set_counter_send_address(address: str, message: types.Message,
                                   offer: EscrowOffer):
    """Set ``address`` as sender's address of counteragent.

    Ask for escrow asset transfer.
    """
    memo = create_memo(offer, transfer=False, counter_send_address=address)
    if offer.type == "buy":
        escrow_user = offer.init
        from_address = offer.init["send_address"]
        send_reply = True
    elif offer.type == "sell":
        escrow_user = offer.counter
        from_address = address
        send_reply = False
    transaction_time = time()
    await get_escrow_instance(offer[offer.type]).check_transaction(
        offer._id,
        from_address,
        offer["sum_fee_up"].to_decimal(),
        offer[f"sum_{offer.type}"].to_decimal(),
        offer[offer.type],
        memo,
        transaction_time,
    )
    keyboard = InlineKeyboardMarkup()
    keyboard.add(
        InlineKeyboardButton(
            i18n("cancel", locale=escrow_user["locale"]),
            callback_data=f"escrow_cancel {offer._id}",
        ))
    escrow_address = markdown.bold(
        get_escrow_instance(offer[offer.type]).address)
    answer = i18n("send {amount} {currency} {address}",
                  locale=escrow_user["locale"]).format(
                      amount=offer.sum_fee_up,
                      currency=offer[offer.type],
                      address=escrow_address)
    answer += " " + i18n("with_memo", locale=escrow_user["locale"])
    answer += ":\n" + markdown.code(memo)
    await tg.send_message(escrow_user["id"],
                          answer,
                          reply_markup=keyboard,
                          parse_mode=ParseMode.MARKDOWN)
    if send_reply:
        keyboard = InlineKeyboardMarkup()
        keyboard.add(
            InlineKeyboardButton(i18n("cancel"),
                                 callback_data=f"escrow_cancel {offer._id}"))
        await tg.send_message(
            message.chat.id,
            i18n("transfer_information_sent") + " " +
            i18n("transaction_completion_notification_promise"),
            reply_markup=keyboard,
            parse_mode=ParseMode.MARKDOWN,
        )
    update = {
        "counter.send_address": address,
        "transaction_time": transaction_time,
        "memo": memo,
    }
    await offer.update_document({
        "$set": update,
        "$unset": {
            "pending_input_from": True
        }
    })
    await dp.current_state().finish()
Beispiel #24
0
def start_keyboard():
    kb = InlineKeyboardMarkup(1)
    kb.insert(InlineKeyboardButton('Search', switch_inline_query_current_chat=''))
    kb.insert(InlineKeyboardButton('Search albums', switch_inline_query_current_chat='.a '))
    kb.insert(InlineKeyboardButton('Search artists', switch_inline_query_current_chat='.ar '))
    return kb
Beispiel #25
0
from aiogram.types import ReplyKeyboardMarkup, InlineKeyboardButton, InlineKeyboardMarkup, InlineKeyboardButton

bt_1 = InlineKeyboardButton(text="1", callback_data='1')
bt_2 = InlineKeyboardButton(text="2", callback_data="2")
bt_3 = InlineKeyboardButton(text="3", callback_data="3")
bt_4 = InlineKeyboardButton(text="4", callback_data="4")
bt_5 = InlineKeyboardButton(text="5", callback_data="5")
bt_6 = InlineKeyboardButton(text="6", callback_data="6")
bt_7 = InlineKeyboardButton(text="7", callback_data="7")
bt_8 = InlineKeyboardButton(text="8", callback_data="8")
bt_9 = InlineKeyboardButton(text="9", callback_data="9")
bt_0 = InlineKeyboardButton(text="0", callback_data="0")
bt_summ = InlineKeyboardButton(text="+", callback_data="+")
bt_equal = InlineKeyboardButton(text="=", callback_data="=")

digitals = InlineKeyboardMarkup(resize_keyboard=True).add(bt_1).add(bt_2).add(bt_3).add(bt_4).add(bt_5).\
                                 add(bt_6).add(bt_7).add(bt_8).add(bt_9).add(bt_0).add(bt_summ).add(bt_equal)

Beispiel #26
0
def today_stats_keyboard():
    kb = InlineKeyboardMarkup()
    kb.insert(InlineKeyboardButton('Update', callback_data='today'))
    return kb
Beispiel #27
0
def ct_button(title: str, c_type):
    return InlineKeyboardButton(title, callback_data=DefaultType.new(c_type))
Beispiel #28
0
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton

from keyboards.inline.callback_datas import start_callback

choice_lang = InlineKeyboardMarkup(
    row_width=3,
    inline_keyboard=[[
        InlineKeyboardButton(text="🇺🇦 UA",
                             callback_data=start_callback.new("UA")),
        InlineKeyboardButton(text="🇺🇸 EN",
                             callback_data=start_callback.new("EN")),
        InlineKeyboardButton(text="🇷🇺 RU",
                             callback_data=start_callback.new("RU"))
    ]])
Beispiel #29
0
 def create(foods: list):
     reset_button = InlineKeyboardButton(
         'Повторить',
         callback_data=f'add_product_photo_check_[\'shopping_list\']')
     add_typing_button = InlineKeyboardButton(
         'Ввести вручную',
         callback_data=f'add_product_typing_[\'shopping_list\']')
     inline_kb_full = InlineKeyboardMarkup(row_width=1)
     if len(foods) == 1:
         product_one = InlineKeyboardButton(
             foods[0],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[0]}')
         inline_kb_full.add(product_one)
         inline_kb_full.row(reset_button, add_typing_button)
         return inline_kb_full
     if len(foods) == 2:
         product_one = InlineKeyboardButton(
             foods[0],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[0]}')
         product_two = InlineKeyboardButton(
             foods[1],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[1]}')
         inline_kb_full.add(product_one, product_two)
         inline_kb_full.row(reset_button, add_typing_button)
         return inline_kb_full
     if len(foods) == 3:
         product_one = InlineKeyboardButton(
             foods[0],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[0]}')
         product_two = InlineKeyboardButton(
             foods[1],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[1]}')
         product_three = InlineKeyboardButton(
             foods[2],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[2]}')
         inline_kb_full.add(product_one, product_two, product_three)
         inline_kb_full.row(reset_button, add_typing_button)
         return inline_kb_full
     if len(foods) == 4:
         product_one = InlineKeyboardButton(
             foods[0],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[0]}')
         product_two = InlineKeyboardButton(
             foods[1],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[1]}')
         product_three = InlineKeyboardButton(
             foods[2],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[2]}')
         product_four = InlineKeyboardButton(
             foods[3],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[3]}')
         inline_kb_full = InlineKeyboardMarkup(row_width=2)
         inline_kb_full.row(product_one, product_two)
         inline_kb_full.row(product_three, product_four)
         inline_kb_full.row(reset_button, add_typing_button)
         return inline_kb_full
     if len(foods) == 5:
         product_one = InlineKeyboardButton(
             foods[0],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[0]}')
         product_two = InlineKeyboardButton(
             foods[1],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[1]}')
         product_three = InlineKeyboardButton(
             foods[2],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[2]}')
         product_four = InlineKeyboardButton(
             foods[3],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[3]}')
         product_five = InlineKeyboardButton(
             foods[4],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[4]}')
         inline_kb_full = InlineKeyboardMarkup(row_width=2)
         inline_kb_full.row(product_one, product_two)
         inline_kb_full.row(product_three, product_four)
         inline_kb_full.add(product_five)
         inline_kb_full.row(reset_button, add_typing_button)
         return inline_kb_full
     if len(foods) == 6:
         product_one = InlineKeyboardButton(
             foods[0],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[0]}')
         product_two = InlineKeyboardButton(
             foods[1],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[1]}')
         product_three = InlineKeyboardButton(
             foods[2],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[2]}')
         product_four = InlineKeyboardButton(
             foods[3],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[3]}')
         product_five = InlineKeyboardButton(
             foods[4],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[4]}')
         product_six = InlineKeyboardButton(
             foods[5],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[5]}')
         inline_kb_full = InlineKeyboardMarkup(row_width=2)
         inline_kb_full.row(product_one, product_two)
         inline_kb_full.row(product_three, product_four)
         inline_kb_full.row(product_five, product_six)
         inline_kb_full.row(reset_button, add_typing_button)
         return inline_kb_full
     if len(foods) == 7:
         product_one = InlineKeyboardButton(
             foods[0],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[0]}')
         product_two = InlineKeyboardButton(
             foods[1],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[1]}')
         product_three = InlineKeyboardButton(
             foods[2],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[2]}')
         product_four = InlineKeyboardButton(
             foods[3],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[3]}')
         product_five = InlineKeyboardButton(
             foods[4],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[4]}')
         product_six = InlineKeyboardButton(
             foods[5],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[5]}')
         product_seven = InlineKeyboardButton(
             foods[6],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[6]}')
         inline_kb_full = InlineKeyboardMarkup(row_width=2)
         inline_kb_full.row(product_one, product_two)
         inline_kb_full.row(product_three, product_four)
         inline_kb_full.row(product_five, product_six)
         inline_kb_full.add(product_seven)
         inline_kb_full.row(reset_button, add_typing_button)
         return inline_kb_full
     if len(foods) >= 8:
         product_one = InlineKeyboardButton(
             foods[0],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[0]}')
         product_two = InlineKeyboardButton(
             foods[1],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[1]}')
         product_three = InlineKeyboardButton(
             foods[2],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[2]}')
         product_four = InlineKeyboardButton(
             foods[3],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[3]}')
         product_five = InlineKeyboardButton(
             foods[4],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[4]}')
         product_six = InlineKeyboardButton(
             foods[5],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[5]}')
         product_seven = InlineKeyboardButton(
             foods[6],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[6]}')
         product_eight = InlineKeyboardButton(
             foods[7],
             callback_data=
             f'add_product_photo_name_ok_[\'shopping_list\']+{foods[7]}')
         inline_kb_full = InlineKeyboardMarkup(row_width=2)
         inline_kb_full.row(product_one, product_two)
         inline_kb_full.row(product_three, product_four)
         inline_kb_full.row(product_five, product_six)
         inline_kb_full.row(product_seven, product_eight)
         inline_kb_full.row(reset_button, add_typing_button)
         return inline_kb_full
Beispiel #30
0
class UserStates(Helper):
    GET_CHANNEL_TO_UP = ListItem()
    GET_SUB_COUNT = ListItem()
    CONFIRMATION = ListItem()
    GET_MSG_FOR_MAIL = ListItem()
    GET_USER_FOR_UBAN = ListItem()
    GET_USER_FOR_CHB = ListItem()


main_menu = ReplyKeyboardMarkup(resize_keyboard=True)
main_menu.add('✔️ Подписаться на канал', '➕ Получить подписчиков')
main_menu.add('👤 Профиль', '👣 Партнёрская программа')

admin_menu = InlineKeyboardMarkup()
statistics_bt = InlineKeyboardButton(text='📊 Статистика', callback_data='stat')
mail_bt = InlineKeyboardButton(text='✉️ Рассылка', callback_data='mail')
give_uban_bt = InlineKeyboardButton(text='🚷 Выдать бан/разбан',
                                    callback_data='uban')
change_balance_bt = InlineKeyboardButton(text='💳 Изменить баланс',
                                         callback_data='chb')
admin_menu.add(statistics_bt, mail_bt)
admin_menu.add(give_uban_bt, change_balance_bt)

cancel_menu = InlineKeyboardMarkup()
cancel_bt = InlineKeyboardButton(text='🚫 Отмена', callback_data='cancel')
cancel_menu.add(cancel_bt)


#==============
async def user_in_channel_checker():