(todo): Small refactor.
Refactor `Tasklist` to allow for alternative (plugin) implementation.
This commit is contained in:
@@ -135,7 +135,7 @@ class Tasklist:
|
|||||||
)
|
)
|
||||||
self._refreshed_at = datetime.datetime.utcnow()
|
self._refreshed_at = datetime.datetime.utcnow()
|
||||||
|
|
||||||
def _format_tasklist(self):
|
async def _format_tasklist(self):
|
||||||
"""
|
"""
|
||||||
Generates a sequence of pages from the tasklist
|
Generates a sequence of pages from the tasklist
|
||||||
"""
|
"""
|
||||||
@@ -176,7 +176,7 @@ class Tasklist:
|
|||||||
hint = "Type `add <task>` to start adding tasks! E.g. `add Revise Maths Paper 1`."
|
hint = "Type `add <task>` to start adding tasks! E.g. `add Revise Maths Paper 1`."
|
||||||
task_blocks = [""] # Empty page so we can post
|
task_blocks = [""] # Empty page so we can post
|
||||||
|
|
||||||
# Create formtted page embeds, adding help if required
|
# Create formatted page embeds, adding help if required
|
||||||
pages = []
|
pages = []
|
||||||
for i, block in enumerate(task_blocks):
|
for i, block in enumerate(task_blocks):
|
||||||
embed = discord.Embed(
|
embed = discord.Embed(
|
||||||
@@ -233,6 +233,12 @@ class Tasklist:
|
|||||||
self.message = message
|
self.message = message
|
||||||
self.messages[message.id] = self
|
self.messages[message.id] = self
|
||||||
|
|
||||||
|
async def _update(self):
|
||||||
|
"""
|
||||||
|
Update the current message with the current page.
|
||||||
|
"""
|
||||||
|
await self.message.edit(embed=self.pages[self.current_page])
|
||||||
|
|
||||||
async def update(self, repost=None):
|
async def update(self, repost=None):
|
||||||
"""
|
"""
|
||||||
Update the displayed tasklist.
|
Update the displayed tasklist.
|
||||||
@@ -243,7 +249,7 @@ class Tasklist:
|
|||||||
|
|
||||||
# Update data and make page list
|
# Update data and make page list
|
||||||
self._refresh()
|
self._refresh()
|
||||||
self._format_tasklist()
|
await self._format_tasklist()
|
||||||
self._adjust_current_page()
|
self._adjust_current_page()
|
||||||
|
|
||||||
if self.message and not repost:
|
if self.message and not repost:
|
||||||
@@ -266,7 +272,8 @@ class Tasklist:
|
|||||||
|
|
||||||
if not repost:
|
if not repost:
|
||||||
try:
|
try:
|
||||||
await self.message.edit(embed=self.pages[self.current_page])
|
# TODO: Refactor into update method
|
||||||
|
await self._update()
|
||||||
# Add or remove paging reactions as required
|
# Add or remove paging reactions as required
|
||||||
should_have_paging = len(self.pages) > 1
|
should_have_paging = len(self.pages) > 1
|
||||||
|
|
||||||
@@ -572,21 +579,21 @@ class Tasklist:
|
|||||||
self.current_page %= len(self.pages)
|
self.current_page %= len(self.pages)
|
||||||
if self.show_help:
|
if self.show_help:
|
||||||
self.show_help = False
|
self.show_help = False
|
||||||
self._format_tasklist()
|
await self._format_tasklist()
|
||||||
await self.message.edit(embed=self.pages[self.current_page])
|
await self._update()
|
||||||
elif str_emoji == self.prev_emoji and user.id == self.member.id:
|
elif str_emoji == self.prev_emoji and user.id == self.member.id:
|
||||||
self.current_page -= 1
|
self.current_page -= 1
|
||||||
self.current_page %= len(self.pages)
|
self.current_page %= len(self.pages)
|
||||||
if self.show_help:
|
if self.show_help:
|
||||||
self.show_help = False
|
self.show_help = False
|
||||||
self._format_tasklist()
|
await self._format_tasklist()
|
||||||
await self.message.edit(embed=self.pages[self.current_page])
|
await self._update()
|
||||||
elif str_emoji == self.cancel_emoji and user.id == self.member.id:
|
elif str_emoji == self.cancel_emoji and user.id == self.member.id:
|
||||||
await self.deactivate(delete=True)
|
await self.deactivate(delete=True)
|
||||||
elif str_emoji == self.question_emoji and user.id == self.member.id:
|
elif str_emoji == self.question_emoji and user.id == self.member.id:
|
||||||
self.show_help = not self.show_help
|
self.show_help = not self.show_help
|
||||||
self._format_tasklist()
|
await self._format_tasklist()
|
||||||
await self.message.edit(embed=self.pages[self.current_page])
|
await self._update()
|
||||||
elif str_emoji == self.refresh_emoji and user.id == self.member.id:
|
elif str_emoji == self.refresh_emoji and user.id == self.member.id:
|
||||||
await self.update()
|
await self.update()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user