1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
from collections.abc import Sequence
import discord
from discord.ext.commands import Context
from pydis_core.utils.pagination import LinePaginator as _LinePaginator, PaginationEmojis
class LinePaginator(_LinePaginator):
"""
A class that aids in paginating code blocks for Discord messages.
See the super class's docs for more info.
"""
@classmethod
async def paginate(
cls,
lines: list[str],
ctx: Context | discord.Interaction,
embed: discord.Embed,
prefix: str = "",
suffix: str = "",
max_lines: int | None = None,
max_size: int = 500,
scale_to_size: int = 4000,
restrict_to_user: discord.User | None = None,
timeout: int = 300, # noqa: ASYNC109
footer_text: str | None = None,
url: str | None = None,
allowed_roles: Sequence[int] | None = None,
*,
reply: bool = False,
empty: bool = True,
exception_on_empty_embed: bool = False,
) -> discord.Message | None:
"""
Use a paginator and set of reactions to provide pagination over a set of lines.
Acts as a wrapper for the super class' `paginate` method to provide the pagination emojis by default.
Consult the super class's `paginate` method for detailed information.
"""
return await super().paginate(
pagination_emojis=PaginationEmojis(delete="\N{WASTEBASKET}"),
lines=lines,
ctx=ctx,
embed=embed,
prefix=prefix,
suffix=suffix,
max_lines=max_lines,
max_size=max_size,
scale_to_size=scale_to_size,
empty=empty,
restrict_to_user=restrict_to_user,
timeout=timeout,
footer_text=footer_text,
url=url,
exception_on_empty_embed=exception_on_empty_embed,
reply=reply,
allowed_roles=allowed_roles,
)
|