Exemple #1
0
def update_artists(count=queries_per_run):
    refresh_date = datetime.date.today() - datetime.timedelta(artist_refresh_days)
    artists = Artist.select(
        AND(Artist.q.approved != None, OR(Artist.q.batch_updated == None, Artist.q.batch_updated < refresh_date))
    )
    count = min(artists.count(), count)

    email_txt = ""
    for artist in artists[:count]:
        try:
            lastfm_artist_update(artist)
            mbz_artist_update(artist)
            recording_artist_update(artist)
            artist.batch_updated = datetime.datetime.now()
        except:
            import traceback

            email_txt += "artist error: '%s'\n" % artist.name
            email_txt += traceback.format_exc()
        time.sleep(1)

    if email_txt:
        util.email("*****@*****.**", "BandRadar <*****@*****.**>", "artist errors", email_txt)

    return count
Exemple #2
0
def _foo():
    """test, do not use"""
    amazon_src = Source.byName("amazon")
    done_artists = Artist.select(Artist.q.recordings_updated != None)
    for artist in done_artists:
        for record in artist.recordings:
            if record.source == amazon_src:
                record.destroySelf()
        for recording in amazon.recordings(artist.name):
            Recording(
                name=recording["name"], by=artist, url=recording["url"], img_url=recording["img_url"], source=amazon_src
            )
Exemple #3
0
def search_artist(term):
    query = Artist.select().where((fn.LOWER(Artist.artist_name).contains(term.lower())))

    return list(query)
Exemple #4
0
def artist_count():
    return Artist.select().count()