Skip to content
This repository was archived by the owner on Mar 1, 2022. It is now read-only.

Commit ae28dc7

Browse files
committed
Update version.
1 parent 661870e commit ae28dc7

File tree

2 files changed

+20
-10
lines changed

2 files changed

+20
-10
lines changed

discord/ext/buttons/buttons.py

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import asyncio
22
import discord
33
import inspect
4-
from concurrent.futures import TimeoutError
54
from discord.ext import commands
65
from functools import partial
76
from typing import Union
@@ -43,6 +42,7 @@ def __init__(self, *, timeout: int = 180, try_remove: bool = True):
4342
self.buttons = self._buttons
4443

4544
self._defaults = {}
45+
self._default_stop = {}
4646

4747
def __init_subclass__(cls, **kwargs):
4848
pass
@@ -133,12 +133,14 @@ async def _session_loop(self, ctx):
133133
except discord.HTTPException:
134134
pass
135135

136-
if action and button in self._defaults.values():
137-
await button._callback(ctx)
136+
member = ctx.guild.get_member(payload.user_id)
137+
138+
if action and button in self._defaults.values() or button in self._default_stop.values():
139+
await button._callback(ctx, member)
138140
elif action and button._callback:
139-
await button._callback(self, ctx)
141+
await button._callback(self, ctx, member)
140142
elif not action and button._inverse_callback:
141-
await button._inverse_callback(self, ctx)
143+
await button._inverse_callback(self, ctx, member)
142144

143145
@property
144146
def is_cancelled(self):
@@ -153,7 +155,11 @@ async def cancel(self, ctx):
153155
async def teardown(self, ctx):
154156
"""Clean the session up."""
155157
self._session_task.cancel()
156-
await self.page.delete()
158+
159+
try:
160+
await self.page.delete()
161+
except discord.NotFound:
162+
pass
157163

158164
async def _add_reactions(self, reactions):
159165
for reaction in reactions:
@@ -224,6 +230,7 @@ def __init__(self, *, title: str = '', length: int = 10, entries: list = None,
224230
(2, '⏹'): Button(emoji='⏹', position=2, callback=partial(self._default_indexer, 'stop')),
225231
(3, '▶'): Button(emoji='▶', position=3, callback=partial(self._default_indexer, +1)),
226232
(4, '⏭'): Button(emoji='⏭', position=4, callback=partial(self._default_indexer, 'end'))}
233+
self._default_stop = {(0, '⏹'): Button(emoji='⏹', position=0, callback=partial(self._default_indexer, 'stop'))}
227234

228235
self.buttons = {}
229236

@@ -297,17 +304,20 @@ async def _paginate(self, ctx: commands.Context):
297304

298305
async def _session(self, ctx):
299306
if self.use_defaults:
300-
self.buttons = {**self._defaults, **self._buttons}
307+
if len(self._pages) == 1:
308+
self.buttons = {**self._default_stop, **self._buttons}
309+
else:
310+
self.buttons = {**self._defaults, **self._buttons}
301311
else:
302312
self.buttons = self._buttons
303313

304314
self.buttons = self.sort_buttons()
305315

306-
ctx.bot.loop.create_task(self._add_reactions(self.buttons.keys()))
316+
ctx.bot.loop.create_task(self._add_reactions(self.buttons))
307317

308318
await self._session_loop(ctx)
309319

310-
async def _default_indexer(self, control, ctx):
320+
async def _default_indexer(self, control, ctx, member):
311321
previous = self._index
312322

313323
if control == 'stop':

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
with open('requirements.txt') as f:
3030
requirements = f.read().splitlines()
3131

32-
version = '0.1.4'
32+
version = '0.1.7'
3333

3434
readme = ''
3535
with open('README.rst') as f:

0 commit comments

Comments
 (0)