Exemple #1
0
def get_artists_by_tag(tag):
    n = '500'
    value = cache.get_value(tag, n, lastfm='tag')
    if value == None:
        value = []
        try:
            params = {
                'method': 'tag.gettopartists',
                'tag': tag,
                'api_key': api_key,
                'format': 'json',
                'limit': n
            }
            json_data = requests.get(api_url, params=params).json()
            for a in json_data['topartists']['artist']:
                try:
                    value.append({'artist': a['name']})
                except:
                    pass
            cache.save_value(tag, n, value, lastfm='tag')
        except:
            pass
    artists = []
    for a in value:
        artists.append(a)
        if len(artists) == int(common.limit_tag()):
            break
    return artists
Exemple #2
0
def get_artist_genre(artist):
    genre_list = cache.get_value(artist, 'genre', lastfm='tag')
    if genre_list == None:
        genre_list = []
        try:
            params = {
                'method': 'artist.gettoptags',
                'artist': artist,
                'api_key': api_key,
                'format': 'json'
            }
            json_data = requests.get(api_url, params=params).json()
            for tag in json_data['toptags']['tag']:
                genre = tag['name']
                list = [
                    'german', 'deutsch', 'seen live', 'made in germany',
                    'japanese', 'anime', 'vocalists', 'songwriter'
                ]
                if not any(x in genre.lower() for x in list):
                    genre_list.append(genre)
                if len(genre_list) == 5:
                    break
            cache.save_value(artist, 'genre', genre_list, lastfm='tag')
        except:
            pass
    return genre_list
Exemple #3
0
def get_similar_artists(artist):
    n = '100'
    value = cache.get_value(artist, n, lastfm=True)
    if value == None:
        value = []
        try:
            params = {
                'method': 'artist.getsimilar',
                'artist': artist,
                'autocorrect': '1',
                'limit': n,
                'api_key': api_key,
                'format': 'json'
            }
            json_data = requests.get(api_url, params=params).json()
            for item in json_data['similarartists']['artist']:
                value.append(item['name'])
            cache.save_value(artist, n, value, lastfm=True)
        except:
            pass
    similar_artists = []
    for s in value:
        similar_artists.append(s)
        if len(similar_artists) == int(common.limit_artists()):
            break
    return similar_artists
Exemple #4
0
    def get(self):
        status['busy'] += 1
        images = cache.get_value('geotagged_images')
        if not images:
            query = '''SELECT image.id, ihash, lat, lng, altitude, extract(epoch from moment) as moment, filename, size, make, model, orientation, path, width, height, image.description 
            FROM image LEFT OUTER JOIN camera on image.camera_id = camera.id
            WHERE lat != %s and lng != %s'''
            data = (0, 0)
            images = yield database.raw_query(query, data)
            cache.set_value('geotagged_images', images)

        self.render('map.html', images=images)
        status['busy'] -= 1
Exemple #5
0
def videos_thread(site,artist,result):
    start_time = time.time()
    video_list = []
    video_list = cache.get_value(site,artist)
    #video_list = None
    if video_list == None:
        video_list = common.import_site(site).get_videos(artist)
        if not video_list == False:
            cache.save_value(site,artist,video_list)
    result.append(video_list)
    complete_time = time.time() - start_time
    common.log('[mvmixPlayer] site: %s - time: %s' % (site,str(complete_time)))
    return result
Exemple #6
0
def videos_thread(site,artist,result):
    start_time = time.time()
    video_list = []
    video_list = cache.get_value(site,artist)
    #video_list = None
    if video_list == None:
        video_list = common.import_site(site).get_videos(artist)
        if not video_list == False:
            cache.save_value(site,artist,video_list)
    result.append(video_list)
    complete_time = time.time() - start_time
    common.log('[mvmixPlayer] site: %s - time: %s' % (site,str(complete_time)))
    return result
Exemple #7
0
    def get(self, op):
        if op == 'get_stats':
            status['busy'] += 1
            stats = cache.get_value('stats')
            if not stats:
                query = '''SELECT image.id, extract(epoch from moment) as moment, lat, lng, size, make, model, width, height 
                FROM image LEFT OUTER JOIN camera on image.camera_id = camera.id'''
                
                stats = yield database.raw_query(query, ())
                cache.set_value('stats', stats)

            self.finish(json.dumps(stats))
            status['busy'] -= 1

        else:
            self.render('stats.html')
Exemple #8
0
def get_artist_genre(artist):
    genre_list = cache.get_value(artist,'genre',lastfm='tag')
    if genre_list == None:
        genre_list = []
        try:
            params = {'method':'artist.gettoptags', 'artist':artist, 'api_key':api_key, 'format':'json'}
            json_data = requests.get(api_url, params=params).json()
            for tag in json_data['toptags']['tag']:
                genre = tag['name']
                list = ['german','deutsch','seen live','made in germany','japanese','anime','vocalists','songwriter']
                if not any(x in genre.lower() for x in list):
                    genre_list.append(genre)
                if len(genre_list) == 5:
                    break
            cache.save_value(artist,'genre',genre_list,lastfm='tag')
        except:
            pass
    return genre_list
Exemple #9
0
def get_similar_artists(artist):
    n = '100'
    value = cache.get_value(artist,n,lastfm=True)
    if value == None:
        value = []
        try:
            params = {'method':'artist.getsimilar', 'artist':artist, 'autocorrect':'1',
                        'limit':n, 'api_key':api_key, 'format':'json'}
            json_data = requests.get(api_url, params=params).json()
            for item in json_data['similarartists']['artist']:
                value.append(item['name'])
            cache.save_value(artist,n,value,lastfm=True)
        except:
            pass
    similar_artists = []
    for s in value:
        similar_artists.append(s)
        if len(similar_artists) == int(common.limit_artists()):
            break
    return similar_artists
Exemple #10
0
def get_artist_genre(artist):
    genre_list = cache.get_value(artist, 'genre', lastfm='tag')
    if genre_list == None:
        genre_list = []
        try:
            params = {
                'method': 'artist.gettoptags',
                'artist': artist,
                'api_key': api_key,
                'format': 'json'
            }
            json_data = requests.get(api_url, params=params).json()
            for tag in json_data['toptags']['tag']:
                genre_list.append(tag['name'])
                if len(genre_list) == 5:
                    break
            cache.save_value(artist, 'genre', genre_list, lastfm='tag')
        except:
            pass
    return genre_list
Exemple #11
0
def get_artists_by_tag(tag):
    n = '500'
    value = cache.get_value(tag,n,lastfm='tag')
    if value == None:
        value = []
        try:
            params = {'method':'tag.gettopartists', 'tag':tag, 'api_key':api_key,
                        'format':'json', 'limit':n}
            json_data = requests.get(api_url, params=params).json()
            for a in json_data['topartists']['artist']:
                try:
                    value.append({'artist':a['name']})
                except:
                    pass
            cache.save_value(tag,n,value,lastfm='tag')
        except:
            pass
    artists = []
    for a in value:
        artists.append(a)
        if len(artists) == int(common.limit_tag()):
            break
    return artists
    # Parse the query
    query = " ".join(sys.argv[1:]).strip()
    if len(query) < 3:
        sys.stdout.write(json.dumps(dict(items=[])))
        sys.exit(0)

    try:
        query_string = parse_query_string(query)
    except Exception:
        return_error("Invalid search string", "https://ui.adsabs.harvard.edu")
    if query == query_string:
        return_error("Invalid search string",
                     "https://ui.adsabs.harvard.edu/search/q=" + query)

    # Check the cache
    cached = cache.get_value(query_string)
    if cached is not None:
        sys.stdout.write(cached)
        sys.exit(0)

    # Fail if we're over the rate limit
    ratelimit = get_ratelimit()
    if ratelimit is not None:
        current = calendar.timegm(datetime.utcnow().timetuple())
        delta = current - int(ratelimit.get("reset", 0))
        if ratelimit.get("remaining", "1") == "0" and delta < 0:
            return_error("Your ADS rate limit has been reached",
                         "https://github.com/andycasey/ads")

    # Perform the search
    sort = "citation_count+desc"
Exemple #13
0
def check_if_token_is_revoked(decrypted_token):
    jti = decrypted_token['jti']
    entry = get_value(jti)
    if entry is None:
        return True
    return entry == 'true'