def saveTracks(self, tracks): for old, new in tracks: old, new = audioinfo.stringtags(old), audioinfo.stringtags(new) artist = new['artist'] album = new['album'] if old['artist'] != artist: if artist in self.albums: if album in self.albums[artist]: index = self.albums[artist][album] self.tracks[index].append(new) else: self.albums[artist][album] = len(self.tracks) self.tracks.append([new]) else: self.albums[artist] = {album: len(self.tracks)} self.tracks.append([new]) elif album != old['album']: if album in self.albums[artist]: self.albums[artist][album].append(new) else: self.albums[artist][album] = len(self.tracks) self.tracks.append([new]) else: self.tracks[self.albums[artist][album]].append(new) self.delTracks([old])
def updateSearch(self, term, tracks): tags = ["artist", "title", FILENAME, "__path", "album", "genre", "comment", "composer", "year"] term = term.lower() tracks = [] for audio in files: temp = audioinfo.stringtags(audio) for tag in tags: if term in temp[tag].lower(): tracks.append(audio) break return tracks
def updateSearch(self, term, files): tags = ['artist', 'title', FILENAME, '__path', 'album', 'genre', 'comment' , '___notes', 'year'] term = term.lower() tracks = [] for audio in files: temp = audioinfo.stringtags(audio) for tag in tags: if term in temp[tag].lower(): tracks.append(audio) break return tracks
def delTracks(self, tracks): prevartist = None prevalbum = None for track in tracks: track = audioinfo.stringtags(track) artist = track['artist'] album = track['album'] if artist != prevartist or album != prevalbum: dbtracks = self.tracks[self.albums[artist][album]] filenames = [z[FILENAME] for z in dbtracks] del (dbtracks[filenames.index(track[FILENAME])]) filenames.remove(track[FILENAME]) if not dbtracks: del (self.albums[artist][album]) if not self.albums[artist]: del (self.albums[artist])
def delTracks(self, tracks): prevartist = None prevalbum = None for track in tracks: track = audioinfo.stringtags(track) artist = track['artist'] album = track['album'] if artist != prevartist or album != prevalbum: dbtracks = self.tracks[self.albums[artist][album]] filenames = [z[FILENAME] for z in dbtracks] del(dbtracks[filenames.index(track[FILENAME])]) filenames.remove(track[FILENAME]) if not dbtracks: del(self.albums[artist][album]) if not self.albums[artist]: del(self.albums[artist])
def convert_for_submit(tags): cipher = { 'mbrainz_track_id': 'mbid', 'title': 'track', 'track': 'trackno', 'discnumber': 'discno', '__bitrate': 'bitrate', 'musicip_puid': 'puid', } valid_keys = set(['artist', 'album', 'title', 'track', 'discno', 'mbid', 'year', 'bitrate', 'puid', 'trackno']) ret = dict((cipher.get(k, k) , v) for k,v in stringtags(tags).iteritems() if cipher.get(k, k) in valid_keys and v) bitrate = ret['bitrate'].split(u' ')[0] if bitrate == 0: del(ret['bitrate']) else: ret['bitrate'] = unicode(bitrate) return ret
def convert_for_submit(tags): cipher = { 'mbrainz_track_id': 'mbid', 'title': 'track', 'track': 'trackno', 'discnumber': 'discno', '__bitrate': 'bitrate', 'musicip_puid': 'puid', } valid_keys = set([ 'artist', 'album', 'title', 'track', 'discno', 'mbid', 'year', 'bitrate', 'puid', 'trackno' ]) ret = dict((cipher.get(k, k), v) for k, v in stringtags(tags).iteritems() if cipher.get(k, k) in valid_keys and v) bitrate = ret['bitrate'].split(u' ')[0] if bitrate == 0: del (ret['bitrate']) else: ret['bitrate'] = unicode(bitrate) return ret