Skip to main content

An easy-to-use pagination wrapper for discord.py

Project description

Pygicord

Build PyPI - Downloads

An easy-to-use pagination wrapper for discord.py library.

Installing

pip install pygicord

Getting started

The following examples help you understand how pygicord works.

Basic paginator:

import discord
from discord.ext import commands

from pygicord import Paginator

bot = commands.Bot(command_prefix=".")


def make_pages():
    pages = []
    # Generate a list of 5 embeds
    for i in range(1, 6):
        embed = discord.Embed()
        embed.color = discord.Color.blurple()
        embed.title = f"I'm the embed {i}!"
        pages.append(embed)
    return pages


@bot.command()
async def test(ctx):
    paginator = Paginator(pages=make_pages())
    await paginator.paginate(ctx)


@bot.event
async def on_ready():
    print("I'm ready!")


bot.run("token")

Customized paginator:

import discord
from discord.ext import commands

from pygicord import Paginator

bot = commands.Bot(command_prefix=".")
LOADING_MESSAGE = "Loading reactions..."
FAILED_MESSAGE = "Can't add reactions :("


def make_pages():
    pages = []
    for i in range(1, 6):
        embed = discord.Embed()
        embed.color = discord.Color.blurple()
        embed.title = f"I'm the embed {i}!"
        pages.append(embed)
    return pages


@bot.command()
async def test(ctx):
    async with ctx.typing():
        paginator = Paginator(
            pages=make_pages(),
            compact=True,
            timeout=60,
            load_message=LOADING_MESSAGE,
            fail_message=FAILED_MESSAGE,
        )
        await paginator.paginate(ctx)


@bot.event
async def on_ready():
    print("I'm ready!")


bot.run("token")

Available attributes

Attribute Description Type Default Property
pages A list of embeds you want the paginator to paginate or a discord.Embed instance. list, discord.Embed None No
timeout The timeout before the paginator's reactions will be cleared. float 90.0 No
compact Whether the paginator should use a compact version of itself having only three reactions: previous, close and next. bool False No
indicator Whether to display an indicator. It is used to display a message when reactions are loading or when the bot lacks Add Reactions permission. bool True No
load_message The message displayed when reactions are loading. str Custom Yes
fail_message The message displayed when the bot can't add reactions in the channel. str Custom Yes

Custom attributes

A list with all the default values of the attributes. These values can be overwritten.

Loading message

**Adding reactions...**

Failed message

**I can't add reactions in this channel!
Please grant me `Add Reactions` permission.**

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

pygicord-0.1.0.tar.gz (5.5 kB view hashes)

Uploaded Source

Built Distribution

pygicord-0.1.0-py3-none-any.whl (6.1 kB view hashes)

Uploaded Python 3

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