Exemplo n.º 1
0
def music_add_artist_to_library(artist_name):
    import math
    library_folder = setup_library(
        plugin.get_setting(SETTING_MUSIC_LIBRARY_FOLDER, unicode))
    album_results = lastfm.get_artist_top_albums(artist_name)
    total_albums = len(album_results)
    index = 0
    pDialog = xbmcgui.DialogProgress()
    pDialog.create(
        '[COLOR yellow]chappaai[/COLOR]',
        _("{0} {1} {2}").format(_("Adding"), artist_name, _("to library")))
    for album in album_results["album"]:
        album_name = to_utf8(album["name"])
        percent_done = int(math.floor((float(index) / total_albums) * 100))
        pDialog.update(
            percent_done,
            _("{0} {1} - {2} {3}").format(_("Adding"), artist_name, album_name,
                                          _("to library")))
        track_results = lastfm.get_album_info(artist_name, album_name)
        for track in track_results["tracks"]["track"]:
            if pDialog.iscanceled():
                pDialog.update(0)
                return
            track_name = to_utf8(track["name"])
            add_music_to_library(library_folder, artist_name, album_name,
                                 track_name)
        index += 1
        pDialog.update(0)
    scan_library(type="music")
Exemplo n.º 2
0
def music_add_artist_to_library(artist_name):
    import math

    library_folder = setup_library(plugin.get_setting(SETTING_MUSIC_LIBRARY_FOLDER))
    album_results = lastfm.get_artist_top_albums(artist_name)
    total_albums = len(album_results)
    index = 0
    pDialog = xbmcgui.DialogProgress()
    pDialog.create(
        "[COLOR ff0084ff]M[/COLOR]etalli[COLOR ff0084ff]Q[/COLOR]",
        _("{0} {1} {2}").format(_("Adding"), artist_name, _("to library")),
    )
    for album in album_results["album"]:
        album_name = to_utf8(album["name"])
        percent_done = int(math.floor((float(index) / total_albums) * 100))
        pDialog.update(
            percent_done, _("{0} {1} - {2} {3}").format(_("Adding"), artist_name, album_name, _("to library"))
        )
        track_results = lastfm.get_album_info(artist_name, album_name)
        for track in track_results["tracks"]["track"]:
            if pDialog.iscanceled():
                pDialog.update(0)
                return
            track_name = to_utf8(track["name"])
            add_music_to_library(library_folder, artist_name, album_name, track_name)
        index += 1
        pDialog.update(0)
    scan_library(type="music")
Exemplo n.º 3
0
def music_artist_albums(artist_name, page):
    artist_name = to_utf8(artist_name)
    results = lastfm.get_artist_top_albums(artist_name, page)
    items = [{
        'label':
        _("All Tracks"),
        'path':
        plugin.url_for("music_artist_tracks", artist_name=artist_name),
        'icon':
        get_icon_path("music")
    }]
    for album in results["album"]:
        album_name = to_utf8(album["name"])
        image = album['image'][-1]['#text']
        artist_album_name = to_utf8(album['artist']['name'])
        context_menu = [(_("Scan item to library"), "RunPlugin({0})".format(
            plugin.url_for("music_add_album_to_library",
                           artist_name=artist_album_name,
                           album_name=album_name)))]
        item = {
            'thumbnail':
            image,
            'label':
            "{0}".format(album_name),
            'info': {
                'title': album_name,
                'artist': [artist_album_name],
            },
            'info_type':
            'music',
            'path':
            plugin.url_for("music_artist_album_tracks",
                           artist_name=artist_name,
                           album_name=album_name),
            'context_menu':
            context_menu
        }
        items.append(item)
    if results["@attr"]["totalPages"] > page:
        next_page = int(page) + 1
        items.append({
            'label':
            _("Next >>"),
            'icon':
            get_icon_path("item_next"),
            'path':
            plugin.url_for("music_artist_albums",
                           artist_name=artist_name,
                           page=next_page)
        })
    if FORCE == True:
        plugin.set_view_mode(VIEW)
        return items
    else:
        return items
Exemplo n.º 4
0
def music_artist_albums(artist_name, page):
    artist_name = to_utf8(artist_name)
    results = lastfm.get_artist_top_albums(artist_name, page)
    items = [
        {
            'label': _("All Tracks"),
            'path': plugin.url_for("music_artist_tracks", artist_name=artist_name),
            'icon': get_icon_path("music")
        }
    ]
    for album in results["album"]:
        album_name = to_utf8(album["name"])
        image = album['image'][-1]['#text']
        artist_album_name = to_utf8(album['artist']['name'])
        context_menu = [
            (
                _("Scan item to library"),
                "RunPlugin({0})".format(plugin.url_for("music_add_album_to_library", artist_name=artist_album_name,
                                                       album_name=album_name))
            )
        ]
        item = {
            'thumbnail': image,
            'label': "{0}".format(album_name),
            'info': {
                'title': album_name,
                'artist': [artist_album_name],
            },
            'info_type': 'music',
            'path': plugin.url_for("music_artist_album_tracks", artist_name=artist_name, album_name=album_name),
            'context_menu': context_menu
        }
        items.append(item)
    if results["@attr"]["totalPages"] > page:
        next_page = int(page) + 1
        items.append({
            'label': _("Next >>"),
            'icon': get_icon_path("item_next"),
            'path': plugin.url_for("music_artist_albums", artist_name=artist_name, page=next_page)
        })
    if FORCE == True: plugin.set_view_mode(VIEW); return items
    else: return items
Exemplo n.º 5
0
def music_artist_albums(artist_name, page):
    artist_name = to_utf8(artist_name)
    results = lastfm.get_artist_top_albums(artist_name, page)
    items = [
        {
            "label": _("All Tracks"),
            "path": plugin.url_for("music_artist_tracks", artist_name=artist_name),
            "icon": get_icon_path("music"),
        }
    ]
    for album in results["album"]:
        album_name = to_utf8(album["name"])
        image = album["image"][-1]["#text"]
        artist_album_name = to_utf8(album["artist"]["name"])
        context_menu = [
            (
                _("Add to library"),
                "RunPlugin({0})".format(
                    plugin.url_for("music_add_album_to_library", artist_name=artist_album_name, album_name=album_name)
                ),
            )
        ]
        item = {
            "thumbnail": image,
            "label": "{0}".format(album_name),
            "info": {"title": album_name, "artist": [artist_album_name]},
            "info_type": "music",
            "path": plugin.url_for("music_artist_album_tracks", artist_name=artist_name, album_name=album_name),
            "context_menu": context_menu,
        }
        items.append(item)
    if results["@attr"]["totalPages"] > page:
        next_page = int(page) + 1
        items.append(
            {
                "label": _("Next >>"),
                "icon": get_icon_path("item_next"),
                "path": plugin.url_for(music_artist_albums, artist_name=artist_name, page=next_page),
            }
        )
    return items