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.")
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())
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
def __unload(self): lavalink.unregister_event_listener(self.ll_check)
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())
def cog_unload(self): lavalink.unregister_event_listener(self.event_handler) self.bot.loop.create_task(self._clean_up())
def cog_unload(self): # To delete at next audio update. lavalink.unregister_event_listener(self.event_handler)