A discord paginator.
Project description
Markination
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
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.")
]
dropdown = Dropdown(ctx, pages, timeout=60)
await DropdownPaginator.Simple().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.2.tar.gz
(3.8 kB
view hashes)
Built Distribution
Close
Hashes for markination-0.2.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba4735cfc2feb8946056f972719281bb23552e6c34e8204dac3f41af95cb369b |
|
MD5 | bef36e2ce1d04680755d9e222db14672 |
|
BLAKE2b-256 | 63726cd9e9971d8426ac18b584f3c3f14c04d7a3067aa6f1e1162bbbd741f6e0 |