Skip to main content

Python inline keyboard pagination for Telegram Bot API

Project description

python-telegram-bot-pagination

Download Month Build Status

Provide easy way for create number pagination with inline keyboard for telegram bot on python.

Example with pyTelegramBotAPI

Example with python-telegram-bot

Installation

pip install python-telegram-bot-pagination

Usage

    from telegram_bot_pagination import InlineKeyboardPaginator

    paginator = InlineKeyboardPaginator(
        page_count,
        current_page=page,
        data_pattern='page#{page}'
    )

    bot.send_message(
        chat_id,
        text,
        reply_markup=paginator.markup,
    )

Init arguments:

  • page_count - integer, total 1-based pages count.
  • current_page - integer, 1-based current page. Default 1
  • data_pattern - string with python style formatting named argument 'page'. Used for generate callback data for button. Default '{page}'

Properties:

Button render controlling

For edit button render, use paginator object properties:

  • first_page_label
  • previous_page_label
  • current_page_label
  • next_page_label
  • last_page_label

All of them can by python style formatting string with one arg, or simple string.

For example:

class MyPaginator(InlineKeyboardPaginator):
    first_page_label = '<<'
    previous_page_label = '<'
    current_page_label = '-{}-'
    next_page_label = '>'
    last_page_label = '>>'

paginator = MyPaginator(page_count)

Result:

Adding extra button

For adding button line before and after pagination use methods:

  • add_before(*args)
  • add_after(*args)

Each argument mast provide property 'text' and 'callback_data'

For example:

paginator.add_before(
    InlineKeyboardButton('Like', callback_data='like#{}'.format(page)),
    InlineKeyboardButton('Dislike', callback_data='dislike#{}'.format(page))
)
paginator.add_after(InlineKeyboardButton('Go back', callback_data='back'))

Result:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-telegram-bot-pagination-0.0.3.tar.gz (3.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page