Changing View in Queue message and creating new handler to jump to music

This commit is contained in:
Rafael Vargas
2022-08-07 20:03:13 -04:00
parent 15f8ea7cb2
commit 2d27a2f080
12 changed files with 244 additions and 24 deletions

10
UI/Views/AbstractView.py Normal file
View File

@@ -0,0 +1,10 @@
from abc import ABC, abstractmethod
class AbstractView(ABC):
@abstractmethod
async def update(self) -> None:
pass
def set_message(self, message) -> None:
pass

View File

@@ -1,21 +1,25 @@
from typing import List
from discord import Button, Message
from discord import Message
from discord.ui import View
from Config.Emojis import VEmojis
from Music.VulkanBot import VulkanBot
from UI.Views.AbstractView import AbstractView
from UI.Buttons.AbstractItem import AbstractItem
emojis = VEmojis()
class BasicView(View):
class BasicView(View, AbstractView):
"""View that receives buttons to hold, in timeout disable buttons"""
def __init__(self, bot: VulkanBot, buttons: List[Button], timeout: float = 6000):
def __init__(self, bot: VulkanBot, buttons: List[AbstractItem], timeout: float = 6000):
super().__init__(timeout=timeout)
self.__bot = bot
self.__message: Message = None
for button in buttons:
# Set the buttons to have a instance of the view that contains them
button.set_view(self)
self.add_item(button)
async def on_timeout(self) -> None:
@@ -29,3 +33,7 @@ class BasicView(View):
def set_message(self, message: Message) -> None:
self.__message = message
async def update(self):
if self.__message is not None:
await self.__message.edit(view=self)