def GetRottenTomatoesMoviesComingSoon(type):
    movies = []
    results = ""
    try:
        url = 'http://api.rottentomatoes.com/api/public/v1.0/lists/movies/upcoming.json?apikey=%s' % (
            rottentomatoes_key)
        log("Json Query: " + url)
        response = GetStringFromUrl(url)
        results = simplejson.loads(response)
    except:
        log("Error when fetching RottenTomatoes data from net")
    count = 1
    if results:
        for item in results["movies"]:
            movie = {
                'Title': item["title"],
                'Art(poster)': item["posters"]["original"],
                'Runtime': item["runtime"],
                'Year': item["year"],
                'Premiered': item["release_dates"]["theater"],
                'mpaa': item["mpaa_rating"],
                'Rating': item["ratings"]["audience_score"] / 10.0,
                'Plot': item["synopsis"]
            }
            movies.append(movie)
            count += 1
            if count > 20:
                break
    return movies
Exemple #2
0
def GetNearEvents():
    settings = xbmcaddon.Addon(id='script.ExtraMusicInfo')
    country = 'Poland' #settings.getSetting('country')
    city = 'Wroclaw' #settings.getSetting('city')
    url = 'http://api.bandsintown.com/events/search?format=json&location=use_geoip&app_id=%s' % (bandsintown_apikey)
    
    log('request: %s' % url)
    
    response = GetStringFromUrl(url)
    results = json.loads(response)
    
    return HandleResult(results)
def GetMusicBrainzIdFromNet(artist, xbmc_artist_id=-1):
    url = 'http://musicbrainz.org/ws/1/artist/?type=xml&name=%s' % urllib.quote_plus(
        artist)

    tries = 0
    trylimit = 5
    gotit = False
    while tries < trylimit and not gotit:
        ret = GetStringFromUrl(url)

        if 'requests are exceeding the allowable rate limit' in ret:
            log('MusicBrainz limits amount of request per time - we must wait')
            time.sleep(1)
            tries = tries + 1
        else:
            gotit = True

    if not gotit:
        return -1

    curXML = xml.dom.minidom.parseString(ret)

    curXMLs = curXML.getElementsByTagName('metadata')
    if len(curXMLs) > 0:
        curXML = curXMLs[0]
    else:
        return None

    curXMLs = curXML.getElementsByTagName('artist-list')
    if len(curXMLs) > 0:
        curXML = curXMLs[0]
    else:
        return None

    curXMLs = curXML.getElementsByTagName('artist')
    if len(curXMLs) > 0:
        curXML = curXMLs[0]
    else:
        return None

    artistName = GetValue(curXML, 'name')
    artistMusicBrainzId = curXML.getAttribute('id')

    log('Found MusicBrainz ID')

    if xbmc_artist_id != -1:
        SetMusicBrainzID(xbmc_artist_id, artistMusicBrainzId)

    return artistMusicBrainzId
def GetMusicBrainzIdFromNet(artist, xbmc_artist_id=-1):
    import base64
    url = 'http://musicbrainz.org/ws/1/artist/?type=xml&name=%s' % urllib.quote_plus(
        artist)
    tries = 0
    trylimit = 5
    gotit = False
    filename = base64.urlsafe_b64encode(url)
    if xbmcvfs.exists(
            filename) and time.time() - os.path.getmtime(filename) < 86400:
        return read_from_file(filename)
    else:
        while tries < trylimit and not gotit:
            ret = GetStringFromUrl(url)
            if ret:
                if 'requests are exceeding the allowable rate limit' in ret:
                    log('MusicBrainz limits amount of request per time - we must wait'
                        )
                    xbmc.sleep(1000)
                    tries = tries + 1
                else:
                    gotit = True
        if not gotit:
            return -1
        curXML = xml.dom.minidom.parseString(ret)
        curXMLs = curXML.getElementsByTagName('metadata')
        if len(curXMLs) > 0:
            curXML = curXMLs[0]
        else:
            return None
        curXMLs = curXML.getElementsByTagName('artist-list')
        if len(curXMLs) > 0:
            curXML = curXMLs[0]
        else:
            return None
        curXMLs = curXML.getElementsByTagName('artist')
        if len(curXMLs) > 0:
            curXML = curXMLs[0]
        else:
            return None
    #  artistName = GetValue(curXML, 'name')
        artistMusicBrainzId = curXML.getAttribute('id')
        log('Found MusicBrainz ID')
        #    if xbmc_artist_id != -1:
        #        SetMusicBrainzID(xbmc_artist_id, artistMusicBrainzId)
        return artistMusicBrainzId
Exemple #5
0
def GetNearEvents(Artists):
    settings = xbmcaddon.Addon(id='script.ExtraMusicInfo')
    
    ArtistStr = ''
    for art in Artists:
        if len(ArtistStr) > 0:
             ArtistStr = ArtistStr + '&'
        
        ArtistStr = ArtistStr + 'artists[]=' + urllib.quote(art['name'])     
        
    Artists
    
    url = 'http://api.bandsintown.com/events/search?%sformat=json&location=use_geoip&app_id=%s' % (ArtistStr, bandsintown_apikey)
    
    log('request: %s' % url)
    
    response = GetStringFromUrl(url)
    results = json.loads(response)
    
    return HandleResult(results)
Exemple #6
0
def GetSimiliarById(m_id):
    url = 'http://ws.audioscrobbler.com/2.0/?method=artist.getsimilar&mbid=%s&api_key=%s' % (
        m_id, lastfm_apikey)
    ret = GetStringFromUrl(url)

    curXML = xml.dom.minidom.parseString(ret)

    curXMLs = curXML.getElementsByTagName('lfm')
    if len(curXMLs) > 0:
        curXML = curXMLs[0]
    else:
        log('No <lfm> found - printing retrieved xml:')
        print ret
        return None

    curXMLs = curXML.getElementsByTagName('similarartists')
    if len(curXMLs) > 0:
        curXML = curXMLs[0]
    else:
        log('No <similiarartists> found - printing retrieved xml:')
        print ret
        return None

    artistXMLs = curXML.getElementsByTagName('artist')

    similiars = []

    for artistXML in artistXMLs:
        artist = {
            "name": GetValue(artistXML, 'name'),
            "mbid": GetValue(artistXML, 'mbid')
        }
        similiars.append(artist)

    log('Found %i Similiar artists in last.FM' % len(similiars))

    return similiars
Exemple #7
0
def GetEvents(id):
    url = 'http://api.bandsintown.com/artists/mbid_%s/events?format=json&app_id=%s' % (id, bandsintown_apikey)
    response = GetStringFromUrl(url)
    results = json.loads(response)
    
    return HandleResult(results)