Skip to main content

A discord paginator.

Project description

Markination

License

Markination is a versatile Python package that provides an easy-to-use Discord message paginator using the discord.py library.

Features

  • Discord Button Paginator
  • Discord Dropdown Paginator
  • Built-in support for navigation buttons (Next, Previous, First, Last).
  • Designed for ease of use in your Discord bot projects.
  • Extensible and open-source.

Installation

License

You can install Markination using Poetry and PyPi

poetry add markination
pip install markination

Usage

Simple Button Setup:

from markination import ButtonPaginator
from discord.ext import commands
import discord

@bot.command()
async def paginator(ctx: commands.Context):
    # A list of embeds to paginate
    embeds = [discord.Embed(title="First embed"),         
            discord.Embed(title="Second embed"),
            discord.Embed(title="Third embed")]

    # Start the paginator
    await ButtonPaginator.Simple().start(ctx, pages=embeds)

Custom Buttons:

from markination import ButtonPaginator
from discord.ext import commands
import discord
from discord import ui

@bot.command()
async def paginator(ctx: commands.Context):
    embeds = [discord.Embed(title="First embed"),         
            discord.Embed(title="Second embed"),
            discord.Embed(title="Third embed")]
    PreviousButton = discord.ui.Button(label=f"Previous")
    NextButton = discord.ui.Button(label=f"Next")
    FirstPageButton = discord.ui.Button(label=f"First Page")
    LastPageButton = discord.ui.Button(label=f"Last page")
    PageCounterStyle = discord.ButtonStyle.danger # Only accepts ButtonStyle instead of Button
    InitialPage = 0 # Page to start the paginator on.
    timeout = 0 # Seconds to timeout. Default is 60
    ephemeral = bool # Defaults to false if not passed in.
    await ButtonPaginator.Simple(
        PreviousButton=PreviousButton,
        NextButton=NextButton,
        FirstEmbedButton=FirstPageButton,
        LastEmbedButton=LastPageButton,
        PageCounterStyle=PageCounterStyle,
        InitialPage=InitialPage,
        timeout=timeout, ephemeral=ephemeral).start(ctx, pages=embeds)

Simple Dropdown Setup

from markination import DropdownPaginator
from discord.ext import commands
import discord
from discord import ui

@bot.command()
async def dropdown(ctx):
    pages = [
        discord.Embed(title="Page 1", description="This is the first page."),
        discord.Embed(title="Page 2", description="This is the second page."),
        discord.Embed(title="Page 3", description="This is the third page.")
    ]

    await DropdownPaginator.Simple(ctx, pages, timeout=60).start(ctx)

Pull Requests are always open!

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

markination-0.2.3.tar.gz (3.8 kB view hashes)

Uploaded Source

Built Distribution

markination-0.2.3-py3-none-any.whl (4.9 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