diff options
| author | 2020-02-19 00:09:06 +0700 | |
|---|---|---|
| committer | 2020-02-19 00:09:06 +0700 | |
| commit | b9f010a4942c593064c2f662bb7177f3583381af (patch) | |
| tree | 4313839fb41c0bbe1b7385f6a1d546536de991b3 /bot/pagination.py | |
| parent | Merge pull request #350 from ks129/movies-command (diff) | |
| parent | Merge branch 'master' into F4zi/bug/LAST_EMOJI-352 (diff) | |
Merge pull request #353 from python-discord/F4zi/bug/LAST_EMOJI-352
Fix the Pagination cog
Diffstat (limited to 'bot/pagination.py')
| -rw-r--r-- | bot/pagination.py | 26 | 
1 files changed, 14 insertions, 12 deletions
diff --git a/bot/pagination.py b/bot/pagination.py index f1233482..9a7a0382 100644 --- a/bot/pagination.py +++ b/bot/pagination.py @@ -6,13 +6,15 @@ from discord import Embed, Member, Reaction  from discord.abc import User  from discord.ext.commands import Context, Paginator +from bot.constants import Emojis +  FIRST_EMOJI = "\u23EE"   # [:track_previous:]  LEFT_EMOJI = "\u2B05"    # [:arrow_left:]  RIGHT_EMOJI = "\u27A1"   # [:arrow_right:]  LAST_EMOJI = "\u23ED"    # [:track_next:] -DELETE_EMOJI = "\u274c"  # [:x:] +DELETE_EMOJI = Emojis.trashcan  # [:trashcan:] -PAGINATION_EMOJI = [FIRST_EMOJI, LEFT_EMOJI, RIGHT_EMOJI, LAST_EMOJI, DELETE_EMOJI] +PAGINATION_EMOJI = (FIRST_EMOJI, LEFT_EMOJI, RIGHT_EMOJI, LAST_EMOJI, DELETE_EMOJI)  log = logging.getLogger(__name__) @@ -113,7 +115,7 @@ class LinePaginator(Paginator):                      # Reaction is on this message                      reaction_.message.id == message.id,                      # Reaction is one of the pagination emotes -                    reaction_.emoji in PAGINATION_EMOJI, +                    str(reaction_.emoji) in PAGINATION_EMOJI,  # Note: DELETE_EMOJI is a string and not unicode                      # Reaction was not made by the Bot                      user_.id != ctx.bot.user.id,                      # There were no restrictions @@ -185,9 +187,9 @@ class LinePaginator(Paginator):                  log.debug("Timed out waiting for a reaction")                  break  # We're done, no reactions for the last 5 minutes -            if reaction.emoji == DELETE_EMOJI: +            if str(reaction.emoji) == DELETE_EMOJI:  # Note: DELETE_EMOJI is a string and not unicode                  log.debug("Got delete reaction") -                break +                return await message.delete()              if reaction.emoji == FIRST_EMOJI:                  await message.remove_reaction(reaction.emoji, user) @@ -261,7 +263,7 @@ class LinePaginator(Paginator):                  await message.edit(embed=embed) -        log.debug("Ending pagination and removing all reactions...") +        log.debug("Ending pagination and clearing reactions...")          await message.clear_reactions() @@ -323,7 +325,7 @@ class ImagePaginator(Paginator):                  # Reaction is on the same message sent                  reaction_.message.id == message.id,                  # The reaction is part of the navigation menu -                reaction_.emoji in PAGINATION_EMOJI, +                str(reaction_.emoji) in PAGINATION_EMOJI,  # Note: DELETE_EMOJI is a string and not unicode                  # The reactor is not a bot                  not member.bot              )) @@ -369,10 +371,10 @@ class ImagePaginator(Paginator):              # Deletes the users reaction              await message.remove_reaction(reaction.emoji, user) -            # Delete reaction press - [:x:] -            if reaction.emoji == DELETE_EMOJI: +            # Delete reaction press - [:trashcan:] +            if str(reaction.emoji) == DELETE_EMOJI:  # Note: DELETE_EMOJI is a string and not unicode                  log.debug("Got delete reaction") -                break +                return await message.delete()              # First reaction press - [:track_previous:]              if reaction.emoji == FIRST_EMOJI: @@ -389,7 +391,7 @@ class ImagePaginator(Paginator):                      log.debug("Got last page reaction, but we're on the last page - ignoring")                      continue -                current_page = len(paginator.pages - 1) +                current_page = len(paginator.pages) - 1                  reaction_type = "last"              # Previous reaction press - [:arrow_left: ] @@ -424,5 +426,5 @@ class ImagePaginator(Paginator):              await message.edit(embed=embed) -        log.debug("Ending pagination and removing all reactions...") +        log.debug("Ending pagination and clearing reactions...")          await message.clear_reactions()  |