Exemplo n.º 1
0
def getTVShowFromList(showList, strm_name='', strm_type='Other'):
    pagesDone = 0
    file = ''

    while pagesDone < int(PAGINGTVshows):
        strm_type = strm_type.replace('Shows-Collection', 'TV-Shows')
        try:
            for detailInfo in showList:
                detailInfo = stringUtils.removeHTMLTAGS(detailInfo)
                filetypes = re.search('"filetype" *: *"(.*?)",', detailInfo)
                if filetypes:
                    filetype = filetypes.group(1)
                    files = re.search('"file" *: *"(.*?)",', detailInfo)
                    episodes = re.search('"episode" *: *(.*?),', detailInfo)
                    seasons = re.search('"season" *: *(.*?),', detailInfo)
                    showtitles = re.search('"showtitle" *: *"(.*?)",',
                                           detailInfo)
                    labels = re.search('"label" *: *"(.*?)",', detailInfo)

                    if labels:
                        label = str(labels.group(1).lstrip().rstrip())
                    else:
                        label = "None"

                    if showtitles:
                        showtitle = str(showtitles.group(1).lstrip().rstrip())
                    else:
                        label = "None"

                    if not fileSys.isInMediaList(
                            label, strm_type
                    ) and label != "" and label != ">>>" and label != "None" and files.group(
                            1).find("playMode=play") == "-1":
                        fileSys.writeMediaList(
                            files.group(1).lstrip().rstrip(), label, strm_type)

                    if files and filetype != 'file' and label != ">>>":
                        addTVShows(stringUtils.uni(
                            jsonUtils.requestList(files.group(1), 'video')),
                                   strm_name="",
                                   strm_type=strm_type)
                    else:
                        if showtitles and seasons == "-1" and episodes == "-1":
                            xbmc.executebuiltin(
                                'Notification(%s, %s, %d, %s)' %
                                (ADDON_NAME, "ShowsList", 1000, ""))
                            getEpisodes(
                                stringUtils.uni(
                                    jsonUtils.requestList(
                                        files.group(1), 'video')),
                                strm_name.strip(), strm_type)

        except IOError as (errno, strerror):
            print("I/O error({0}): {1}").format(errno, strerror)
        except ValueError:
            print("No valid integer in line.")
Exemplo n.º 2
0
def update(strm_name, url, media_type, thelist):
    plex_details = jsonUtils.requestList("plugin://plugin.video.plexbmc",
                                         media_type).get('files', [])
    for plex_detail in plex_details:
        if strm_name.replace('++RenamedTitle++',
                             '') == stringUtils.cleanLabels(
                                 plex_detail['label']):
            serverurl = plex_detail['file']
            if url != serverurl:
                for entry in thelist:
                    if entry.split("|")[1] == strm_name:
                        newentry = '|'.join([
                            entry.split("|")[0],
                            entry.split("|")[1].decode("utf-8"), serverurl
                        ]) + '\n'
                        thelist = stringUtils.replaceStringElem(
                            thelist, entry, newentry)
                        thefile = xbmc.translatePath(
                            os.path.join(profile, 'MediaList.xml'))
                        with open(thefile.decode("utf-8"), 'w') as output_file:
                            for linje in thelist:
                                if not linje.startswith('\n'):
                                    output_file.write(
                                        linje.strip().encode('utf-8') + '\n')
                                else:
                                    output_file.write(linje.strip())
                        return serverurl
            else:
                break
    return url
Exemplo n.º 3
0
def getTVShowFromList(showList, strm_name='', strm_type='Other', pagesDone=0):
    dirList = []
    episodesList = []
    
    while pagesDone < int(PAGINGTVshows):
        strm_type = strm_type.replace('Shows-Collection', 'TV-Shows')
        try:
            for detailInfo in showList:
                filetype = detailInfo.get('filetype', None)
                file = detailInfo.get('file', None)
                episode = detailInfo.get('episode', -1)
                season = detailInfo.get('season', -1)

                if filetype is not None:
                    if filetype == 'directory':
                        dirList.append(jsonUtils.requestList(file, 'video').get('files', []))
                        continue    
                    elif season > -1 and episode > -1 and filetype == 'file': 
                        episodesList.append(detailInfo)
                
            step = float(100.0 / len(episodesList) if len(episodesList) > 0 else 1)
            if pagesDone == 0:
                thisDialog.dialogeBG.update(int(step), "Initialisation of TV-Shows: " + stringUtils.getStrmname(strm_name))
            else:
                thisDialog.dialogeBG.update(int(step), "Page: " + str(pagesDone) + " " + stringUtils.getStrmname(strm_name))
            for index, episode in enumerate(episodesList):
                pagesDone = getEpisode(episode, strm_name, strm_type, pagesDone=pagesDone)
                thisDialog.dialogeBG.update(int(step * (index + 1)))
                                   
        except IOError as (errno, strerror):
            print ("I/O error({0}): {1}").format(errno, strerror)
        except ValueError:
            print ("No valid integer in line.")
Exemplo n.º 4
0
def update(strm_name, url, media_type, thelist):
    plex_details = stringUtils.uni(
        jsonUtils.requestList("plugin://plugin.video.plexbmc", media_type))
    for plex_detail in plex_details:
        plex_detail = stringUtils.removeHTMLTAGS(plex_detail)
        label = re.search('"label" *: *"(.*?)",', plex_detail)
        if label and strm_name.replace(
                '++RenamedTitle++', '') == stringUtils.cleanByDictReplacements(
                    label.group(1)):
            serverurl = re.search('"file" *: *"(.*?)",', plex_detail).group(1)
            if url != serverurl:
                for entry in thelist:
                    if entry.split("|")[1] == strm_name:
                        newentry = '|'.join([
                            entry.split("|")[0],
                            entry.split("|")[1].decode("utf-8"), serverurl
                        ]) + '\n'
                        thelist = stringUtils.replaceStringElem(
                            thelist, entry, newentry)
                        thefile = xbmc.translatePath(
                            os.path.join(profile, 'MediaList.xml'))
                        with open(thefile.decode("utf-8"), 'w') as output_file:
                            for linje in thelist:
                                if not linje.startswith('\n'):
                                    output_file.write(
                                        linje.strip().encode('utf-8') + '\n')
                                else:
                                    output_file.write(linje.strip())
                        break
                url = serverurl
    return url
Exemplo n.º 5
0
def addTVShows(contentList, strm_name='', strm_type='Other'):
    showsList = []
    showtitle = strm_name
    pagesDone = 0
    sectiveContent = contentList
    #     while pagesDone < int(PAGINGTVshows):
    j = 100 / len(contentList)

    for detailInfo in contentList:
        detailInfo = stringUtils.removeHTMLTAGS(detailInfo)
        filetypes = re.search('"filetype" *: *"(.*?)",', detailInfo)
        showtitles = re.search('"showtitle" *: *"(.*?)",', detailInfo)
        if showtitles:
            showtitle = showtitles.group(1)
        try:
            if filetypes:
                filetype = filetypes.group(1)
                files = re.search('"file" *: *"(.*?)",', detailInfo)

                if filetype != 'file':
                    getEpisodes(
                        stringUtils.uni(
                            jsonUtils.requestList(files.group(1), 'video')),
                        strm_name.strip(), strm_type, j)
                else:
                    getEpisodes(detailInfo, strm_name, strm_type, j)
                thisDialog.dialogeBG.update(j, showtitle)
                j = j + 100 / len(contentList)
        except IOError as (errno, strerror):
            print("I/O error({0}): {1}").format(errno, strerror)
        except ValueError:
            print("No valid integer in line.")
Exemplo n.º 6
0
def update(strm_name, url, media_type, thelist):
    plex_details = jsonUtils.requestList("plugin://plugin.video.plexbmc",
                                         media_type).get('files', [])
    for plex_detail in plex_details:
        if stringUtils.getStrmname(strm_name) == stringUtils.cleanLabels(
                plex_detail['label']):
            serverurl = plex_detail['file']
            if url != serverurl:
                for entry in thelist:
                    splits = entry.split("|")
                    if splits[1] == strm_name:
                        splits[2] = serverurl
                        newentry = '|'.join(splits)
                        thelist = stringUtils.replaceStringElem(
                            thelist, entry, newentry)
                        thefile = xbmc.translatePath(
                            os.path.join(addon.getSetting('MediaList_LOC'),
                                         'MediaList.xml'))

                        output_file = xbmcvfs.File(thefile.decode("utf-8"),
                                                   'w')
                        for index, linje in enumerate(thelist):
                            output_file.write(
                                ('%s\n' if index < len(thelist) - 1 else '%s')
                                % linje.strip().encode('utf-8'))

                        return serverurl
            else:
                break
    return url
Exemplo n.º 7
0
def addTVShows(contentList, strm_name="", strm_type="Other"):
    showsList = []
    showtitle = strm_name
    pagesDone = 0
    sectiveContent = contentList

    #     while pagesDone < int(PAGINGTVshows):
    for detailInfo in contentList:
        filetypes = re.search('"filetype" *: *"(.*?)",', detailInfo)

        if filetypes:
            filetype = filetypes.group(1)
            files = re.search('"file" *: *"(.*?)",', detailInfo)

            if filetype != "file":
                getEpisodes(stringUtils.uni(jsonUtils.requestList(files.group(1), "video")), strm_name, strm_type)
            else:
                getEpisodes(detailInfo, strm_name, strm_type)
    #         pagesDone += 1
    #
    #         if filetype != 'file' and pagesDone < int(PAGINGMovies) and is_multi:
    #             contentList = stringUtils.uni(jsonUtils.requestList(files.group(1), 'video'))
    #         else:
    #             pagesDone = int(PAGINGMovies)
    return showsList
Exemplo n.º 8
0
def getTVShowFromList(showList, strm_name="", strm_type="Other"):
    strm_type = strm_type.replace("Shows-Collection", "TV-Shows")
    for detailInfo in showList:
        filetypes = re.search('"filetype" *: *"(.*?)",', detailInfo)
        if filetypes:
            filetype = filetypes.group(1)
            files = re.search('"file" *: *"(.*?)",', detailInfo)
            episodes = re.search('"episode" *: *(.*?),', detailInfo)
            seasons = re.search('"season" *: *(.*?),', detailInfo)
            showtitles = re.search('"showtitle" *: *"(.*?)",', detailInfo)

            if filetype != "file":
                if showtitles and seasons == "-1" and episodes == "-1":
                    getEpisodes(stringUtils.uni(jsonUtils.requestList(files.group(1), "video")), strm_name, strm_type)
                else:
                    addTVShows(
                        stringUtils.uni(jsonUtils.requestList(files.group(1), "video")),
                        strm_name="",
                        strm_type=strm_type,
                    )
Exemplo n.º 9
0
def addTVShowsSST(contentList, strm_name='', strm_type='Other'):
    showsList = []
    showtitle = strm_name
    pagesDone = 0
    sectiveContent = contentList
    #     while pagesDone < int(PAGINGTVshows):
    for detailInfo in contentList:
        detailInfo = stringUtils.removeHTMLTAGS(detailInfo)
        filetypes = re.search('"filetype" *: *"(.*?)",', detailInfo)
        try:
            if filetypes:
                filetype = filetypes.group(1)
                files = re.search('"file" *: *"(.*?)",', detailInfo)
                if filetype != 'file':
                    contentListSub = stringUtils.uni(
                        jsonUtils.requestList(files.group(1), 'video'))
                    for detailInfo in contentListSub:
                        while filetype != "file":
                            detailInfo = stringUtils.removeHTMLTAGS(detailInfo)
                            filetypes = re.search('"filetype" *: *"(.*?)",',
                                                  detailInfo)

                            if filetype != 'file':
                                detailInfo = stringUtils.uni(
                                    jsonUtils.requestList(
                                        files.group(1), 'video'))
                            else:
                                getEpisodes(stringUtils.uni(detailInfo),
                                            strm_name.strip(), strm_type)

                            getEpisodes(stringUtils.uni(detailInfo),
                                        strm_name.strip(), strm_type)

        except IOError as (errno, strerror):
            print("I/O error({0}): {1}").format(errno, strerror)
        except ValueError:
            print("No valid integer in line.")
Exemplo n.º 10
0
def addAlbum(contentList, strm_name='', strm_type='Other', PAGINGalbums="1"):
    albumList = []
    dirList = []
    pagesDone = 0
    file = ''
    filetype = ''
    j = 100 / (len(contentList) * int(PAGINGalbums)) if len(contentList) > 0 else 1

    if len(contentList) == 0:
        return contentList

    while pagesDone < int(PAGINGalbums):
        if not contentList[0] == "palyableSingleMedia":
            artThumb = contentList[0].get('art', {})
            aThumb = urlUtils.stripUnquoteURL(artThumb.get('thumb', ''))
                 
            for index, detailInfo in enumerate(contentList):
                art = detailInfo.get('art',{})
                file = detailInfo['file'].replace("\\\\", "\\").encode('utf-8')
                filetype = detailInfo['filetype']
                label = stringUtils.cleanLabels(detailInfo['label'].strip())
                thumb = art.get('thumb','')
                fanart = art.get('fanart','')
                description = detailInfo.get('description', '')
                track = detailInfo.get('track', 0) if detailInfo.get('track', 0) > 0 else index + 1
                duration = detailInfo.get('duration', 0)
                if duration == 0:
                    duration = 200
                
                try:
                    if filetype == 'directory':
                        dirList.append(jsonUtils.requestList(file, 'music').get('files', []))
                        continue

                    if addon.getSetting('Link_Type') == '0': 
                        link = sys.argv[0] + "?url=" + urllib.quote_plus(file) + "&mode=" + str(10) + "&name=" + urllib.quote_plus(label) + "&fanart=" + urllib.quote_plus(fanart)
                    else:
                        link = file

                    try:
                        album = detailInfo['album'].strip()
                        artist = stringUtils.cleanByDictReplacements(", ".join(artist.strip() for artist in detailInfo['artist']) if isinstance(detailInfo['artist'], (list, tuple)) else detailInfo['artist'].strip())
                        artistList = []
                        #Check for Various Artists
                        for i, sArtist in enumerate(contentList):
                            artistList.append(sArtist.get('artist'))
                        if len(artistList) > 1:
                            try:
                                if artistList[0] != artistList[1] and artistList[1] != artistList[2]:
                                    artist = 'Various Artists'
                            except IndexError:
                                if artistList[0] != artistList[1]:
                                    artist = 'Various Artists'
                        title = stringUtils.cleanByDictReplacements(detailInfo['title'].strip())
                        type = stringUtils.cleanByDictReplacements(detailInfo['type'].strip())
                        filename = stringUtils.cleanByDictReplacements(label.strip())
                    except:
                        filename = stringUtils.cleanByDictReplacements(label.strip())
                        pass

                    thisDialog.dialogeBG.update(j, ADDON_NAME + ": Writing File: ",  " Title: " + label)
                    path = os.path.join(strm_type, artist, strm_name.replace('++RenamedTitle++', ''))
                    if album and artist and label and path and link and track:  
                        albumList.append([path, label, link, album, artist, track, duration, thumb])
                    j = j + 100 / (len(contentList) * int(PAGINGalbums))
                except IOError as (errno, strerror):
                    print ("I/O error({0}): {1}").format(errno, strerror)
                except ValueError:
                    print ("No valid integer in line.")
                except:
Exemplo n.º 11
0
                            m_title = stringUtils.cleanByDictReplacements(stringUtils.getStrmname(label))
                            movieList.append({'path': m_path, 'title':  m_title, 'url': file, 'provider': provider})
                        j = j + len(contentList) * int(PAGINGMovies) / 100
                except IOError as (errno, strerror):
                    print ("I/O error({0}): {1}").format(errno, strerror)
                except ValueError:
                    print ("No valid integer in line.")
                except:
                    guiTools.infoDialog("Unexpected error: " + str(sys.exc_info()[1])+ (". See your Kodi.log!"))
                    utils.addon_log(("Unexpected error: ") + str(sys.exc_info()[1]))
                    print ("Unexpected error:"), sys.exc_info()[0]
                    raise

            pagesDone += 1
            if filetype != '' and filetype != 'file' and pagesDone < int(PAGINGMovies):
                contentList = jsonUtils.requestList(file, 'video').get('files', [])
            else:
                pagesDone = int(PAGINGMovies)            
        else:
            provider = getProvider(contentList[1])
            m_path = stringUtils.getMovieStrmPath(strm_type, strm_name)
            m_title = stringUtils.cleanByDictReplacements(stringUtils.getStrmname(strm_name))
            movieList.append({'path': m_path, 'title':  m_title, 'url': contentList[1], 'provider': provider})
            pagesDone = int(PAGINGMovies)

    return movieList

def getProvider(entry):
    provider = None
    provGeneral = re.search('%s([^\/\?]*)' % ("plugin:\/\/"), entry)
    provXST = re.search('%s(.*)'"\&function"'' % (r"site="), entry)
Exemplo n.º 12
0
def getTVShowFromList(showList, strm_name='', strm_type='Other', pagesDone=0):
    dirList = []
    episodesList = []

    while pagesDone < int(PAGINGTVshows):
        strm_type = strm_type.replace('Shows-Collection', 'TV-Shows')
        try:
            for detailInfo in showList:
                filetype = detailInfo.get('filetype', None)
                file = detailInfo.get('file', None)

                if filetype:
                    if filetype == 'directory':
                        dirList.append(
                            jsonUtils.requestList(file,
                                                  'video').get('files', []))
                        continue
                    elif filetype == 'file':
                        if detailInfo.get('season',
                                          -1) == -1 or detailInfo.get(
                                              'episode', -1) == -1:
                            showtitle = detailInfo.get('showtitle')
                            episodetitle = detailInfo.get('title')

                            if showtitle and showtitle != '' and episodetitle and episodetitle != '':
                                lang = None
                                if strm_type.lower().find('other') == -1:
                                    lang = strm_type[strm_type.find('(') +
                                                     1:strm_type.find(')')]

                                data = tvdb.getEpisodeByName(
                                    showtitle, episodetitle, lang)
                                if data:
                                    detailInfo['season'] = data.get('season')
                                    detailInfo['episode'] = data.get('episode')

                        if detailInfo.get('season',
                                          -1) > -1 and detailInfo.get(
                                              'episode', -1) > -1:
                            if NOE0_STRMS_EXPORT == "false" or detailInfo.get(
                                    'episode') > 0:
                                episodesList.append(detailInfo)

            step = float(100.0 /
                         len(episodesList) if len(episodesList) > 0 else 1)
            if pagesDone == 0:
                thisDialog.dialogeBG.update(
                    int(step), "Initialisation of TV-Shows: " +
                    stringUtils.getStrmname(strm_name))
            else:
                thisDialog.dialogeBG.update(
                    int(step), "Page: %d %s" %
                    (pagesDone, stringUtils.getStrmname(strm_name)))
            for index, episode in enumerate(episodesList):
                pagesDone = getEpisode(episode,
                                       strm_name,
                                       strm_type,
                                       pagesDone=pagesDone)
                thisDialog.dialogeBG.update(int(step * (index + 1)))

        except:
            guiTools.infoDialog("Unexpected error: " + str(sys.exc_info()[1]) +
                                (". See your Kodi.log!"))
            utils.addon_log(("Unexpected error: ") + str(sys.exc_info()[1]))
            print("Unexpected error:"), sys.exc_info()[0]
            raise

        pagesDone += 1
        episodesList = []
        showList = []
        if pagesDone < int(PAGINGTVshows) and len(dirList) > 0:
            showList = [item for sublist in dirList for item in sublist]
            dirList = []
Exemplo n.º 13
0
def getEpisodes(episodesListRaw, strm_name, strm_type, j=0):
    episodesList = []
    typeChange = []

    try:
        if type(episodesListRaw) is unicode:
            typeChange.append(episodesListRaw)
            episodesListRaw = typeChange

        for detailInfo in episodesListRaw:

            detailInfo = stringUtils.removeHTMLTAGS(detailInfo)
            files = re.search('"file" *: *"(.*?)",', detailInfo)
            filetypes = re.search('"filetype" *: *"(.*?)",', detailInfo)
            labels = re.search('"label" *: *"(.*?)",', detailInfo)
            thumbnails = re.search('"thumbnail" *: *"(.*?)",', detailInfo)
            fanarts = re.search('"fanart" *: *"(.*?)",', detailInfo)
            descriptions = re.search('"description" *: *"(.*?)",', detailInfo)
            episodes = re.search('"episode" *: *(.*?),', detailInfo)
            seasons = re.search('"season" *: *(.*?),', detailInfo)
            showtitles = re.search('"showtitle" *: *"(.*?)",', detailInfo)

            if filetypes:
                if filetypes.group(1) == 'directory':
                    contentList = stringUtils.uni(
                        jsonUtils.requestList(files.group(1), 'video'))
                    continue

                if showtitles and seasons and episodes:
                    filetype = filetypes.group(1)
                    label = (stringUtils.cleanLabels(labels.group(1)))
                    file = (files.group(1).replace("\\\\", "\\"))
                    strm_name = str(
                        utils.multiple_reSub(strm_name.strip(),
                                             dictReplacements))
                    showtitle = utils.multiple_reSub((showtitles.group(1)),
                                                     dictReplacements)
                    season = (utils.multiple_reSub(
                        (seasons.group(1)).replace("-", ""), dictReplacements))
                    episode = (utils.multiple_reSub(
                        (episodes.group(1)).replace("-",
                                                    ""), dictReplacements))
                    episodesHDF = re.search('Folge.(\\d+)&', file)

                    if file.find("hdfilme") != "-1" and episodesHDF:
                        episode = re.search('Folge.(\\d+)&', file).group(1)

                    if not descriptions:
                        description = ''
                    else:
                        description = stringUtils.cleanLabels(
                            descriptions.group(1))

                    if fanarts:
                        fanart = fanarts.group(1)
                    else:
                        fanart = ''

                    if addon.getSetting('Link_Type') == '0':
                        link = sys.argv[0] + "?url=" + urllib.quote_plus(
                            file
                        ) + "&mode=" + str(10) + "&name=" + urllib.quote_plus(
                            label) + "&fanart=" + urllib.quote_plus(fanart)
                    else:
                        link = file


#
                    if strm_name.find("++RenamedTitle++") != -1:
                        showtitle = strm_name.strip().replace(
                            '++RenamedTitle++', '')
                    if showtitle != "" and strm_type != "":
                        episodesList.append([
                            os.path.join(
                                xbmc.translatePath(strm_type + "//" +
                                                   (utils.multiple_reSub(
                                                       showtitle.strip(),
                                                       dictReplacements)))),
                            str('s' + season),
                            str('e' + episode), link
                        ])

    except IOError as (errno, strerror):
        print("I/O error({0}): {1}").format(errno, strerror)
Exemplo n.º 14
0
def fillPluginItems(
    url, media_type="video", file_type=False, strm=False, strm_name="", strm_type="Other", showtitle="None"
):
    utils.addon_log("fillPluginItems")

    if not file_type:
        detail = stringUtils.uni(jsonUtils.requestList(url, media_type))
        listLength = len(detail)
    else:
        detail = stringUtils.uni(jsonUtils.requestItem(url, media_type))

    if strm_type.find("Cinema") != -1:
        addMovies(detail, strm_name, strm_type)
        return
    if strm_type.find("TV-Show") != -1:
        addTVShows(detail, strm_name, strm_type)
        return
    if strm_type.find("Shows-Collection") != -1:
        getTVShowFromList(detail, strm_name, strm_type)
        return
    #     if strm_type.find('YouTube') != -1:
    #
    #         video = pafy.new(url)
    #         bestaudio = video.getbestaudio()
    #         bestaudio.bitrate #get bit rate
    #         bestaudio.extension #extension of audio fileurl
    #
    #         bestaudio.url #get url
    #
    #         #download if you want
    #         bestaudio.download()
    #         return

    for f in detail:
        files = re.search('"file" *: *"(.*?)",', f)
        filetypes = re.search('"filetype" *: *"(.*?)",', f)
        labels = re.search('"label" *: *"(.*?)",', f)
        thumbnails = re.search('"thumbnail" *: *"(.*?)",', f)
        fanarts = re.search('"fanart" *: *"(.*?)",', f)
        descriptions = re.search('"description" *: *"(.*?)",', f)

        if filetypes and labels and files:
            filetype = filetypes.group(1)
            label = stringUtils.cleanLabels(labels.group(1))
            file = files.group(1).replace("\\\\", "\\")
            strm_name = str(utils.multiple_reSub(strm_name.rstrip(), dictReplacements))

            if not descriptions:
                description = ""
            else:
                description = stringUtils.cleanLabels(descriptions.group(1))

            thumbnail = thumbnails.group(1)  # stringUtils.removeNonAscii(thumbnails.group(1))
            fanart = fanarts.group(1)  # stringUtils.removeNonAscii(fanarts.group(1))

            if addon.getSetting("Link_Type") == "0":
                link = (
                    sys.argv[0]
                    + "?url="
                    + urllib.quote_plus(file)
                    + "&mode="
                    + str(10)
                    + "&name="
                    + urllib.quote_plus(label)
                    + "&fanart="
                    + urllib.quote_plus(fanart)
                )
            else:
                link = file

            if strm_type.find("TV(") != -1:
                path = os.path.join(strm_type, strm_name)
                filename = str(label)

            if strm_type.find("Movie") != -1:
                path = os.path.join(strm_type, strm_name)
                filename = str(label)

            if strm_type in ["Audio-Album"]:
                path = os.path.join(strm_type, strm_name)
                try:
                    album = re.search('"album" *: *"(.*?)",', f).group(1)
                    try:
                        artist = re.search('"artist" *: *"(.*?)",', f).group(1)
                    except:
                        artist = re.search('"artist"*:*."(.*?)".,', f).group(1)
                    pass
                    titl = re.search('"title" *: *(.*?),', f).group(1)
                    types = re.search('"type" *: *(.*?),', f).group(1)
                    filename = str(strm_name + " - " + label)
                except:
                    filename = str(strm_name + " - " + label)

            if strm_type in ["Audio-Single"]:
                path = os.path.join("Singles", str(strm_name))
                try:
                    album = re.search('"album" *: *"(.*?)",', f).group(1)
                    try:
                        artist = re.search('"artist" *: *"(.*?)",', f).group(1)
                    except:
                        artist = re.search('"artist"*:*."(.*?)".,', f).group(1)
                    pass
                    titl = re.search('"title" *: *(.*?),', f).group(1)
                    types = re.search('"type" *: *(.*?),', f).group(1)
                    filename = str(strm_name + " - " + label)
                except:
                    filename = str(strm_name + " - " + label)

            if strm_type in ["Other"]:
                path = os.path.join("Other", strm_name)
                filename = str(strm_name + " - " + label)

            if filetype == "file":
                if strm:
                    if strm_type == "Audio-Album":
                        utils.addon_log(str(path + " " + filename))
                        utils.createSongNFO(
                            stringUtils.cleanStrms((path.rstrip("."))),
                            stringUtils.cleanStrms(filename.rstrip(".")),
                            strm_ty=strm_type,
                            artists=artist,
                            albums=album,
                            titls=titl,
                            typese=types,
                        )
                    # xbmc.executebuiltin('Notification(%s, %s, %d, %s)'%(path + " - " + filename, " writing...",5000,""))
                    fileSys.writeSTRM(
                        stringUtils.cleanStrms((path.rstrip("."))), stringUtils.cleanStrms(filename.rstrip(".")), link
                    )
                else:
                    guiTools.addLink(
                        label, file, 10, thumbnail, fanart, description, "", "", "", None, "", total=len(detail)
                    )
                    # xbmc.executebuiltin("Container.SetViewMode(500)")
            else:
                if strm:
                    fillPluginItems(file, media_type, file_type, strm, label, strm_type)
                else:
                    guiTools.addDir(label, file, 101, thumbnail, fanart, description, "", "", "")
Exemplo n.º 15
0
def fillPluginItems(url,
                    media_type='video',
                    file_type=False,
                    strm=False,
                    strm_name='',
                    strm_type='Other',
                    showtitle='None'):
    initialize_DialogBG("Updating", "Getting content..")
    thisDialog.dialogeBG.update(0, ADDON_NAME + ": Getting: ",
                                strm_name.replace('++RenamedTitle++', ''))
    utils.addon_log('fillPluginItems')
    detail = []
    if url.find("playMode=play") == -1:
        if not file_type:
            detail = stringUtils.uni(jsonUtils.requestList(url, media_type))
            listLength = len(detail)
        else:
            detail = stringUtils.uni(jsonUtils.requestItem(url, media_type))
    else:
        detail.append("palyableSingleMedia")
        detail.append(url)

    thisDialog.dialogeBG.close()
    thisDialog.dialogeBG = None
    if strm_type.find('Cinema') != -1 or strm_type.find('YouTube') != -1:
        try:
            initialize_DialogBG("Movie", "Adding")
            addMovies(detail, strm_name, strm_type)
            thisDialog.dialogeBG.close()
            thisDialog.dialogeBG = None
            return
        except:
            thisDialog.dialogeBG.close()
            thisDialog.dialogeBG = None
            guiTools.infoDialog("Unexpected error: " + str(sys.exc_info()[1]) +
                                (". Se your Kodi.log!"))
            utils.addon_log(("Unexpected error: ") + str(sys.exc_info()[1]))
            print("Unexpected error:"), sys.exc_info()[0]
            raise

    if strm_type.find('TVShows sub structures') != -1:
        try:
            initialize_DialogBG("TV-Show SST", "Adding")
            addTVShowsSST(detail, strm_name, strm_type)
            thisDialog.dialogeBG.close()
            thisDialog.dialogeBG = None
            return
        except:
            thisDialog.dialogeBG.close()
            thisDialog.dialogeBG = None
            guiTools.infoDialog("Unexpected error: " + str(sys.exc_info()[1]) +
                                (". Se your Kodi.log!"))
            utils.addon_log(("Unexpected error: ") + str(sys.exc_info()[1]))
            print("Unexpected error:"), sys.exc_info()[0]
            raise

    if strm_type.find('TV-Show') != -1:
        try:
            initialize_DialogBG("TV-Show", "Adding")
            addTVShows(detail, strm_name, strm_type)
            thisDialog.dialogeBG.close()
            thisDialog.dialogeBG = None
            return
        except:
            thisDialog.dialogeBG.close()
            thisDialog.dialogeBG = None
            guiTools.infoDialog("Unexpected error: " + str(sys.exc_info()[1]) +
                                (". Se your Kodi.log!"))
            utils.addon_log(("Unexpected error: ") + str(sys.exc_info()[1]))
            print("Unexpected error:"), sys.exc_info()[0]
            raise

    if strm_type.find('Shows-Collection') != -1:
        try:
            initialize_DialogBG("Shows-Collection", "Adding")
            getTVShowFromList(detail, strm_name, strm_type)
            thisDialog.dialogeBG.close()
            thisDialog.dialogeBG = None
            return
        except:
            thisDialog.dialogeBG.close()
            thisDialog.dialogeBG = None
            guiTools.infoDialog("Unexpected error: " + str(sys.exc_info()[1]) +
                                (". Se your Kodi.log!"))
            utils.addon_log(("Unexpected error: ") + str(sys.exc_info()[1]))
            print("Unexpected error:"), sys.exc_info()[0]
            raise

    if strm_type.find('Album') != -1:
        try:
            initialize_DialogBG("Album", "Adding")
            addAlbum(detail, strm_name, strm_type)
            thisDialog.dialogeBG.close()
            thisDialog.dialogeBG = None
            return
        except:
            thisDialog.dialogeBG.close()
            thisDialog.dialogeBG = None
            guiTools.infoDialog("Unexpected error: " + str(sys.exc_info()[1]) +
                                (". Se your Kodi.log!"))
            utils.addon_log(("Unexpected error: ") + str(sys.exc_info()[1]))
            print("Unexpected error:"), sys.exc_info()[0]
            raise


#     if strm_type.find('YouTube') != -1:
#
#         video = pafy.new(url)
#         bestaudio = video.getbestaudio()
#         bestaudio.bitrate #get bit rate
#         bestaudio.extension #extension of audio fileurl
#
#         bestaudio.url #get url
#
#         #download if you want
#         bestaudio.download()
#         return

    for f in detail:
        files = re.search('"file" *: *"(.*?)",', f)
        filetypes = re.search('"filetype" *: *"(.*?)",', f)
        labels = re.search('"label" *: *"(.*?)",', f)
        thumbnails = re.search('"thumbnail" *: *"(.*?)",', f)
        fanarts = re.search('"fanart" *: *"(.*?)",', f)
        descriptions = re.search('"description" *: *"(.*?)",', f)
        tracks = re.search('"track" *: *(.*?),', f)
        durations = re.search('"duration" *: *"(.*?)",', f)

        if filetypes and labels and files:
            filetype = filetypes.group(1)
            label = (stringUtils.cleanLabels(labels.group(1)))
            file = (files.group(1).replace("\\\\", "\\"))
            strm_name = str(
                utils.multiple_reSub(strm_name.strip(), dictReplacements))

            if not descriptions:
                description = ''
            else:
                description = stringUtils.cleanLabels(descriptions.group(1))

            thumbnail = thumbnails.group(
                1)  #stringUtils.removeNonAscii(thumbnails.group(1))
            fanart = fanarts.group(
                1)  #stringUtils.removeNonAscii(fanarts.group(1))

            if addon.getSetting('Link_Type') == '0':
                link = sys.argv[0] + "?url=" + urllib.quote_plus(
                    file) + "&mode=" + str(10) + "&name=" + urllib.quote_plus(
                        label) + "&fanart=" + urllib.quote_plus(fanart)
            else:
                link = file

            if strm_type in ['Audio-Single']:
                path = os.path.join('Singles', str(strm_name))
                try:
                    album = re.search('"album" *: *"(.*?)",',
                                      f).group(1).strip()
                    try:
                        artist = re.search('"artist" *: *"(.*?)",',
                                           f).group(1).strip()
                    except:
                        artist = re.search('"artist"*:*."(.*?)".,',
                                           f).group(1).strip()
                    pass
                    titl = re.search('"title" *: *(.*?),', f).group(1).strip()
                    types = re.search('"type" *: *(.*?),', f).group(1).strip()
                    filename = str(strm_name + ' - ' + label).strip()
                except:
                    filename = str(strm_name + ' - ' + label).strip()

            if strm_type.find('Audio-Album') != -1:
                path = os.path.join(strm_type, strm_name)
                if tracks:
                    track = tracks.group(1)
                try:
                    album = re.search('"album" *: *"(.*?)",',
                                      f).group(1).strip()
                    try:
                        artist = utils.multiple_reSub(
                            re.search('"artist" *: *"(.*?)",',
                                      f).group(1).strip(), dictReplacements)
                    except:
                        artist = utils.multiple_reSub(
                            re.search('"artist"*:*."(.*?)".,',
                                      f).group(1).strip(), dictReplacements)
                    pass
                    titl = utils.multiple_reSub(
                        re.search('"title" *: *(.*?),', f).group(1).strip(),
                        dictReplacements)
                    types = utils.multiple_reSub(
                        re.search('"type" *: *(.*?),', f).group(1).strip(),
                        dictReplacements)
                    filename = utils.multiple_reSub(
                        str(label).strip(), dictReplacements)
                except:
                    filename = utils.multiple_reSub(
                        str(label).strip(), dictReplacements)

            if strm_type in ['Other']:
                path = os.path.join('Other', strm_name)
                filename = str(strm_name + ' - ' + label)

            if filetype == 'file':
                if strm:
                    if strm_type.find('Audio-Albums') != -1:
                        utils.addon_log(str(path + ' ' + filename))
                        #utils.createSongNFO(stringUtils.cleanStrms((path.rstrip("."))), stringUtils.cleanStrms(filename.rstrip(".")), strm_ty=strm_type, artists=artist,albums=album , titls=titl, typese=types)
                        kodiDB.musicDatabase(album, artist, label, path, link,
                                             track)
                    # xbmc.executebuiltin('Notification(%s, %s, %d, %s)'%(path + " - " + filename, " writing...",5000,""))
                    fileSys.writeSTRM(
                        stringUtils.cleanStrms((path.rstrip("."))),
                        stringUtils.cleanStrms(filename.rstrip(".")), link)
                else:
                    guiTools.addLink(label,
                                     file,
                                     10,
                                     thumbnail,
                                     fanart,
                                     description,
                                     '',
                                     '',
                                     '',
                                     None,
                                     '',
                                     total=len(detail))
                    # xbmc.executebuiltin("Container.SetViewMode(500)")
            else:
                if strm:
                    fillPluginItems(file, media_type, file_type, strm, label,
                                    strm_type)
                else:
                    guiTools.addDir(label, file, 101, thumbnail, fanart,
                                    description, '', '', '')
Exemplo n.º 16
0
             print("I/O error({0}): {1}").format(errno, strerror)
         except ValueError:
             print("No valid integer in line.")
         except:
             thisDialog.dialogeBG.close()
             guiTools.infoDialog("Unexpected error: " +
                                 str(sys.exc_info()[1]) +
                                 (". Se your Kodi.log!"))
             utils.addon_log(("Unexpected error: ") +
                             str(sys.exc_info()[1]))
             print("Unexpected error:"), sys.exc_info()[0]
             raise
     pagesDone += 1
     if filetype != 'file' and pagesDone < int(PAGINGalbums):
         contentList = stringUtils.uni(
             jsonUtils.requestList(file, 'video'))
     else:
         pagesDone = int(PAGINGalbums)
     if False:
         try:
             urlUtils.downloadThumb(
                 aThumb, album, os.path.join(STRM_LOC, strm_type,
                                             artist))
         except:
             pass
 else:
     albumList.append([
         os.path.join(strm_type,
                      strm_name.strip().replace('++RenamedTitle++', ''),
                      label.strip()),
         str(utils.multiple_reSub(label.strip(), dictReplacements)),
Exemplo n.º 17
0
def getEpisodes(episodesListRaw, strm_name, strm_type):
    episodesList = []
    typeChange = []
    try:
        if type(episodesListRaw) is unicode:
            typeChange.append(episodesListRaw)
            episodesListRaw = typeChange

        for detailInfo in episodesListRaw:
            files = re.search('"file" *: *"(.*?)",', detailInfo)
            filetypes = re.search('"filetype" *: *"(.*?)",', detailInfo)
            labels = re.search('"label" *: *"(.*?)",', detailInfo)
            thumbnails = re.search('"thumbnail" *: *"(.*?)",', detailInfo)
            fanarts = re.search('"fanart" *: *"(.*?)",', detailInfo)
            descriptions = re.search('"description" *: *"(.*?)",', detailInfo)
            episodes = re.search('"episode" *: *(.*?),', detailInfo)
            seasons = re.search('"season" *: *(.*?),', detailInfo)
            showtitles = re.search('"showtitle" *: *"(.*?)",', detailInfo)

            if filetypes:
                if re.search('"filetype" *: *"(.*?)",', detailInfo).group(1) == "directory":
                    contentList = stringUtils.uni(jsonUtils.requestList(files.group(1), "video"))
                    continue

                if showtitles and seasons and episodes:
                    filetype = filetypes.group(1)
                    label = stringUtils.cleanLabels(labels.group(1))
                    file = files.group(1).replace("\\\\", "\\")
                    strm_name = str(utils.multiple_reSub(strm_name.rstrip(), dictReplacements))
                    showtitle = utils.multiple_reSub((showtitles.group(1)), dictReplacements)
                    season = utils.multiple_reSub((seasons.group(1)).replace("-", ""), dictReplacements)
                    episode = utils.multiple_reSub((episodes.group(1)).replace("-", ""), dictReplacements)

                    if not descriptions:
                        description = ""
                    else:
                        description = stringUtils.cleanLabels(descriptions.group(1))

                    if fanarts:
                        fanart = fanarts.group(1)
                    else:
                        fanart = ""

                    if addon.getSetting("Link_Type") == "0":
                        link = (
                            sys.argv[0]
                            + "?url="
                            + urllib.quote_plus(file)
                            + "&mode="
                            + str(10)
                            + "&name="
                            + urllib.quote_plus(label)
                            + "&fanart="
                            + urllib.quote_plus(fanart)
                        )
                    else:
                        link = file
                    #                     if showtitle.find('10-8:') != -1:
                    #                         x= showtitle
                    episodesList.append(
                        [
                            os.path.join(
                                xbmc.translatePath(
                                    strm_type + "//" + (utils.multiple_reSub(showtitle, dictReplacements))
                                )
                            ),
                            str("s" + season),
                            str("e" + episode),
                            link,
                        ]
                    )
    except IOError as (errno, strerror):
        print "I/O error({0}): {1}".format(errno, strerror)
Exemplo n.º 18
0
def fillPluginItems(url, media_type='video', file_type=False, strm=False, strm_name='', strm_type='Other', showtitle='None'):
    initialize_DialogBG("Updating", "Getting content..")
    thisDialog.dialogeBG.update(0, ADDON_NAME + ": Getting: ", stringUtils.getStrmname(strm_name))
    utils.addon_log('fillPluginItems')
    details = []

    if url.find("playMode=play") == -1:
        if not file_type:
            details = jsonUtils.requestList(url, media_type).get('files', [])
        else:
            details = jsonUtils.requestItem(url, media_type).get('files', [])
    else: 
        details.append("palyableSingleMedia")
        details.append(url)

    thisDialog.dialogeBG.close()
    thisDialog.dialogeBG = None  
    if strm_type.find('Cinema') != -1 or strm_type.find('YouTube') != -1 or strm_type.find('Movies') != -1:
        try:
            initialize_DialogBG("Movie", "Adding")
            movieList = addMovies(details, strm_name, strm_type)
            dbMovList = kodiDB.writeMovie(movieList)
            j = 100 / len(dbMovList) if len(dbMovList) > 0 else 1
            # Write strms for all values in movieList
            for entry in dbMovList:
                thisDialog.dialogeBG.update(j, ADDON_NAME + ": Writing Movies: ",  " Video: " + entry.get('title'))
                fileSys.writeSTRM(stringUtils.cleanStrms(entry.get('path')), stringUtils.cleanStrms(entry.get('title')) , "plugin://plugin.video.osmosix/?url=plugin&mode=10&mediaType=movie&id=" + str(entry.get('movieID')) + "|" + entry.get('title'))

                j = j + 100 / len(movieList)
                
            thisDialog.dialogeBG.close()
            thisDialog.dialogeBG = None 
            return      
        except:
            thisDialog.dialogeBG.close()
            thisDialog.dialogeBG = None
            guiTools.infoDialog("Unexpected error: " + str(sys.exc_info()[1])+ (". See your Kodi.log!"))
            utils.addon_log(("Unexpected error: ") + str(sys.exc_info()[1]))
            print ("Unexpected error:"), sys.exc_info()[0]
            raise
        
    if strm_type.find('TV-Show') != -1 or strm_type.find('Shows-Collection') != -1:
        try:
            initialize_DialogBG("Adding TV-Shows", "working..")
            getTVShowFromList(details, strm_name, strm_type)
            thisDialog.dialogeBG.close()
            thisDialog.dialogeBG = None
            return
        except:
            thisDialog.dialogeBG.close()
            thisDialog.dialogeBG = None
            guiTools.infoDialog("Unexpected error: " + str(sys.exc_info()[1])+ (". See your Kodi.log!"))
            utils.addon_log(("Unexpected error: ") + str(sys.exc_info()[1]))
            print ("Unexpected error:"), sys.exc_info()[0]
            raise
        
    if strm_type.find('Album') != -1 :
        try:
            initialize_DialogBG("Album", "Adding")
            addAlbum(details, strm_name, strm_type)
            thisDialog.dialogeBG.close()
            thisDialog.dialogeBG = None       
            return
        except:
            thisDialog.dialogeBG.close()
            thisDialog.dialogeBG = None
            guiTools.infoDialog("Unexpected error: " + str(sys.exc_info()[1])+ (". See your Kodi.log!"))
            utils.addon_log(("Unexpected error: ") + str(sys.exc_info()[1]))
            print ("Unexpected error:"), sys.exc_info()[0]
            raise

    for detail in details:
        filetype = detail['filetype']
        label = stringUtils.cleanLabels(detail['label'])
        file = detail['file'].replace("\\\\", "\\")
        strm_name = str(stringUtils.cleanByDictReplacements(strm_name.strip()))
        plot = stringUtils.cleanLabels(detail.get('plot',''))
        art = detail.get('art',{})
        
        if addon.getSetting('Link_Type') == '0':
            link = sys.argv[0] + "?url=" +urllib.quote_plus(stringUtils.uni(file)) + "&mode=" + str(10) + "&name=" +urllib.quote_plus(stringUtils.uni(label)) + "&fanart=" + urllib.quote_plus(art.get('fanart',''))
        else:
            link = file
    
        if strm_type == 'Audio-Single':
            path = os.path.join('Singles', str(strm_name))
            try:
                album = detail['album'].strip()
                artist = stringUtils.cleanByDictReplacements(", ".join(artist.strip() for artist in detailInfo['artist']) if isinstance(detailInfo['artist'], (list, tuple)) else detailInfo['artist'].strip())
                title = detail['title'].strip()
                type = detail['type'].strip()
                filename = str(strm_name + ' - ' + label).strip()
            except:
                filename = str(strm_name + ' - ' + label).strip()
                               
        if strm_type.find('Audio-Album') != -1:
            path = os.path.join(strm_type, strm_name)
            track = detail.get('track', 0)
            try:
                album = detail['album'].strip()
                artist = stringUtils.cleanByDictReplacements(", ".join(artist.strip() for artist in detailInfo['artist']) if isinstance(detailInfo['artist'], (list, tuple)) else detailInfo['artist'].strip())
                title = stringUtils.cleanByDictReplacements(detail['title'].strip())
                type = stringUtils.cleanByDictReplacements(detail['type'].strip())
                filename = stringUtils.cleanByDictReplacements(label.strip())
            except:
                filename = stringUtils.cleanByDictReplacements(label.strip())

        if strm_type in ['Other']:
            path = os.path.join('Other', strm_name)
            filename = str(strm_name + ' - ' + label)             
                              
        if filetype == 'file':
            if strm:
                if strm_type.find('Audio-Albums') != -1:
                    kodiDB.musicDatabase(album, artist, label, path, link, track)
                fileSys.writeSTRM(stringUtils.cleanStrms((path.rstrip("."))), stringUtils.cleanStrms(filename.rstrip(".")) , link)
            else:
                guiTools.addLink(label, file, 10, art, plot, '', '', '', None, '', total=len(details))
        else:
            if strm:
                fillPluginItems(file, media_type, file_type, strm, label, strm_type)
            else:
                guiTools.addDir(label, file, 101, art, plot, '', '', '')
Exemplo n.º 19
0
def getEpisodes(episodesListRaw, strm_name, strm_type, j=0, pagesDone=0):
    episodesList = []
    typeChange = []

    try:
        if type(episodesListRaw) is unicode:
            typeChange.append(episodesListRaw)
            episodesListRaw = typeChange

        for detailInfo in episodesListRaw:
            utils.addon_log("detailInfo: " + detailInfo)
            detailInfo = stringUtils.removeHTMLTAGS(detailInfo)
            files = re.search('"file" *: *"(.*?)",', detailInfo)
            filetypes = re.search('"filetype" *: *"(.*?)",', detailInfo)
            labels = re.search('"label" *: *"(.*?)",', detailInfo)
            thumbnails = re.search('"thumbnail" *: *"(.*?)",', detailInfo)
            fanarts = re.search('"fanart" *: *"(.*?)",', detailInfo)
            descriptions = re.search('"description" *: *"(.*?)",', detailInfo)
            episodes = re.search('"episode" *: *(.*?),', detailInfo)
            seasons = re.search('"season" *: *(.*?),', detailInfo)
            showtitles = re.search('"showtitle" *: *"(.*?)",', detailInfo)
            provGeneral = re.search(
                '%s(.*)'
                "\\/\\?"
                '' % (r"plugin://plugin.video."), detailInfo)
            provXST = re.search('%s(.*)'
                                "\&function"
                                '' % (r"site="), detailInfo)
            listName = strm_name

            if filetypes:
                if provGeneral:
                    listName = provGeneral.group(1)
                    if provXST:
                        listName = listName + ": " + provXST.group(1)

                if filetypes.group(1) == 'directory':
                    contentList = stringUtils.uni(
                        jsonUtils.requestList(files.group(1), 'video'))
                    continue
                if showtitles and seasons and episodes:
                    filetype = filetypes.group(1)
                    label = (stringUtils.cleanLabels(labels.group(1)))
                    file = (files.group(1).replace("\\\\", "\\"))
                    strm_name = str(
                        stringUtils.cleanByDictReplacements(strm_name.strip()))
                    showtitle = stringUtils.cleanByDictReplacements(
                        (showtitles.group(1)))
                    season = stringUtils.cleanByDictReplacements(
                        seasons.group(1).replace("-", ""))
                    episode = stringUtils.cleanByDictReplacements(
                        episodes.group(1).replace("-", ""))
                    episodesHDF = re.search('Folge.(\\d+)&', file)

                    if file.find("hdfilme") != "-1" and episodesHDF:
                        episode = re.search('Folge.(\\d+)&', file).group(1)

                    if not descriptions:
                        description = ''
                    else:
                        description = stringUtils.cleanLabels(
                            descriptions.group(1))

                    if fanarts:
                        fanart = fanarts.group(1)
                    else:
                        fanart = ''

                    if strm_name.find("++RenamedTitle++") != -1:
                        showtitle = strm_name.strip().replace(
                            '++RenamedTitle++', '')
                    if showtitle != "" and strm_type != "":
                        episodesList.append([
                            strm_type,
                            str('s' + season),
                            str('e' + episode), file,
                            stringUtils.cleanByDictReplacements(
                                showtitle.strip()), listName
                        ])

    except IOError as (errno, strerror):
        print("I/O error({0}): {1}").format(errno, strerror)
Exemplo n.º 20
0
def addMovies(contentList, strm_name="", strm_type="Other"):
    movieList = []
    pagesDone = 0
    file = ""

    while pagesDone < int(PAGINGMovies):

        for detailInfo in contentList:
            files = re.search('"file" *: *"(.*?)",', detailInfo)
            filetypes = re.search('"filetype" *: *"(.*?)",', detailInfo)
            labels = re.search('"label" *: *"(.*?)",', detailInfo)
            thumbnails = re.search('"thumbnail" *: *"(.*?)",', detailInfo)
            fanarts = re.search('"fanart" *: *"(.*?)",', detailInfo)
            descriptions = re.search('"description" *: *"(.*?)",', detailInfo)
            try:
                if filetypes and labels and files:
                    filetype = filetypes.group(1)
                    label = stringUtils.cleanLabels(labels.group(1))
                    file = files.group(1).replace("\\\\", "\\")

                    if fanarts:
                        fanart = fanarts.group(1)
                    else:
                        fanart = ""

                    if addon.getSetting("Link_Type") == "0":
                        link = (
                            sys.argv[0]
                            + "?url="
                            + urllib.quote_plus(file)
                            + "&mode="
                            + str(10)
                            + "&name="
                            + urllib.quote_plus(label)
                            + "&fanart="
                            + urllib.quote_plus(fanart)
                        )
                    else:
                        link = file

                    if label and strm_name and label:
                        label = str(utils.multiple_reSub(label.rstrip(), dictReplacements))
                        movieList.append(
                            [
                                os.path.join(strm_type, strm_name, label),
                                str(utils.multiple_reSub(label.rstrip(), dictReplacements)),
                                link,
                            ]
                        )
            except:
                pass

        pagesDone += 1
        if filetype != "file" and pagesDone < int(PAGINGMovies):
            contentList = stringUtils.uni(jsonUtils.requestList(file, "video"))
        else:
            pagesDone = int(PAGINGMovies)
    # Write strms for all values in movieList
    for i in movieList:  # path,name,url(+name)
        fileSys.writeSTRM(
            stringUtils.cleanStrms((i[0].rstrip("."))), stringUtils.cleanStrms(i[1].rstrip(".")), i[2] + "|" + i[1]
        )

    return movieList