X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=zukebox_server%2Fsrc%2Fplugins%2Faudio_library%2Flibrary.py;fp=zukebox_server%2Fsrc%2Fplugins%2Faudio_library%2Flibrary.py;h=db2a2c113d6c0c1365e0c2e34964907824cf119d;hb=8e9498e3189c42076be0b354ba6670b8184620ed;hp=0000000000000000000000000000000000000000;hpb=5e0971c907e60ec9f9b14ac8a764656bf3bf72ad;p=zukebox diff --git a/zukebox_server/src/plugins/audio_library/library.py b/zukebox_server/src/plugins/audio_library/library.py new file mode 100644 index 0000000..db2a2c1 --- /dev/null +++ b/zukebox_server/src/plugins/audio_library/library.py @@ -0,0 +1,60 @@ + +import os.path +from lightmediascanner import LightMediaScanner + +from brisa.core.plugin import PluginInterface +from brisa.core.config import manager as mgr +from brisa.core import webserver + +plugin_section = "zukebox_server_plugin-audio-library" +class ZAudioLibrary(PluginInterface): + """Audio Library enables sharing of locally stored audios + + """ + name = "audio_library" + usage = mgr.get_parameter_bool(plugin_section, "enable") + db_path = mgr.get_parameter(plugin_section, "database_location") + lms = None + audio_types = ["audio-dummy", "id3", "ogg", "pls", "m3u", "rm", "asf", "flac"] + containers = {} + + def load(self): + self._load_config() + self._load_scanner() + self._load_audio() + + def publish(self, webserver): + webserver.add_resource(self.name, AudioLibraryResource()) + + def _load_config(self): + self.audio_folder = mgr.get_parameter(plugin_section, "audio_folder") + self.already_scanned = mgr.get_parameter_bool(plugin_section, ".scanned") + if not self.already_scanned: + mgr.set_parameter(plugin_section, ".scanned", True) + mgr.save() + + def _load_scanner(self): + self.lms = LightMediaScanner(self.db_path) + for type in self.audio_types: + self.lms.parser_find_and_add(type) + + def _load_audio(self): + rp = self.plugin_manager.root_plugin + audio_container = rp.get_container("Audio") + if not audio_container: + audio_container = rp.add_container("Audio", 0) + + self.all_container = rp.add_container("All Audios", + audio_container.id, self) + self.containers[self.all_container.id] = self.all_container + + def process_audio_folder(self): + for folder in self.audio_folders: + self.lms.process(folder) + + +class AudioLibraryResource(webserver.CustomResource): + def get_render(self, uri, request): + id = uri.split("/")[-1].split("-")[1] + #path = + return webserver.Data("", "")