def main(): rewrite = "--rewrite" in sys.argv drop = dropbox.Dropbox() new_artists = set() for au_file in drop.tracks(): try: tpe1 = au_file.mutagen_id3["TPE1"].text[0] except: print "** file: %r" % au_file.path raise if artists.standardize(tpe1) is None: new_artists.add(tpe1) to_print = list(new_artists) if rewrite: to_print.extend(artists.all()) to_print.sort(key=artists.sort_key) output = None if rewrite: output = codecs.open(artists._WHITELIST_FILE, "w", "utf-8") for tpe1 in to_print: if output: output.write(tpe1) output.write("\n") else: print tpe1.encode("utf-8") if rewrite: print "Artist whitelist updated"
def main(): rewrite = ("--rewrite" in sys.argv) drop = dropbox.Dropbox() new_artists = set() for au_file in drop.tracks(): try: tpe1 = au_file.mutagen_id3["TPE1"].text[0] except: print '** file: %r' % au_file.path raise if artists.standardize(tpe1) is None: new_artists.add(tpe1) to_print = list(new_artists) if rewrite: to_print.extend(artists.all()) to_print.sort(key=artists.sort_key) output = None if rewrite: output = codecs.open(artists._WHITELIST_FILE, "w", "utf-8") for tpe1 in to_print: if output: output.write(tpe1) output.write("\n") else: print tpe1.encode("utf-8") if rewrite: print "Artist whitelist updated"
def main_generator(rewrite): drop = dropbox.Dropbox() new_artists = set() for au_file in drop.tracks(): try: tpe1 = au_file.mutagen_id3["TPE1"].text[0] except: cprint('** file: %r' % au_file.path) raise if artists.standardize(tpe1) is None: new_artists.add(tpe1) to_print = list(new_artists) if rewrite: to_print.extend(artists.all()) to_print.sort(key=artists.sort_key) output = None if rewrite: output = codecs.open(artists._WHITELIST_FILE, "w", "utf-8") for tpe1 in to_print: if output: output.write(tpe1) output.write("\n") else: cprint(tpe1.encode("utf-8")) yield if rewrite: cprint('Artist whitelist updated', type='highlight') else: cprint('Found %d new artists' % len(to_print), type='success')
def main_generator(rewrite): drop = dropbox.Dropbox() new_artists = set() for au_file in drop.tracks(): try: tpe1 = au_file.mutagen_id3["TPE1"].text[0] except: cprint(u'** file: %r' % au_file.path) raise if artists.standardize(tpe1) is None: new_artists.add(tpe1) to_print = list(new_artists) if rewrite: to_print.extend(artists.all()) to_print.sort(key=artists.sort_key) output = None if rewrite: output = codecs.open(artists._WHITELIST_FILE, "w", "utf-8") for tpe1 in to_print: if output: output.write(tpe1) output.write("\n") else: cprint(tpe1) yield if rewrite: cprint('Artist whitelist updated', type='success') else: cprint('Found %d new artists' % len(to_print), type='success')
def do_push_artists(self): # patch credentials if not request.headers.get('Authorization'): abort(401) else: auth = request.headers['Authorization'].lstrip('Basic ') username, password = base64.b64decode(auth).split(':') if username and password: conf.CHIRPRADIO_AUTH = '%s %s' % (username, password) chirpradio.connect() else: abort(401) dry_run = False # reload artists from file artists._init() # Find all of the library artists all_library_artists = set(artists.all()) # Find all of the artists in the cloud. all_chirpradio_artists = set() mapped = 0 t1 = time.time() for art in models.Artist.fetch_all(): if art.revoked: continue std_name = artists.standardize(art.name) if std_name != art.name: #print "Mapping %d: %s => %s" % (mapped, art.name, std_name) mapped += 1 art.name = std_name idx = search.Indexer() idx._transaction = art.parent_key() idx.add_artist(art) if not dry_run: idx.save() all_chirpradio_artists.add(art.name) to_push = list(all_library_artists.difference(all_chirpradio_artists)) Messages.add_message("Pushing %d artists" % len(to_push), 'warning') while to_push: # Push the artists in batches of 50 this_push = to_push[:50] to_push = to_push[50:] idx = search.Indexer() for name in this_push: #print name art = models.Artist.create(parent=idx.transaction, name=name) idx.add_artist(art) if not dry_run: idx.save() #print "+++++ Indexer saved" Messages.add_message("Artist push complete. OK!", 'success')
def main_generator(): chirpradio.connect() dry_run = False # Find all of the library artists all_library_artists = set(artists.all()) # Find all of the artists in the cloud. all_chirpradio_artists = set() mapped = 0 t1 = time.time() for art in models.Artist.fetch_all(): if art.revoked: continue std_name = artists.standardize(art.name) if std_name != art.name: cprint(u"Mapping {}: {} => {}".format(mapped, art.name, std_name)) mapped += 1 art.name = std_name idx = search.Indexer() idx._transaction = art.parent_key() idx.add_artist(art) if not dry_run: idx.save() all_chirpradio_artists.add(art.name) yield to_push = list(all_library_artists.difference(all_chirpradio_artists)) cprint("Pushing %d artists" % len(to_push)) while to_push: # Push the artists in batches of 50 this_push = to_push[:50] to_push = to_push[50:] idx = search.Indexer() for name in this_push: cprint(name) art = models.Artist.create(parent=idx.transaction, name=name) idx.add_artist(art) if not dry_run: idx.save() cprint("+++++ Indexer saved") yield
def add_artists(self): error = False drop = dropbox.Dropbox() new_artists = set() for au_file in drop.tracks(): try: tpe1 = au_file.mutagen_id3["TPE1"].text[0] except: Messages.add_messaage('** file: %r' % au_file.path, 'error') error = True # TODO propagate error to client raise if artists.standardize(tpe1) is None: new_artists.add(tpe1) # do not write if errors if not error and new_artists: to_print = list(new_artists) to_print.extend(artists.all()) to_print.sort(key=artists.sort_key) output = codecs.open(artists._WHITELIST_FILE, "w", "utf-8") for tpe1 in to_print: output.write(tpe1) output.write("\n") output.close() # reload whitelist from file artists._init() message = "Artist whitelist updated.<br>New artists added:<br>" message += "<br>".join(list(new_artists)) Messages.add_message(message, 'success') # push to github self.push_to_github()
def get(self): whitelist = artists.all() whitelist.sort(key=artists.sort_key) return whitelist