snek-paginator
Paginator for Dis-Snek Python Discord API wrapper
Installation:
pip install -U snek-paginator
Basic Example:
from dis_snek.client import Snake
from dis_snek.models.application_commands import slash_command
from dis_snek.models import Embed
from snek_paginator import Paginator
bot = Snake()
@slash_command('paginator')
async def paginator(ctx):
embeds = [
Embed(title='Page 1', description='This is page 1'),
Embed(title='Page 2', description='This is page 2'),
Embed(title='Page 3', description='This is page 3'),
Embed(title='Page 4', description='This is page 4'),
Embed(title='Page 5', description='This is page 5'),
]
await Paginator(bot, ctx, embeds).run()
class Paginator
method run(*args, **kwargs)
Required:
bot: Snake
- The bot instancectx: InteractionContext
- The context of the command or componentpages: list[Embed]
- A list of Embed objects to paginate
Optional:
timeout: int = None
- How long in seconds the paginator should runauthor_only: bool = False
- Whether the paginator should only be used by the authoronly_for: Union[User, Member, Role, List[Union[User, Member, Role]]] = None
- Who should use the paginatoruse_select: bool = True
- Whether the paginator should use the selectuse_buttons: bool = True
- Whether the paginator should use the buttonsdisable_after_timeout: bool = True
- Whether the components should disable after timeoutdelete_after_timeout: bool = False
- Whether the components should delete after timeoutextend_buttons: bool = True
- Whether the first and last page buttons should be usedfirst_button: Button = Button(ButtonStyles.BLUE, emoji="⏮")
- The first page buttonprevious_button: Button = Button(ButtonStyles.BLUE, emoji="◀")
- The previous page buttonnext_button: Button = Button(ButtonStyles.BLUE, emoji="▶")
- The next page buttonlast_button: Button = Button(ButtonStyles.BLUE, emoji="⏭")
- The last page button