def search_type(field): last_field = addon.getSetting('last_search_field') search_text = addon.getSetting('last_search_text') if last_field != field or not search_text: addon.setSetting('last_search_field', field) keyboard = xbmc.Keyboard('', _T(30206)) keyboard.doModal() if keyboard.isConfirmed(): search_text = keyboard.getText() else: search_text = '' addon.setSetting('last_search_text', search_text) if search_text: searchresults = session.search(field, search_text) add_items(searchresults.artists, content=CONTENT_FOR_TYPE.get('files'), end=False) add_items(searchresults.albums, end=False) add_items(searchresults.playlists, end=False) add_items(searchresults.tracks, end=False) add_items(searchresults.videos, end=True) else: #xbmcplugin.setContent(plugin.handle, content='files') xbmcplugin.endOfDirectory(plugin.handle, succeeded=False, updateListing=False)
def search(): addon.setSetting('last_search_field', '') addon.setSetting('last_search_text', '') add_directory(_T(30106), plugin.url_for(search_type, field='artist')) add_directory(_T(30107), plugin.url_for(search_type, field='album')) add_directory(_T(30108), plugin.url_for(search_type, field='playlist')) add_directory(_T(30109), plugin.url_for(search_type, field='track')) add_directory(_T(30110), plugin.url_for(search_type, field='video'), end=True)
def user_playlists(): items = session.user.playlists() # Find Default Playlists via title if ID is not available anymore all_ids = list(session.user.playlists_cache.keys()) for what in ['track', 'album', 'video']: playlist_id = addon.getSetting('default_%splaylist_id' % what) playlist_title = addon.getSetting('default_%splaylist_title' % what) if playlist_id and playlist_title and playlist_id not in all_ids: for playlist_id in all_ids: if session.user.playlists_cache.get(playlist_id).get('title', '') == playlist_title: addon.setSetting('default_%splaylist_id' % what, playlist_id) addon.setSetting('default_%splaylist_title' % what, playlist_title) break add_items(items, content=CONTENT_FOR_TYPE.get('albums'))
def _start_servers(self): if self.http_server == None and self.http_thread == None: try: self.http_server = MyHTTPServer(('', self.config.fanart_server_port), MyHttpRequestHandler) except: log('Fanart Server not startet on port %d' % self.config.fanart_server_port, level=xbmc.LOGERROR) self.http_server = MyHTTPServer(('', 0), MyHttpRequestHandler) addon.setSetting('fanart_server_port', '%d' % self.http_server.server_address[1]) self.http_thread = Thread(target=self.http_server.serve_forever) self.http_server.server_activate() self.http_server.timeout = 2 self.http_thread.start() log('Fanart Server started on port %d' % self.http_server.server_address[1]) else: log('Fanart Server already running')
def login(): username = addon.getSetting('username') password = addon.getSetting('password') subscription_type = [SubscriptionType.hifi, SubscriptionType.premium][int('0' + addon.getSetting('subscription_type'))] if not username or not password: # Ask for username/password dialog = xbmcgui.Dialog() username = dialog.input(_T(30008), username) if not username: return password = dialog.input(_T(30009), option=xbmcgui.ALPHANUM_HIDE_INPUT) if not password: return selected = dialog.select(_T(30010), [SubscriptionType.hifi, SubscriptionType.premium]) if selected < 0: return subscription_type = [SubscriptionType.hifi, SubscriptionType.premium][selected] ok = session.login(username, password, subscription_type) if ok and (not addon.getSetting('username') or not addon.getSetting('password')): # Ask about remembering username/password dialog = xbmcgui.Dialog() if dialog.yesno(plugin.name, _T(30209)): addon.setSetting('username', username) addon.setSetting('password', password) else: addon.setSetting('password', '') if not ok: xbmcgui.Dialog().notification(plugin.name, _T(30253) , icon=xbmcgui.NOTIFICATION_ERROR) xbmc.executebuiltin('Container.Refresh()')
def user_playlist_reset_default(item_type): if item_type.lower().find('track') >= 0: addon.setSetting('default_trackplaylist_id', '') addon.setSetting('default_trackplaylist_title', '') elif item_type.lower().find('video') >= 0: addon.setSetting('default_videoplaylist_id', '') addon.setSetting('default_videoplaylist_title', '') elif item_type.lower().find('album') >= 0: addon.setSetting('default_albumplaylist_id', '') addon.setSetting('default_albumplaylist_title', '') xbmc.executebuiltin('Container.Refresh()')
def user_playlist_set_default(item_type, playlist_id): item = session.get_playlist(playlist_id) if item: if item_type.lower().find('track') >= 0: addon.setSetting('default_trackplaylist_id', item.id) addon.setSetting('default_trackplaylist_title', item.title) elif item_type.lower().find('video') >= 0: addon.setSetting('default_videoplaylist_id', item.id) addon.setSetting('default_videoplaylist_title', item.title) elif item_type.lower().find('album') >= 0: addon.setSetting('default_albumplaylist_id', item.id) addon.setSetting('default_albumplaylist_title', item.title) xbmc.executebuiltin('Container.Refresh()')