Example #1
0
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)
Example #2
0
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)
Example #3
0
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'))
Example #4
0
 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')
Example #5
0
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()')
Example #6
0
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()')
Example #7
0
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()')