After a terrible flu, commiting search service.
authorHenry Bilby <henrymiller.engenheiro@gmail.com>
Thu, 28 May 2009 04:32:49 +0000 (00:32 -0400)
committerHenry Bilby <henrymiller.engenheiro@gmail.com>
Thu, 28 May 2009 04:32:49 +0000 (00:32 -0400)
zukebox_server/src/services/search/zukebox_search.py [new file with mode: 0644]

diff --git a/zukebox_server/src/services/search/zukebox_search.py b/zukebox_server/src/services/search/zukebox_search.py
new file mode 100644 (file)
index 0000000..c1f0c22
--- /dev/null
@@ -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}
+