コード例 #1
0
def updateLibrary(asinlist=False):
    asins = ''
    if not asinlist:
        asinlist = common.SCRAP_ASINS(common.movielib % common.lib)
        MOVIE_ASINS = getMoviedbAsins(0, True)
        for asin in asinlist:
            found, MOVIE_ASINS = common.compasin(MOVIE_ASINS, asin)
            if not found: asins += asin + ','
        deleteremoved(MOVIE_ASINS)
    else: asins = ','.join(asinlist)
    
    if not asins: return
    
    titles = appfeed.ASIN_LOOKUP(asins)['message']['body']['titles']
    for title in titles:
        ASIN_ADD(title)
コード例 #2
0
def ASIN_ADD(titles, asins=None):
    count = 0
    if asins:
        titles = appfeed.ASIN_LOOKUP(asins)['message']['body']['titles']

    for title in titles:
        stars = votes = seriesasin = mpaa = premiered = year = genres = poster = None
        seasontotal = episodetotal = season = 0

        contentType = 'SERIES' if asins else title['contentType']
        asin, isHD, isPrime, audio = GET_ASINS(title)
        plot = title.get('synopsis')
        studio = title.get('studioOrNetwork')
        actors = title.get('starringCast')
        fanart = title.get('heroUrl')
        isAdult = 'ageVerificationRequired' in str(title.get('restrictions'))

        if 'images' in title['formats'][0].keys():
            try:
                thumbnailUrl = title['formats'][0]['images'][0]['uri']
                thumbnailFilename = thumbnailUrl.split('/')[-1]
                thumbnailBase = thumbnailUrl.replace(thumbnailFilename, '')
                poster = thumbnailBase + thumbnailFilename.split(
                    '.')[0] + '.jpg'
            except:
                pass

        if 'releaseOrFirstAiringDate' in title:
            premiered = title['releaseOrFirstAiringDate'][
                'valueFormatted'].split('T')[0]
            year = int(premiered.split('-')[0])

        if 'regulatoryRating' in title:
            if title['regulatoryRating'] == 'not_checked':
                mpaa = getString(30171)
            else:
                mpaa = 'FSK ' + title['regulatoryRating']

        if 'genres' in title.keys():
            genres = ' / '.join(title['genres']).replace('_', ' & ').replace(
                'Musikfilm & Tanz', 'Musikfilm, Tanz')

        if 'customerReviewCollection' in title:
            stars = float(
                title['customerReviewCollection']['customerReviewSummary']
                ['averageOverallRating']) * 2
            votes = title['customerReviewCollection']['customerReviewSummary'][
                'totalReviewCount']
        elif 'amazonRating' in title:
            stars = float(title['amazonRating']['rating']
                          ) * 2 if 'rating' in title['amazonRating'] else None
            votes = title['amazonRating']['count'] if 'count' in title[
                'amazonRating'] else 0

        if contentType == 'SERIES':
            seriestitle = title['title']
            if 'childTitles' in title:
                seasontotal = title['childTitles'][0]['size']
            showdata = [
                cleanData(x) for x in [
                    asin,
                    checkCase(seriestitle), plot, studio, mpaa, genres, actors,
                    premiered, year, stars, votes, seasontotal, 0, audio, isHD,
                    isPrime, None, None, None, poster, None, fanart
                ]
            ]
            count += addDB('shows', showdata)
        elif contentType == 'SEASON':
            season = title['number']
            if title['ancestorTitles']:
                try:
                    seriestitle = title['ancestorTitles'][0]['title']
                    seriesasin = title['ancestorTitles'][0]['titleId']
                except:
                    pass
            else:
                seriesasin = asin.split(',')[0]
                seriestitle = title['title']
            if 'childTitles' in title:
                episodetotal = title['childTitles'][0]['size']
            imdburl = title.get('imdbUrl')
            seasondata = [
                cleanData(x) for x in [
                    asin, seriesasin, season,
                    checkCase(seriestitle), plot, actors, studio, mpaa, genres,
                    premiered, year, stars, votes, episodetotal, audio, None,
                    None, isHD, isPrime, imdburl, poster, None, fanart, False
                ]
            ]
            count += addDB('seasons', seasondata)
        elif contentType == 'EPISODE':
            episodetitle = title['title']
            seasontitle = ''
            if 'ancestorTitles' in title:
                for content in title['ancestorTitles']:
                    if content['contentType'] == 'SERIES':
                        seriesasin = content.get('titleId')
                        seriestitle = content.get('title', '')
                    elif content['contentType'] == 'SEASON':
                        season = content.get('number')
                        seasonasin = content.get('titleId')
                        seasontitle = content.get('title', '')
                if not seriesasin:
                    seriesasin = seasonasin
                    seriestitle = seasontitle
            episode = title.get('number', 0)
            runtime = title['runtime'][
                'valueMillis'] / 1000 if 'runtime' in title else None

            episodedata = [
                cleanData(x) for x in [
                    asin, seasonasin, seriesasin,
                    checkCase(seriestitle), season, episode, poster, mpaa,
                    actors, genres,
                    checkCase(
                        episodetitle), studio, stars, votes, fanart, plot,
                    premiered, year, runtime, isHD, isPrime, isAdult, audio
                ]
            ]
            count += addDB('episodes', episodedata)
    return count
コード例 #3
0
def ASIN_ADD(ASINLIST, isPrime=True):
    titles = appfeed.ASIN_LOOKUP(ASINLIST)['message']['body']['titles']
    for title in titles:
        asin = title['titleId']
        movietitle = title['title']
        url = common.BASE_URL + '/gp/product/' + asin
        if title['formats'][0].has_key('images'):
            try:
                thumbnailUrl = title['formats'][0]['images'][0]['uri']
                thumbnailFilename = thumbnailUrl.split('/')[-1]
                thumbnailBase = thumbnailUrl.replace(thumbnailFilename, '')
                poster = thumbnailBase + thumbnailFilename.split(
                    '.')[0] + '.jpg'
            except:
                poster = None
        if title.has_key('synopsis'):
            plot = title['synopsis']
        else:
            plot = None
        if title.has_key('director'):
            director = title['director']
        else:
            director = None
        if title.has_key('runtime'):
            runtime = str(title['runtime']['valueMillis'] / 1000)
        else:
            runtime = None
        if title.has_key('releaseOrFirstAiringDate'):
            premiered = title['releaseOrFirstAiringDate'][
                'valueFormatted'].split('T')[0]
            year = int(premiered.split('-')[0])
        else:
            premiered = None
            year = None
        if title.has_key('studioOrNetwork'):
            studio = title['studioOrNetwork']
        else:
            studio = None
        if title.has_key('regulatoryRating'):
            mpaa = title['regulatoryRating']
        else:
            mpaa = ''
        if title.has_key('starringCast'):
            actors = title['starringCast']
        else:
            actors = None
        if title.has_key('genres'):
            genres = ','.join(title['genres'])
        else:
            genres = ''
        if title.has_key('customerReviewCollection'):
            stars = float(
                title['customerReviewCollection']['customerReviewSummary']
                ['averageOverallRating']) * 2
            votes = str(title['customerReviewCollection']
                        ['customerReviewSummary']['totalReviewCount'])
        else:
            stars = None
            votes = None
        isHD = False
        hd_asin = None
        for format in title['formats']:
            if format['videoFormatType'] == 'HD':
                isHD = True
                for offer in format['offers']:
                    if offer['offerType'] == 'PURCHASE':
                        hd_asin = offer['asin']
                    elif offer['offerType'] == 'RENTAL':
                        hd_asin = offer['asin']
            #for offer in format['offers']:
            #    if offer['offerType'] == 'SUBSCRIPTION':
            #        isPrime = True
        #Add Movie
        moviedata = [
            asin, hd_asin, movietitle, url, poster, plot, director, None,
            runtime, year, premiered, studio, mpaa, actors, genres, stars,
            votes, None, None, None, isPrime, isHD, False, False, None
        ]
        addMoviedb(moviedata)
    return [asin, hd_asin]
コード例 #4
0
def ASIN_ADD(ASINLIST,
             url=False,
             isPrime=True,
             isHD=False,
             single=False,
             addSeries=False):
    if url:
        titles = appfeed.URL_LOOKUP(url)['message']['body']['titles']
    else:
        titles = appfeed.ASIN_LOOKUP(ASINLIST)['message']['body']['titles']
    for title in titles:
        isHD = False
        isPrime = True
        if title['contentType'] == 'SERIES':
            asin = title['titleId']
            seriestitle = title['title']
            for format in title['formats']:
                if format['videoFormatType'] == 'HD':
                    isHD = True
                for offer in format['offers']:
                    if offer['offerType'] == 'SUBSCRIPTION':
                        isPrime = True
            if title['formats'][0].has_key('images'):
                try:
                    thumbnailUrl = title['formats'][0]['images'][0]['uri']
                    thumbnailFilename = thumbnailUrl.split('/')[-1]
                    thumbnailBase = thumbnailUrl.replace(thumbnailFilename, '')
                    poster = thumbnailBase + thumbnailFilename.split(
                        '.')[0] + '.jpg'
                except:
                    poster = None
            else:
                poster = None
            if title.has_key('synopsis'):
                plot = title['synopsis']
            else:
                plot = None
            if title.has_key('childTitles'):
                seasontotal = title['childTitles'][0]['size']
                seasonFeed = title['childTitles'][0]['feedUrl']
            else:
                seasontotal = 0
                seasonFeed = None
            if title.has_key('releaseOrFirstAiringDate'):
                premiered = title['releaseOrFirstAiringDate'][
                    'valueFormatted'].split('T')[0]
                year = int(premiered.split('-')[0])
            else:
                premiered = None
                year = None
            if title.has_key('studioOrNetwork'):
                studio = title['studioOrNetwork']
            else:
                studio = None
            if title.has_key('regulatoryRating'):
                mpaa = title['regulatoryRating']
            else:
                mpaa = None
            if title.has_key('starringCast'):
                actors = title['starringCast']
            else:
                actors = None
            if title.has_key('genres'):
                genres = ','.join(title['genres'])
            else:
                genres = None
            if title.has_key('amazonRating'):
                stars = float(title['amazonRating']['rating']) * 2
                votes = str(title['amazonRating']['count'])
            else:
                stars = None
                votes = None
            #          asin,feed      ,seriestitle,poster,plot,studio,mpaa,genres,actors,premiered,year,stars,votes,seasontotal,episodetotal,watched,unwatched,isHD,isprime,favor,TVDBbanner,TVDBposter,TVDBfanart
            addShowdb([
                asin, None, seasonFeed, seriestitle, poster, plot, studio,
                mpaa, genres, actors, premiered, year, stars, votes,
                seasontotal, 0, 0, 0, isHD, isPrime, False, None, None, None,
                None
            ])
            if single:
                return asin, ASINLIST
        elif title['contentType'] == 'SEASON':
            asin = title['titleId']
            season = title['number']
            if title.has_key('ancestorTitles'):
                if len(title['ancestorTitles']) > 0:
                    try:
                        seriestitle = title['ancestorTitles'][0]['title']
                        seriesasin = title['ancestorTitles'][0]['titleId']
                    except:
                        pass
            if addSeries:
                ASIN_ADD(seriesasin)
            if title['formats'][0].has_key('images'):
                try:
                    thumbnailUrl = title['formats'][0]['images'][0]['uri']
                    thumbnailFilename = thumbnailUrl.split('/')[-1]
                    thumbnailBase = thumbnailUrl.replace(thumbnailFilename, '')
                    poster = thumbnailBase + thumbnailFilename.split(
                        '.')[0] + '.jpg'
                except:
                    poster = None
            else:
                poster = None
            if title.has_key('synopsis'):
                plot = title['synopsis']
            else:
                plot = None
            if title.has_key('childTitles'):
                episodetotal = title['childTitles'][0]['size']
                episodeFeed = title['childTitles'][0]['feedUrl']
            else:
                episodetotal = 0
                episodeFeed = None
            if title.has_key('releaseOrFirstAiringDate'):
                premiered = title['releaseOrFirstAiringDate'][
                    'valueFormatted'].split('T')[0]
                year = int(premiered.split('-')[0])
            else:
                premiered = None
                year = None
            if title.has_key('starringCast'):
                actors = title['starringCast']
            else:
                actors = None
            if title.has_key('studioOrNetwork'):
                studio = title['studioOrNetwork']
            else:
                studio = None
            if title.has_key('regulatoryRating'):
                mpaa = title['regulatoryRating']
            else:
                mpaa = None
            if title.has_key('genres'):
                genres = ','.join(title['genres'])
            else:
                genres = None
            if title.has_key('amazonRating'):
                stars = float(title['amazonRating']['rating']) * 2
                votes = str(title['amazonRating']['count'])
            else:
                stars = None
                votes = None
            for format in title['formats']:
                if format['videoFormatType'] == 'HD':
                    for offer in format['offers']:
                        if offer['offerType'] == 'SUBSCRIPTION':
                            isPrime = True
                    isHD = True
                    for offer in format['offers']:
                        if offer['offerType'] == 'SEASON_PURCHASE' or offer[
                                'offerType'] == 'TV_PASS':
                            hd_asin = offer['asin']
                            addSeasondb([
                                hd_asin, seriesasin, episodeFeed, poster,
                                season, seriestitle, plot, actors, studio,
                                mpaa, genres, premiered, year, stars, votes,
                                episodetotal, 0, episodetotal, isHD, isPrime
                            ])
                            #if hd_asin not in episodeFeed:
                            #    ASIN_FEED(episodeFeed.replace(asin,hd_asin))
                if format['videoFormatType'] == 'SD':
                    for offer in format['offers']:
                        if offer['offerType'] == 'SUBSCRIPTION':
                            isPrime = True
                    isHD = False
                    for offer in format['offers']:
                        if offer['offerType'] == 'SEASON_PURCHASE' or offer[
                                'offerType'] == 'TV_PASS':
                            sd_asin = offer['asin']
                            addSeasondb([
                                sd_asin, seriesasin, episodeFeed, poster,
                                season, seriestitle, plot, actors, studio,
                                mpaa, genres, premiered, year, stars, votes,
                                episodetotal, 0, episodetotal, isHD, isPrime
                            ])
            #            asin,episodeFeed,poster,season,seriestitle,plot,actors,studio,mpaa,genres,premiered,year,stars,votes,episodetotal,watched,unwatched,isHD,isprime
        elif title['contentType'] == 'EPISODE':
            asin = title['titleId']
            episodetitle = title['title']
            if title.has_key('ancestorTitles'):
                if len(title['ancestorTitles']) > 0:
                    seriestitle = title['ancestorTitles'][0]['title']
                    seriesasin = title['ancestorTitles'][0]['titleId']
                    seasonasin = title['ancestorTitles'][1]['titleId']
                    season = title['ancestorTitles'][1]['number']
            if title.has_key('number'):
                episode = title['number']
            else:
                episode = 0
            url = common.BASE_URL + '/gp/product/' + asin
            if title['formats'][0].has_key('images'):
                try:
                    thumbnailUrl = title['formats'][0]['images'][0]['uri']
                    thumbnailFilename = thumbnailUrl.split('/')[-1]
                    thumbnailBase = thumbnailUrl.replace(thumbnailFilename, '')
                    poster = thumbnailBase + thumbnailFilename.split(
                        '.')[0] + '.jpg'
                except:
                    poster = None
            else:
                poster = None
            if title.has_key('synopsis'):
                plot = title['synopsis']
            else:
                plot = None
            if title.has_key('runtime'):
                runtime = str(title['runtime']['valueMillis'] / 1000)
            else:
                runtime = None
            if title.has_key('releaseOrFirstAiringDate'):
                premiered = title['releaseOrFirstAiringDate'][
                    'valueFormatted'].split('T')[0]
                year = int(premiered.split('-')[0])
            else:
                premiered = None
                year = None
            if title.has_key('studioOrNetwork'):
                studio = title['studioOrNetwork']
            else:
                studio = None
            if title.has_key('regulatoryRating'):
                mpaa = title['regulatoryRating']
            else:
                mpaa = None
            if title.has_key('starringCast'):
                actors = title['starringCast']
            else:
                actors = None
            if title.has_key('genres'):
                genres = ','.join(title['genres'])
            else:
                genres = None
            if title.has_key('customerReviewCollection'):
                stars = float(
                    title['customerReviewCollection']['customerReviewSummary']
                    ['averageOverallRating']) * 2
                votes = str(title['customerReviewCollection']
                            ['customerReviewSummary']['totalReviewCount'])
            else:
                stars = None
                votes = None
            for format in title['formats']:
                if format['videoFormatType'] == 'HD':
                    for offer in format['offers']:
                        if offer['offerType'] == 'PURCHASE':
                            isHD = True
                            hd_asin = offer['asin']
                            hd_url = common.BASE_URL + '/gp/product/' + hd_asin
                for offer in format['offers']:
                    if offer['offerType'] == 'SUBSCRIPTION':
                        isPrime = True
            #             asin,seriestitle,season,episode,poster,mpaa,actors,genres,episodetitle,studio,stars,votes,url,plot,airdate,year,runtime,isHD,isprime,watched
            if isHD:
                addEpisodedb([
                    hd_asin, seasonasin, seriesasin, seriestitle, season,
                    episode, poster, mpaa, actors, genres, episodetitle,
                    studio, stars, votes, hd_url, plot, premiered, year,
                    runtime, isHD, isPrime, False
                ])
                addEpisodedb([
                    asin, seasonasin, seriesasin, seriestitle, season, episode,
                    poster, mpaa, actors, genres, episodetitle, studio, stars,
                    votes, url, plot, premiered, year, runtime, False, isPrime,
                    False
                ])
            else:
                addEpisodedb([
                    asin, seasonasin, seriesasin, seriestitle, season, episode,
                    poster, mpaa, actors, genres, episodetitle, studio, stars,
                    votes, url, plot, premiered, year, runtime, isHD, isPrime,
                    False
                ])
コード例 #5
0
def ASIN_ADD(titles, asins=False, url=False, single=False):
    if asins:
        titles = appfeed.ASIN_LOOKUP(asins)['message']['body']['titles']
    count = 0
    for title in titles:
        poster = plot = premiered = year = studio = mpaa = fanart = imdburl = None
        actors = genres = stars = votes = seriesasin = runtime = banner = None
        seasontotal = episodetotal = episode = 0
        isAdult = False
        if asins:
            contentType = 'SERIES'
        else:
            contentType = title['contentType']

        asin, isHD, isPrime, audio = common.GET_ASINS(title)
        if title['formats'][0].has_key('images'):
            try:
                thumbnailUrl = title['formats'][0]['images'][0]['uri']
                thumbnailFilename = thumbnailUrl.split('/')[-1]
                thumbnailBase = thumbnailUrl.replace(thumbnailFilename, '')
                poster = thumbnailBase + thumbnailFilename.split(
                    '.')[0] + '.jpg'
            except:
                pass
        if title.has_key('synopsis'):
            plot = title['synopsis']
        if title.has_key('releaseOrFirstAiringDate'):
            premiered = title['releaseOrFirstAiringDate'][
                'valueFormatted'].split('T')[0]
            year = int(premiered.split('-')[0])
        if title.has_key('studioOrNetwork'):
            studio = title['studioOrNetwork']
        if title.has_key('regulatoryRating'):
            if title['regulatoryRating'] == 'not_checked':
                mpaa = common.getString(30171)
            else:
                mpaa = common.getString(30170) + title['regulatoryRating']
        if title.has_key('starringCast'):
            actors = title['starringCast']
        if title.has_key('genres'):
            genres = ' / '.join(title['genres']).replace('_', ' & ').replace(
                'Musikfilm & Tanz', 'Musikfilm, Tanz')
        if title.has_key('customerReviewCollection'):
            stars = float(
                title['customerReviewCollection']['customerReviewSummary']
                ['averageOverallRating']) * 2
            votes = str(title['customerReviewCollection']
                        ['customerReviewSummary']['totalReviewCount'])
        elif title.has_key('amazonRating'):
            if title['amazonRating'].has_key('rating'):
                stars = float(title['amazonRating']['rating']) * 2
            if title['amazonRating'].has_key('count'):
                votes = str(title['amazonRating']['count'])
        if title.has_key('heroUrl'):
            fanart = title['heroUrl']

        if contentType == 'SERIES':
            seriestitle = title['title']
            if title.has_key('childTitles'):
                seasontotal = title['childTitles'][0]['size']
            showdata = [
                common.cleanData(x) for x in [
                    asin,
                    common.checkCase(
                        seriestitle), plot, studio, mpaa, genres, actors,
                    premiered, year, stars, votes, seasontotal, 0, audio, isHD,
                    isPrime, None, None, None, poster, None, fanart
                ]
            ]
            count += addDB('shows', showdata)
            if single:
                return asin, ASINLIST
        elif contentType == 'SEASON':
            season = title['number']
            if title['ancestorTitles']:
                try:
                    seriestitle = title['ancestorTitles'][0]['title']
                    seriesasin = title['ancestorTitles'][0]['titleId']
                except:
                    pass
            else:
                seriesasin = asin.split(',')[0]
                seriestitle = title['title']
            if title.has_key('childTitles'):
                episodetotal = title['childTitles'][0]['size']
            #if title.has_key('drakeUrl'):
            #    imdburl = title['drakeUrl']
            if title.has_key('imdbUrl'):
                imdburl = title['imdbUrl']
            seasondata = [
                common.cleanData(x) for x in [
                    asin, seriesasin, season,
                    common.checkCase(seriestitle), plot, actors, studio, mpaa,
                    genres, premiered, year, stars, votes, episodetotal, audio,
                    None, None, isHD, isPrime, imdburl, poster, None, fanart
                ]
            ]
            count += addDB('seasons', seasondata)
        elif contentType == 'EPISODE':
            episodetitle = title['title']
            if title.has_key('ancestorTitles'):
                for content in title['ancestorTitles']:
                    if content['contentType'] == 'SERIES':
                        if content.has_key('titleId'):
                            seriesasin = content['titleId']
                        if content.has_key('title'):
                            seriestitle = content['title']
                    elif content['contentType'] == 'SEASON':
                        if content.has_key('number'):
                            season = content['number']
                        if content.has_key('titleId'):
                            seasonasin = content['titleId']
                        if content.has_key('title'):
                            seasontitle = content['title']
                if not seriesasin:
                    seriesasin = seasonasin
                    seriestitle = seasontitle
            if title.has_key('number'):
                episode = title['number']
            if title.has_key('runtime'):
                runtime = str(title['runtime']['valueMillis'] / 60000)
            if title.has_key('restrictions'):
                for rest in title['restrictions']:
                    if rest['action'] == 'playback':
                        if rest['type'] == 'ageVerificationRequired':
                            isAdult = True
            episodedata = [
                common.cleanData(x) for x in [
                    asin, seasonasin, seriesasin,
                    common.checkCase(seriestitle), season, episode, poster,
                    mpaa, actors, genres,
                    common.checkCase(
                        episodetitle), studio, stars, votes, fanart, plot,
                    premiered, year, runtime, isHD, isPrime, isAdult, audio
                ]
            ]
            count += addDB('episodes', episodedata)
    return count