Beispiel #1
0
async def wait_for_end(player, event, extra):
    log.debug(f"Handling an event: {event} with extra {extra}")
    if event == lavalink.LavalinkEvents.TRACK_END:
        if extra == lavalink.TrackEndReason.FINISHED or \
        extra == lavalink.TrackEndReason.CLEANUP or \
        extra == lavalink.TrackEndReason.REPLACED or \
        extra == lavalink.TrackEndReason.STOPPED:
            #the track needs to be deleted
            log.debug(f"We need to delete a track")
            queue = [t.uri for t in player.queue]
            log.debug(f"Current queue is {queue}")
            removed = []
            tmpfiles = player.fetch('gtts-tmp-files', [])
            log.debug(f"Temp files are {tmpfiles}")
            for tmpfile in tmpfiles:
                if tmpfile not in queue:
                    rmpath = cog_data_path(raw_name='Audio') / tmpfile
                    os.remove(rmpath)
                    log.info(f"Deleted {rmpath}")
                    removed.append(tmpfile)
            for tmpfile in removed:
                tmpfiles.remove(tmpfile)
            if len(tmpfiles) == 0:
                lavalink.unregister_event_listener(wait_for_end)
                log.debug("Unregistering myself")
        elif extra is lavalink.TrackEndReason.LOAD_FAILED:
            #the track didn't load. should we try again?
            log.info("a track failed to load.")
Beispiel #2
0
    def lavalink_restart_connect(self) -> None:
        lavalink.unregister_event_listener(self.lavalink_event_handler)
        lavalink.unregister_update_listener(self.lavalink_update_handler)
        if self.lavalink_connect_task:
            self.lavalink_connect_task.cancel()
        if self._restore_task:
            self._restore_task.cancel()

        self._restore_task = None
        lavalink.register_event_listener(self.lavalink_event_handler)
        lavalink.register_update_listener(self.lavalink_update_handler)
        self.lavalink_connect_task = self.bot.loop.create_task(self.lavalink_attempt_connect())
Beispiel #3
0
    def cog_unload(self) -> None:
        if not self.cog_cleaned_up:
            self.bot.dispatch("red_audio_unload", self)
            self.session.detach()
            self.bot.loop.create_task(self._close_database())
            if self.player_automated_timer_task:
                self.player_automated_timer_task.cancel()

            if self.lavalink_connect_task:
                self.lavalink_connect_task.cancel()

            if self.cog_init_task:
                self.cog_init_task.cancel()

            lavalink.unregister_event_listener(self.lavalink_event_handler)
            self.bot.loop.create_task(lavalink.close())
            if self.player_manager is not None:
                self.bot.loop.create_task(self.player_manager.shutdown())

            self.cog_cleaned_up = True
Beispiel #4
0
 def __unload(self):
     lavalink.unregister_event_listener(self.ll_check)
Beispiel #5
0
 def cog_unload(self):
     lavalink.unregister_event_listener(
         self.event_handler)  # To delete at next audio update.
     self.bot.loop.create_task(self._clean_up())
Beispiel #6
0
 def cog_unload(self):
     lavalink.unregister_event_listener(self.event_handler)
     self.bot.loop.create_task(self._clean_up())
Beispiel #7
0
 def cog_unload(self):  # To delete at next audio update.
     lavalink.unregister_event_listener(self.event_handler)