mirror of
https://github.com/RafaelSolVargas/Vulkan.git
synced 2025-10-29 16:57:23 +00:00
64 lines
2.3 KiB
Python
64 lines
2.3 KiB
Python
from typing import List
|
|
from discord import Embed, Message
|
|
from Music.VulkanBot import VulkanBot
|
|
from Parallelism.ProcessInfo import ProcessInfo
|
|
from Config.Configs import VConfigs
|
|
from Config.Messages import Messages
|
|
from Music.Song import Song
|
|
from Config.Embeds import VEmbeds
|
|
from UI.Views.PlayerView import PlayerView
|
|
|
|
|
|
class MessagesController:
|
|
def __init__(self, bot: VulkanBot) -> None:
|
|
self.__bot = bot
|
|
self.__previousMessages = []
|
|
self.__configs = VConfigs()
|
|
self.__messages = Messages()
|
|
self.__embeds = VEmbeds()
|
|
|
|
async def sendNowPlaying(self, processInfo: ProcessInfo, song: Song) -> None:
|
|
# Get the lock of the playlist
|
|
print('Entrei')
|
|
playlistLock = processInfo.getLock()
|
|
playlist = processInfo.getPlaylist()
|
|
with playlistLock:
|
|
print('A')
|
|
if playlist.isLoopingOne():
|
|
title = self.__messages.ONE_SONG_LOOPING
|
|
else:
|
|
title = self.__messages.SONG_PLAYING
|
|
|
|
embed = self.__embeds.SONG_INFO(song.info, title)
|
|
view = PlayerView(self.__bot)
|
|
channel = processInfo.getTextChannel()
|
|
|
|
await self.__deletePreviousNPMessages()
|
|
await channel.send(embed=embed, view=view)
|
|
self.__previousMessages.append(await self.__getSendedMessage())
|
|
|
|
async def __deletePreviousNPMessages(self) -> None:
|
|
for message in self.__previousMessages:
|
|
try:
|
|
await message.delete()
|
|
except:
|
|
pass
|
|
self.__previousMessages.clear()
|
|
|
|
async def __getSendedMessage(self) -> Message:
|
|
stringToIdentify = 'Uploader:'
|
|
last_messages: List[Message] = await self.__textChannel.history(limit=5).flatten()
|
|
|
|
for message in last_messages:
|
|
try:
|
|
if message.author == self.__bot.user:
|
|
if len(message.embeds) > 0:
|
|
embed: Embed = message.embeds[0]
|
|
if len(embed.fields) > 0:
|
|
if embed.fields[0].name == stringToIdentify:
|
|
return message
|
|
|
|
except Exception as e:
|
|
print(f'DEVELOPER NOTE -> Error cleaning messages {e}')
|
|
continue
|