From: Henry Bilby Date: Thu, 28 May 2009 04:32:49 +0000 (-0400) Subject: After a terrible flu, commiting search service. X-Git-Url: http://git.maemo.org/git/?p=zukebox;a=commitdiff_plain;h=787a514dd08adf96c61747963d702f29ac7e9b0d After a terrible flu, commiting search service. --- 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} +