From ba86ee03a6351d740f0db8a8d8638a5f4e61c0b5 Mon Sep 17 00:00:00 2001 From: Henry Bilby Date: Thu, 28 May 2009 00:32:49 -0400 Subject: [PATCH] After a terrible flu, commiting search service. --- .../src/services/search/zukebox_search.py | 67 ++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 zukebox_server/src/services/search/zukebox_search.py diff --git a/zukebox_server/src/services/search/zukebox_search.py b/zukebox_server/src/services/search/zukebox_search.py new file mode 100644 index 0000000..c1f0c22 --- /dev/null +++ b/zukebox_server/src/services/search/zukebox_search.py @@ -0,0 +1,67 @@ +#The zukebox server search service implementation + +from brisa.core.reactors import install_default_reactor +reactor = install_default_reactor() + +from os.path import join, dirname, abspath + +from brisa.core.config import manager +from brisa.upnp.device import Device, Service, ServiceController +from zukebox_server.src.plugins.zfacade import ZFacade + +plugin_section = 'zukebox_server_plugin-audio-library' +db_path = manager.get_parameter(plugin_section, 'database_location') +webserver = None + +class Search(Service): + """Class Search + Implements a search service of zukebox-server + """ + + service_type = "urn:schemas-upnp-org:service:Search:1" + service_name = "Search" + + def __init__(self, xml_path): + scpd_path = pjoin(xml_path, "zukebox-search-scpd.xml"); + Service.__init__(self, service_name, service_type, '', scpd_path, + SearchController(service_type)) + + def get_list_audio(self): + return self.control_controller.get_list_audio() + +class SearchController(ServiceController): + """Class Search: + Implements a search service of zukebox-server + """ + facade = ZFacade(db_path, webserver) + + def __init__(self, service_type): + ServiceController.__init__(self, service_type) + self.genre_list = [] + self.name_music_list = [] + self.name_artist_list = [] + self.all_audio_list = [] + + def soap_SearchGenreList(self, *args, **kargs): + self.genreType = kwargs['GenreType'] + self.genre_list = self.facade.get_audio_genre(self.genreType) + rt = {"Genre_list": self.genre_list} + return {"SearchGenreList": rt} + + def soap_SearchMusicList(self, *args, **kargs): + self.musicName = kwargs['MusicName'] + self.name_music_list = self.facade.get_audio_item(self.musicName) + rt = {"Music_list": self.name_music_list} + return {"SearchMusicList": rt} + + def soap_SearchArtistList(self, *args, **kargs): + self.artistName = kwargs['ArtistName'] + self.name_artist_list = self.facade.get_audio_artist(self.artistName) + rt = {"Artist_list": self.name_artist_list} + return {"SearchArtistList": rt} + + def soap_SearchAllAudioList(self, *args, **kargs): + self.all_audio_list = self.facade.get_audio_all() + rt = {"All_Audio_list": self.all_audio_list} + return {"SearchAllAudioList": rt} + -- 1.7.9.5