def generate(self, inFileName, outFileName): snapshot = pyTagger.Mp3Snapshot(False) columns = pyTagger.mp3_snapshot.Formatter.basic columns.append('version') tracks = { k: {c: v[c] for c in columns if c in v} for k, v in snapshot.load(inFileName).items() if self.hasMissing(k, v) } ordered = collections.OrderedDict(sorted(tracks.items())) snapshot.save(outFileName, ordered)
def run(self, tracks): snapshot = pyTagger.Mp3Snapshot(True) updates = snapshot.load(self.manualFileName) for k, v in updates.items(): if k and k not in tracks: print('update', k, 'not found in track list', file=sys.stderr) else: track = tracks[k] track.update(v) reverts = snapshot.load(self.revertFileName) for k, v in reverts.items(): if k and k not in tracks: print('revert', k, 'not found in track list', file=sys.stderr) else: track = tracks[k] track.update(v)
def run(self, tracks): groups = {} # build the groups from the duplcate ids for k,v in tracks.items(): id = v['groupID'] if id not in groups: groups[id] = TrackGroupForUpdate(self.updater, self.columns) groups[id].add(k,v) # process the groups output = {} for g in groups.values(): g.addUpdates(output) # write it out writer = pyTagger.Mp3Snapshot(False) writer.save(self.outfile, output)
na = self.albums[a] if a in self.albums else a # a pretty common name, append the artist if na in self.commonAlbumNames: na = na + '-' + self.getArtist(x) if a not in self.albums: print('getAlbum', a.encode(), 'Not Found', file=sys.stderr) return na #------------------------------------------------------------------------------- # Main #------------------------------------------------------------------------------- if __name__ == '__main__': inFile = r'..\data\mp3s.json' outFile = r'..\data\mp3s_enh.json' argc = len(sys.argv) if argc > 1: inFile = sys.argv[1] if argc > 2: outFile = sys.argv[2] pipeline = AddNameHash() # Load the scanned list of tracks & enrich snapshot = pyTagger.Mp3Snapshot(True) tracks = snapshot.load(inFile) pipeline.run(tracks) snapshot.save(outFile, tracks)
def __init__(self): self.artists = set() self.albums = set() self.snapshot = pyTagger.Mp3Snapshot() self.translateTable = self.buildTranslateTable() self.replaceTable = self.buildReplaceTable()