Пример #1
0
def get_queue():
    data = snr.get_queue()
    shows = []
    for show in data:
        name = show['movie']['title']
        try:
            thumb = show['movie']['images'][0]['url']
            fanart = show['movie']['images'][1]['url']
        except IndexError:
            thumb = ''
            fanart = ''
            xbmc.log("Radarr get_queue: Error setting Artwork...")
        totalsize = show['size'] * 1e-9
        perc = 100 - (100 * float(show['sizeleft'])/float(show['size']))
        name += '      [COLOR FF3576F9]%s%%[/COLOR] ' % round(perc, 1)
        name += ' [COLOR FF3576F9]of  %sGB[/COLOR] ' % round(totalsize, 2)
        show_id = show['id']
        #seasons = 'na'
        #dir_show = get_appended_path(dir_movies, str(show_id))
        #file = 'seasons.json'
        #file_path = get_appended_path(dir_show, file)
        #write_json(file_path, seasons)
        shows.append({'name': name, 'url': str(show_id), 'mode': 'getShow', 'type': 'dir',
                      'images': {'thumb': thumb, 'fanart': fanart}})
    add_entries(shows)
    #Sort ignoring 'The'
    xbmcplugin.addSortMethod(pluginhandle, xbmcplugin.SORT_METHOD_LABEL_IGNORE_THE)
    xbmcplugin.endOfDirectory(pluginhandle)
Пример #2
0
def list_shows(data):
    shows = []
    for show in data:
        name = show['title'].encode('utf-8')
        thumb = host_url + show['images'][2]['url'] + '&apikey={}'.format(
            api_key)
        #banner = host_url + show['images'][1]['url'] + '&apikey={}'.format(api_key)
        fanart = host_url + show['images'][0]['url'] + '&apikey={}'.format(
            api_key)
        show_id = show['id']
        seasons = show['seasons']
        dir_show = get_appended_path(dir_shows, str(show_id))
        file = 'seasons.json'
        file_path = get_appended_path(dir_show, file)
        write_json(file_path, seasons)
        shows.append({
            'name': name,
            'url': str(show_id),
            'mode': 'getShow',
            'type': 'dir',
            'images': {
                'thumb': thumb,
                'fanart': fanart
            }
        })
    add_entries(shows)
    xbmcplugin.endOfDirectory(pluginhandle)
Пример #3
0
def list_season(show_id, season_id):
    xbmc.log("List Season")
    season = []
    #show_id = xbmc.getInfoLabel("ListItem.tvshowtitle")
    #season_id = xbmc.getInfoLabel("ListItem.season")
    xbmc.log("season_id")
    xbmc.log(str(season_id))
    dir_show = get_appended_path(dir_shows, str(show_id))
    file_db = get_appended_path(dir_show, 'episodes.json')
    xbmc.log('filedb')
    xbmc.log(str(file_db))
    data = read_json(file_db)
    for episode in data:
        if str(episode['seasonNumber']) != season_id:
            continue
        else:
            xbmc.log("FOUND")
            name = get_episode_name(episode)
            episode = episode['episodeNumber']
            season.append({
                'name': name,
                'mode': 'end',
                'show': str(show_id),
                'episode': episode,
                'type': 'dir'
            })
    add_entries(season)
    xbmcplugin.endOfDirectory(pluginhandle)
Пример #4
0
def list_season(show_id, season_id):
    xbmc.log("List Season")
    season = []
    thumb = xbmc.getInfoLabel('ListItem.Thumb')
    fanart = xbmc.getInfoLabel('ListItem.Art(fanart)')
    xbmc.log("season_id")
    xbmc.log(str(season_id))
    dir_show = get_appended_path(dir_shows, str(show_id))
    file_db = get_appended_path(dir_show, 'episodes.json')
    xbmc.log('filedb')
    xbmc.log(str(file_db))
    data = read_json(file_db)
    for episode in data:
        xbmc.log("Sonarr list_season(episodes): " + str(episode))
        if str(episode['seasonNumber']) != season_id:
            continue
        else:
            episodeid = str(episode['id'])
            name = get_episode_name(episode)
            episode = episode['episodeNumber']
            season.append({
                'name': name,
                'mode': 'addEpisode',
                'show': str(show_id),
                'episode': episode,
                'episodeid': episodeid,
                'type': 'dir',
                'images': {
                    'thumb': thumb,
                    'fanart': fanart
                }
            })
    add_entries(season)
    xbmcplugin.endOfDirectory(pluginhandle)
Пример #5
0
def get_episodes(name):
    xbmc.log(log_msg + '!GET EPISODES!', loglevel)
    xbmc.log(log_msg + 'from addon: ' +name, loglevel)
    items = []
    addon_id = name
    db_file = dir_db + addon_id + '.json'
    db_all = read_json(db_file)
    name = get_addon_name(addon_id)
    if addon_id != 'unknown' and addon_id != 'Kodi-DB':
        name = TRANSLATE(30011)+' '+name
        thumb = get_addon_icon(addon_id)
        fanart = get_addon_fanart(addon_id)
        items.append({"name": name, "url": addon_id, "mode": "to_addon", "type": "dir",
                      "images": {"thumb": thumb, "fanart": fanart},
                      "infolabels": {"title": name}})
    for i in reversed(db_all):
        try:
            name = i['name']
            url = i['link']
            plot = i['plot']
            iconimage = i['icon']
            duration = i['dura']
            date_added = i['date']
            fanart = ''
            if enab_fana:
                if 'fana' in i:
                    fanart = i['fana']
            cm = get_cm(["episodes"])
            items.append({
                "name": name, "url": url, "mode": "play", "type": "video",
                "infolabels": {"title": name, "duration": duration, "writer": addon_id, "plot": plot, "aired": date_added},
                "images": {"thumb": iconimage, "fanart": fanart}, "cm": cm})
        except KeyError:
            pass
    add_entries(items)
Пример #6
0
def root():
    mall_shows = {
        'name': TRANSLATE(30005),
        'mode': 'getAllShows',
        'type': 'dir',
        'images': {
            'thumb': addonicon,
            'fanart': addonfanart
        }
    }
    madd_show = {
        'name': TRANSLATE(30009),
        'mode': 'addShow',
        'type': 'dir',
        'images': {
            'thumb': addonicon,
            'fanart': addonfanart
        }
    }
    mget_queue = {
        'name': TRANSLATE(30011),
        'mode': 'getQueue',
        'type': 'dir',
        'images': {
            'thumb': addonicon,
            'fanart': addonfanart
        }
    }
    main = [mall_shows, madd_show, mget_queue]
    add_entries(main)
    xbmcplugin.endOfDirectory(pluginhandle)
Пример #7
0
def root():
    mall_movies = {'name': TRANSLATE(30005), 'mode': 'getAllMovies', 'type': 'dir', 'images': {'thumb': addonicon, 'fanart': addonfanart}}
    madd_movie = {'name': TRANSLATE(30009), 'mode': 'addMovie', 'type': 'dir', 'images': {'thumb': addonicon, 'fanart': addonfanart}}
    msearch_missing = {'name': TRANSLATE(30010), 'mode': 'searchMissing', 'type': 'dir', 'images': {'thumb': addonicon, 'fanart': addonfanart}}
    mget_queue = {'name': TRANSLATE(30011), 'mode': 'getQueue', 'type': 'dir', 'images': {'thumb': addonicon, 'fanart': addonfanart}}
    main = [madd_movie, mall_movies, msearch_missing, mget_queue]
    add_entries(main)
    xbmcplugin.endOfDirectory(pluginhandle)
Пример #8
0
def root():
    mall_shows = {
        'name': TRANSLATE(30005),
        'mode': 'getAllShows',
        'type': 'dir'
    }
    madd_show = {'name': TRANSLATE(30009), 'mode': 'addShow', 'type': 'dir'}
    main = [mall_shows, madd_show]
    add_entries(main)
    xbmcplugin.endOfDirectory(pluginhandle)
Пример #9
0
def get_queue():
    data = snr.get_queue()
    shows = []
    for show in data:
        xbmc.log("Sonarr get_queue: Show: " + str(show))
        showname = show['series']['title']
        xbmc.log("Sonarr get_queue: Timeleft: " + str(show['timeleft']))
        name = showname + " S" + str(
            show['episode']['seasonNumber']) + "E" + str(
                show['episode']['episodeNumber'])
        try:
            thumb = show['series']['images'][1]['url']
        except IndexError:
            thumb = ''
        try:
            fanart = show['series']['images'][2]['url']
        except IndexError:
            fanart = ''
            xbmc.log("Sonarr get_queue: Error setting Artwork...")
        totalsize = show['size'] * 1e-9
        perc = 100 - (100 * float(show['sizeleft']) / float(show['size']))
        name += '      [COLOR FF3576F9]%s%%[/COLOR] ' % round(perc, 1)
        name += ' [COLOR FF3576F9]of  %sGB[/COLOR] ' % round(totalsize, 2)
        #        name += ' [COLOR FF3576F9]Time Remaining: %s[/COLOR]' % str(show['timeleft'])
        show_id = show['id']
        seasons = 'na'
        dir_show = get_appended_path(dir_shows, str(show_id))
        file = 'seasons.json'
        file_path = get_appended_path(dir_show, file)
        write_json(file_path, seasons)
        if 'overview' in show:
            plot = show['overview']
        else:
            plot = ''

        shows.append({
            'name': name,
            'url': str(show_id),
            'mode': 'getRoot',
            'type': 'dir',
            'images': {
                'thumb': thumb,
                'fanart': fanart
            },
            'plot': plot
        })
    if shows == []:
        shows.append({
            'name': 'No Current Downloads',
            'url': '',
            'mode': 'getRoot',
            'type': 'dir'
        })
    add_entries(shows)
    xbmcplugin.endOfDirectory(pluginhandle)
Пример #10
0
def list_alphabet():
    items = []
    for i in range(ord('A'), ord('Z') + 1):
        name = chr(i)
        url = '%sletter=%s&page=1' % (baseurl, name)
        items.append({
            "name": name, "url": url, "mode": "index", "type": "dir",
            "infolabels": {"title": name},
            "images": {"thumb": icon, "fanart": fanart}})
    add_entries(items)
    set_view()
    xbmcplugin.endOfDirectory(pluginhandle)
Пример #11
0
def index(url):
    items = []
    data = get_json(url)
    nonce = data['nonce']
    for item in data['dokus']:
        dokuId = item['dokuId']
        url = item['youtubeId']
        desc = item['description']
        name = item['title']
        thumb = item['cover']
        fanart = get_fanart(url)
        duration = item['length']
        date_raw = item['date']
        date = clean_date(date_raw)
        source = get_item_src(item['dokuSrc'])
        source_desc = "%s%s" % (TRANSLATE(30043), source[:9])
        if source == '':
            source_desc = ''
        perc_raw = item['voting']['voteCountInPerc']
        perc = get_item_perc(perc_raw)
        vote_raw = item['voting']['voteCountAll']
        vote = get_item_vote(vote_raw)
        cm = [(TRANSLATE(30054), 'XBMC.RunPlugin(%s?mode=vote_up&url=%s-%s)' % (sys.argv[0], dokuId, nonce)),
              (TRANSLATE(30055), 'XBMC.RunPlugin(%s?mode=vote_down&url=%s-%s)' % (sys.argv[0], dokuId, nonce))]
        desc = get_desc(date, perc, vote, source_desc, desc)
        items.append({
            "name": name, "url": url, "mode": "play", "type": "video", "infolabels": {"title": name, "plot": desc,
            "duration": duration, "aired": date, "votes": vote_raw, "rating": (float(perc_raw) / 10), "studio": source,
            "year": date[-4:], "genre": "Doku"},
            "images": {"thumb": thumb, "fanart": fanart},
            "cm": cm})

    if 'nextpage' in data['query']:
        url = (data['query']['nextpage'])
        name = TRANSLATE(30030)
        items.append({
            "name": name, "url": url, "mode": "index", "type": "dir", "infolabels": {"title": name},
            "images": {"thumb": imageDir + '10.png'}})

    if 'prevpage' in data['query']:
        url = (data['query']['prevpage'])
        name = TRANSLATE(30031)
        items.append({
            "name": name, "url": url, "mode": "index", "type": "dir", "infolabels": {"title": name},
            "images": {"thumb": imageDir + '11.png'}})
        if show_mm:
            name = TRANSLATE(30032)
            items.append({
                "name": name, "url": "", "mode": "", "type": "", "infolabels": {"title": name},
                "images": {"thumb": imageDir + '12.png'}})
    add_entries(items)
    set_view()
    xbmcplugin.endOfDirectory(pluginhandle)
Пример #12
0
def get_cat():
    items = []
    url = '%sgetCats' % baseurl
    data = get_json(url)
    for item in data:
        name = item['name']
        url = item['url']
        items.append({
            "name": name, "url": url, "mode": "index", "type": "dir",
            "infolabels": {"title": name},
            "images": {"thumb": icon, "fanart": fanart}})
        #addDir(name, url, 'index', icon)
    add_entries(items)
    set_view()
    xbmcplugin.endOfDirectory(pluginhandle)
Пример #13
0
def list_seasons(show_id):
    seasons = []
    #show_id = xbmc.getInfoLabel("ListItem.tvshowtitle")
    dir_show = get_appended_path(dir_shows, str(show_id))
    file_db = get_appended_path(dir_show, 'seasons.json')
    data = read_json(file_db)
    #show_id = xbmc.getInfoLabel("ListItem.tvshowtitle")
    for season in data:
        name = get_season_name(season)
        season_id = season['seasonNumber']
        seasons.append({
            'name': name,
            'url': str(show_id),
            'season': str(season_id),
            'mode': 'getSeason',
            'type': 'dir'
        })
    add_entries(seasons)
    xbmcplugin.endOfDirectory(pluginhandle)
Пример #14
0
def list_seasons(show_id):
    seasons = []
    thumb = xbmc.getInfoLabel('ListItem.Art(thumb)')
    fanart = xbmc.getInfoLabel('ListItem.Art(fanart)')
    dir_show = get_appended_path(dir_shows, str(show_id))
    file_db = get_appended_path(dir_show, 'seasons.json')
    data = read_json(file_db)
    for season in data:
        xbmc.log("Sonarr list_seasons: " + str(season))
        name = get_season_name(season)
        season_id = season['seasonNumber']
        seasons.append({
            'name': name,
            'url': str(show_id),
            'season': str(season_id),
            'mode': 'getSeason',
            'type': 'dir',
            'images': {
                'thumb': thumb,
                'fanart': fanart
            }
        })
    add_entries(seasons)
    xbmcplugin.endOfDirectory(pluginhandle)
Пример #15
0
def get_addons():
    xbmc.log(log_msg + '!GET ADDONS!', loglevel)
    addons = []
    addons_listing = []
    path = dir_db
    xbmc.log(log_msg + 'path: ' + path, loglevel)
    for subdir, dirs, files in os.walk(path):
        for db_file in files:
            filepath = subdir + os.sep + db_file
            if filepath.endswith(".json"):
                name = db_file[:db_file.rfind(".json")]
                addons.append(name)
    for name in addons:
        addon_id = name  # url = addon_id
        name = get_addon_name(addon_id)
        thumb = get_addon_icon(addon_id)
        fanart = get_addon_fanart(addon_id)
        cm = get_cm(["addons"], addon_id)
        addons_listing.append({
            "name": name, "url": addon_id, "mode": "episodes", "type": "dir",
            "infolabels": {"title": name},
            "images": {"thumb": thumb, "fanart": fanart},
            "cm": cm})
    add_entries(addons_listing)
Пример #16
0
def main():
    main_menu = get_main_menu()
    add_entries(main_menu)
    set_view()
    xbmcplugin.endOfDirectory(pluginhandle)
Пример #17
0
def list_shows(data):
    shows = []
    for show in data:
        xbmc.log("Sonarr list_shows: " + str(show), xbmc.LOGINFO)
        name = show['title']
        try:
            thumb = host_url + show['images'][1]['url'] + '&apikey={}'.format(
                api_key)
        except IndexError:
            thumb = ''
        try:
            fanart = host_url + show['images'][2]['url'] + '&apikey={}'.format(
                api_key)
        except IndexError:
            fanart = ''
            xbmc.log("Sonarr list_shows: Error setting Artwork...")
        xbmc.log("THUMBB " + str(thumb))
        show_id = show['id']
        seasons = show['seasons']
        dir_show = get_appended_path(dir_shows, str(show_id))
        file = 'seasons.json'
        file_path = get_appended_path(dir_show, file)
        write_json(file_path, seasons)

        totaleps = 0
        eps = 0
        for season in show['seasons']:
            if season['monitored'] == True:
                totaleps += int(season['statistics']['totalEpisodeCount'])
                eps += int(season['statistics']['episodeCount'])

        # Get percentage
        if vw_perc:
            if totaleps > 0:
                perc = int(eps / totaleps * 100)
            else:
                perc = 100
            if perc == 100:
                perc = '[COLOR FF3576F9]{}%[/COLOR]'.format(perc)  # blue
            elif 50 <= perc < 100:
                perc = '[COLOR FFFA7544]{}%[/COLOR]'.format(perc)  # yellow
            elif perc < 50:
                perc = '[COLOR FFF7290A]{}%[/COLOR]'.format(perc)  # red
            name += ' ' + str(perc)
        # get episodes counter
        if vw_total:
            epi_count = str(eps)
            epi_total_count = str(totaleps)
            name += ' {}/{} '.format(epi_count, epi_total_count)

        if 'overview' in show:
            plot = show['overview']
        else:
            plot = ''

        name += ' [' + show['status'] + ']'
        shows.append({
            'name': name,
            'url': str(show_id),
            'mode': 'getShow',
            'type': 'dir',
            'images': {
                'thumb': thumb,
                'fanart': fanart
            },
            'plot': str(plot)
        })
    add_entries(shows)
    xbmcplugin.endOfDirectory(pluginhandle)
Пример #18
0
def root():
    add_entries([{"name": "Addons", "mode": "addons", "type": "dir"}])
Пример #19
0
def list_movies(data):
    #xbmc.log( "LISTT: DATA" + str(data), xbmc.LOGINFO)
    shows = []
    qdata = snr.get_queue()
    #xbmc.log( "LISTT: QDATA" + str(qdata), xbmc.LOGINFO)
    qshows = []
    qnames = []
    for qshow in qdata:
        xbmc.log( "LISTT: " + str(qnames))
        name = qshow['movie']['title']
        qnames.append((name))
        if qshow['movie']['images']:
            thumb = qshow['movie']['images'][0]['url']
        else:
            thumb = None
        if len(qshow['movie']['images']) > 1:
            fanart = qshow['movie']['images'][1]['url']
        else:
            fanart = None
        totalsize = qshow['size'] * 1e-9
        perc = 100 - (100 * float(qshow['sizeleft'])/float(qshow['size']))
        name += '   [COLOR FF00FF00]Downloading %s%%[/COLOR] ' % round(perc, 1)
        name += ' [COLOR FF00FF00]of  %sGB[/COLOR] ' % round(totalsize, 2)
        show_id = qshow['movie']['id']
        #seasons = 'na'
        #dir_show = get_appended_path(dir_movies, str(show_id))
        #file = 'seasons.json'
        #file_path = get_appended_path(dir_show, file)
        #write_json(file_path, seasons)
        shows.append({'name': name, 'url': str(show_id), 'mode': 'getMovie', 'type': 'dir',
                      'images': {'thumb': thumb, 'fanart': fanart}})
#        thumb = host_url + qshow['images'][0]['url'] + '?lastWrite=&apikey={}'.format(api_key)
        #banner = host_url + show['images'][1]['url'] + '&apikey={}'.format(api_key)
#        fanart = host_url + qshow['images'][1]['url'] + '?lastWrite=&apikey={}'.format(api_key)


    xbmc.log( "LISTT: " + str(qnames))
    for show in data:
        #xbmc.log("SHOW: " + str(show), xbmc.LOGINFO)
        name = show['title']
        down = str(show['downloaded'])
        if down == 'True':
            totalsize = show['movieFile']['size'] * 1e-9
            xbmc.log( "LISTT: " + str(totalsize))
            name += '   [COLOR FF3576F9]Downloaded[/COLOR] '
            width = str(show['movieFile']['mediaInfo']['width'])
            audiochan = str(show['movieFile']['mediaInfo']['audioChannels'])
            audiocodec = str(show['movieFile']['mediaInfo']['audioFormat'])
            if width == '1920':
                name += '[COLOR FF3576F9] 1080p[/COLOR] '
            if audiochan == '6':
                name += '[COLOR FF3576F9] 5.1[/COLOR] '
            name += '[COLOR FF3576F9] %s[/COLOR] ' % audiocodec
            name += ' [COLOR FF3576F9]  %sGB[/COLOR] ' % round(totalsize, 2)
            if show['images']:
                thumb = host_url + show['images'][0]['url'] + '?lastWrite=&apikey={}'.format(api_key)
            else:
                thumb = None
            #banner = host_url + show['images'][1]['url'] + '&apikey={}'.format(api_key)
            if len(show['images']) > 1:
                fanart = host_url + show['images'][1]['url'] + '?lastWrite=&apikey={}'.format(api_key)
            else:
                fanart = None
            show_id = show['id']
            #seasons = 'na'
            #dir_show = get_appended_path(dir_movies, str(show_id))
            #file = 'seasons.json'
            #file_path = get_appended_path(dir_show, file)
            #write_json(file_path, seasons)
            shows.append({'name': name, 'url': str(show_id), 'mode': 'getMovie', 'type': 'dir',
                        'images': {'thumb': thumb, 'fanart': fanart}})

        else:
            if name in qnames:
                xbmc.log( "LISTT: SKIPPING " + str(name))
            else:
                name += '   [COLOR FFFF0000]Missing[/COLOR] '
                if show['images']:
                    thumb = host_url + show['images'][0]['url'] + '?lastWrite=&apikey={}'.format(api_key)
                else:
                    thumb = None
                #banner = host_url + show['images'][1]['url'] + '&apikey={}'.format(api_key)
                if len(show['images']) > 1:
                    fanart = host_url + show['images'][1]['url'] + '?lastWrite=&apikey={}'.format(api_key)
                else:
                    fanart = None
                show_id = show['id']
                #seasons = 'na'
                #dir_show = get_appended_path(dir_movies, str(show_id))
                #file = 'seasons.json'
                #file_path = get_appended_path(dir_show, file)
                #write_json(file_path, seasons)
                shows.append({'name': name, 'url': str(show_id), 'mode': 'getMovie', 'type': 'dir',
                            'images': {'thumb': thumb, 'fanart': fanart}})


#                    name += '   [COLOR FFF7290A]Missing[/COLOR] '
    add_entries(shows)
    #Sort ignoring 'The'
    xbmcplugin.addSortMethod(pluginhandle, xbmcplugin.SORT_METHOD_LABEL_IGNORE_THE)
    xbmcplugin.endOfDirectory(pluginhandle)
    guiUpdateTimer = threading.Timer(
        60.0, # fire after 60 seconds
        refreshGuiItems)
    guiUpdateTimer.start()