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)
Beispiel #5
0
 def __init__(self):
     self.artists = set()
     self.albums = set()
     self.snapshot = pyTagger.Mp3Snapshot()
     self.translateTable = self.buildTranslateTable()
     self.replaceTable = self.buildReplaceTable()