diff --git a/exts/admin.py b/exts/admin.py index 5ad30b8..0a9a580 100644 --- a/exts/admin.py +++ b/exts/admin.py @@ -193,8 +193,9 @@ class Admin: @commands.command() @commands.is_owner() async def view_code(self, ctx, code_name): - pages = utils.paginate(inspect.getsource(self.bot.get_command(code_name).callback)) - for page in pages: + pag = utils.Paginator() + pag.add(inspect.getsource(self.bot.get_command(code_name).callback)) + for page in pag.pages(): await ctx.send(page) @add.command(aliases=['prefix', 'p']) diff --git a/exts/events.py b/exts/events.py index 395b4ba..d9cd810 100644 --- a/exts/events.py +++ b/exts/events.py @@ -150,10 +150,12 @@ class BotEvents: # noinspection PyMethodMayBeStatic async def on_command_error(self, ctx, error): + pag = utils.Paginator() import traceback if ctx.channel.id == 418452585683484680 and type(error) == commands.errors.CommandNotFound: return - for page in utils.paginate(''.join(traceback.format_exception(type(error), error, error.__traceback__))): + pag.add(''.join(traceback.format_exception(type(error), error, error.__traceback__))) + for page in pag.pages(): await ctx.send(page) async def on_guild_join(self, guild): diff --git a/exts/git.py b/exts/git.py index 8d3fe3c..3d43859 100644 --- a/exts/git.py +++ b/exts/git.py @@ -1,7 +1,7 @@ import discord from discord.ext import commands import logging -from .imports.utils import paginate, run_command +from .imports.utils import Paginator, run_command import asyncio owner_id = 351794468870946827 @@ -29,6 +29,7 @@ class Git: @git.command() @commands.is_owner() async def pull(self, ctx): + pag = Paginator(max_line_length=60, max_lines=30, max_chars=1014) em = discord.Embed(style='rich', title=f'Git Pull', color=embed_color) @@ -40,21 +41,22 @@ class Git: ' --abbrev-ref HEAD)')), 120) + '\n\n' result += await asyncio.wait_for(self.bot.loop.create_task(run_command('git show --stat | ' 'sed "s/.*@.*[.].*/ /g"')), 10) - results = paginate(result, maxlen=1014) - for page in results[:5]: + pag.add(result) + for page in pag.pages(): em.add_field(name='￲', value=f'{page}') await ctx.send(embed=em) @git.command() @commands.is_owner() async def status(self, ctx): + pag = Paginator(max_line_length=60, max_lines=30, max_chars=1014) em = discord.Embed(style='rich', title=f'Git Pull', color=embed_color) em.set_thumbnail(url=f'{ctx.guild.me.avatar_url}') result = await asyncio.wait_for(self.bot.loop.create_task(run_command('git status')), 10) - results = paginate(result, maxlen=1014) - for page in results[:5]: + pag.add(result) + for page in pag.pages(): em.add_field(name='￲', value=f'{page}') await ctx.send(embed=em) diff --git a/exts/repl.py b/exts/repl.py index af56a27..7837598 100644 --- a/exts/repl.py +++ b/exts/repl.py @@ -140,12 +140,11 @@ class Repl: fmt = '{}'.format(value) try: if fmt is not None: - if len(fmt) > 1990: - for page in paginate(fmt): - await response.channel.send(page) - await ctx.send(response.channel) - else: - await response.channel.send(f'```py\n{fmt}\n```') + pag = Paginator() + pag.add(fmt) + for page in pag.pages(): + await response.channel.send(page) + await ctx.send(response.channel) except discord.Forbidden: pass except discord.HTTPException as e: @@ -157,15 +156,13 @@ class Repl: return try: body = self.cleanup_code(body) - result = await asyncio.wait_for(self.bot.loop.create_task(run_command(body)), 10) - value = result - for page in paginate(value): + pag = Paginator() + pag.add(await asyncio.wait_for(self.bot.loop.create_task(run_command(body)), 10)) + for page in pag.pages(): await ctx.send(page) await ctx.message.add_reaction('✅') except asyncio.TimeoutError: - value = f"Command did not complete in the time allowed." - for page in paginate(value): - await ctx.send(page) + await ctx.send(f"Command did not complete in the time allowed.") await ctx.message.add_reaction('❌')