Skip to content

Commit 602b888

Browse files
committed
fixup! feat(rlstats): add unsubscribe command
1 parent 8c54ac3 commit 602b888

File tree

1 file changed

+22
-12
lines changed

1 file changed

+22
-12
lines changed

rlstats/rlstats.py

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -147,11 +147,12 @@ async def interaction_check(self, interaction: discord.Interaction) -> bool:
147147
return True
148148

149149
async def on_timeout(self) -> None:
150+
print("GuildSubscriptionDeleteQuestionView timeout")
150151
await self.original_interaction.edit_original_response(
151152
content=self.parent.message_content, view=self.parent
152153
)
153154

154-
@discord.ui.button(label="Delete")
155+
@discord.ui.button(label="Delete", style=discord.ButtonStyle.danger)
155156
async def delete_button(
156157
self,
157158
interaction: discord.Interaction,
@@ -209,6 +210,7 @@ async def send(self) -> None:
209210
self.message = await self.ctx.send(self.message_content, view=self)
210211

211212
async def on_timeout(self) -> None:
213+
print("GuildSubscriptionView timeout")
212214
if self.message is None:
213215
return
214216
await self.message.edit(content="This message's view has expired.", view=None)
@@ -309,27 +311,35 @@ async def player_select(
309311
select: discord.ui.Select[GuildSubscriptionView],
310312
) -> None:
311313
raw_platform, player_id = select.values[0].split("_", maxsplit=1)
312-
confirm_view = GuildSubscriptionDeleteQuestionView(
313-
parent=self,
314-
original_interaction=interaction,
315-
author=self.ctx.author,
316-
)
317-
await interaction.response.edit_message(view=confirm_view)
318-
await confirm_view.wait()
319-
if not confirm_view.delete_interaction:
320-
return
321-
322314
for idx, option in enumerate(self.player_select.options):
323315
if option.value == select.values[0]:
324316
deleted_option = self.player_select.options.pop(idx)
325317
break
326318
else:
327-
await confirm_view.delete_interaction.response.edit_message(
319+
await interaction.response.edit_message(
328320
content=(
329321
"Unexpected error occurred"
330322
" and the selected player could not be deleted."
331323
),
324+
view=None,
332325
)
326+
return
327+
328+
confirm_view = GuildSubscriptionDeleteQuestionView(
329+
parent=self,
330+
original_interaction=interaction,
331+
author=self.ctx.author,
332+
)
333+
await interaction.response.edit_message(
334+
content=(
335+
"Are you sure that you want to unsubscribe to updates for"
336+
f" {deleted_option.label} ({deleted_option.description})?"
337+
),
338+
view=confirm_view,
339+
)
340+
await confirm_view.wait()
341+
if not confirm_view.delete_interaction:
342+
return
333343
await confirm_view.delete_interaction.response.edit_message(
334344
content=self.message_content, view=self
335345
)

0 commit comments

Comments
 (0)