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
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
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
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
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
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')
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
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
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
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"
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'