[bot]
comment = Hi, I'm here to play radio, local music or youtube/soundcloud music. Have fun !
volume = 0.1
-admin = User1;User2;
-music_folder = /home/azlux/botamusique/music_folder
+admin = User1;User2; # Allow user to kill the bot
+music_folder = /home/azlux/botamusique/music_folder/
tmp_folder = /tmp/
+
+# in Mo, 0 for no cache, -1 for illimited size
+tmp_folder_max_size = 10
+
ignored_folders = tmp
ignored_files = Thumbs.db
import json
import http.client
import struct
+import os
def get_radio_server_description(url):
return res.group(1)
else:
return False
+
+
+def get_size_folder(path):
+ folder_size = 0
+ for (path, dirs, files) in os.walk(path):
+ for file in files:
+ filename = os.path.join(path, file)
+ folder_size += os.path.getsize(filename)
+ return int(folder_size / (1024 * 1024))
+
+
+def clear_tmp_folder(path, size):
+ if size == -1:
+ return
+ elif size == 0:
+ for (path, dirs, files) in os.walk(path):
+ for file in files:
+ filename = os.path.join(path, file)
+ os.remove(filename)
+ else:
+ if get_size_folder(path=path) > size:
+ all_files = ""
+ for (path, dirs, files) in os.walk(path):
+ all_files = [os.path.join(path, file) for file in files]
+ all_files.sort(key=lambda x: os.path.getmtime(x))
+ size_tp = 0
+ print(all_files)
+ for idx, file in enumerate(all_files):
+ size_tp += os.path.getsize(file)
+ if int(size_tp/(1024*1024)) > size:
+ logging.info("Cleaning tmp folder")
+ to_remove = all_files[idx:]
+ print(to_remove)
+ for f in to_remove:
+ logging.debug("Removing " + f)
+ os.remove(os.path.join(path, f))
+ return
url = media.get_url(var.current_music[1])
if not url:
return
+ media.clear_tmp_folder(var.config.get('bot', 'tmp_folder'), var.config.getint('bot', 'tmp_folder_max_size'))
path, title = self.download_music(url)
var.current_music[1] = url
'outtmpl': path,
'noplaylist': True,
'writethumbnail': True,
+ 'updatetime': False,
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',