<gh_stars>0
from discord.ext.commands import Context
from discord import Client
from Controllers.AbstractController import AbstractController
from Controllers.ControllerResponse import ControllerResponse
from Utils.Cleaner import Cleaner


class NowPlayingController(AbstractController):
    def __init__(self, ctx: Context, bot: Client) -> None:
        super().__init__(ctx, bot)
        self.__cleaner = Cleaner()

    async def run(self) -> ControllerResponse:
        if not self.player.playing:
            embed = self.embeds.NOT_PLAYING()
            return ControllerResponse(self.ctx, embed)

        if self.player.playlist.looping_one:
            title = self.messages.ONE_SONG_LOOPING
        else:
            title = self.messages.SONG_PLAYING
        await self.__cleaner.clean_messages(self.ctx, self.config.CLEANER_MESSAGES_QUANT)

        info = self.player.playlist.current.info
        embed = self.embeds.SONG_INFO(info, title)
        return ControllerResponse(self.ctx, embed)
