1
0
Fork 0
mirror of synced 2024-09-29 17:01:19 +13:00

Remove audio files once the queue has ended

This commit is contained in:
Phxntxm 2017-02-06 16:34:06 -06:00
parent c02efe8c46
commit 09c9e34dbb

View file

@ -34,6 +34,7 @@ class VoiceState:
} }
self.volume = 50 self.volume = 50
self.downloader = download self.downloader = download
self.file_names = []
def is_playing(self): def is_playing(self):
# If our VoiceClient or current VoiceEntry do not exist, then we are not playing a song # If our VoiceClient or current VoiceEntry do not exist, then we are not playing a song
@ -59,8 +60,6 @@ class VoiceState:
self.player.stop() self.player.stop()
def toggle_next(self): def toggle_next(self):
# Delete the old file (screw caching, when on 5000+ Guilds this takes up too much space)
os.remove(self.current.filename)
# Set the Event so that the next song in the queue can be played # Set the Event so that the next song in the queue can be played
self.bot.loop.call_soon_threadsafe(self.play_next_song.set) self.bot.loop.call_soon_threadsafe(self.play_next_song.set)
@ -75,6 +74,7 @@ class VoiceState:
# Make sure we find a song # Make sure we find a song
while self.current is None: while self.current is None:
self.clear_audio_files()
await asyncio.sleep(1) await asyncio.sleep(1)
self.current = await self.songs.get_next_entry() self.current = await self.songs.get_next_entry()
@ -83,6 +83,10 @@ class VoiceState:
print("Downloading...") print("Downloading...")
await asyncio.sleep(1) await asyncio.sleep(1)
# Now add this file to our list of filenames, so that it can be deleted later
if self.current.filename not in self.file_names:
self.file_names.append(self.current.filename)
# Create the player object # Create the player object
self.current.player = self.voice.create_ffmpeg_player( self.current.player = self.voice.create_ffmpeg_player(
self.current.filename, self.current.filename,
@ -101,6 +105,11 @@ class VoiceState:
# Wait till the Event has been set, before doing our task again # Wait till the Event has been set, before doing our task again
await self.play_next_song.wait() await self.play_next_song.wait()
def clear_audio_files(self):
"""Deletes all the audio files this guild has created"""
for f in self.file_names:
os.remove(f)
self.file_names = []
class Music: class Music:
"""Voice related commands. """Voice related commands.