|
@@ -21,23 +21,6 @@ def generate_uuid():
|
|
|
return subprocess.check_output(['uuid', '-v', '4', '-F', 'BIN']).strip()
|
|
|
|
|
|
|
|
|
-def get_or_assign_uuid_id3(track):
|
|
|
- uuid = track._iface.get_uuid()
|
|
|
- if uuid is None:
|
|
|
- id3_tags = track._iface._mutagen_file.tags
|
|
|
- # mutagen.id3._specs.EncodedTextSpec.write encodes 'owner'
|
|
|
- id3_tags.add(mutagen.id3.UFID(
|
|
|
- owner=track._iface._UFID_OWNER_ID,
|
|
|
- data=generate_uuid(),
|
|
|
- ))
|
|
|
- id3_tags.save()
|
|
|
- id3_tags.load(filename=id3_tags.filename)
|
|
|
- uuid = track._iface.get_uuid()
|
|
|
- print("{!r}: assigned uuid {!r}".format(id3_tags.filename, uuid))
|
|
|
- assert uuid is not None
|
|
|
- return uuid
|
|
|
-
|
|
|
-
|
|
|
def get_or_assign_uuid_mp4(mp4_file):
|
|
|
if not TRACK_UUID_MP4_TAG in mp4_file:
|
|
|
mp4_file[TRACK_UUID_MP4_TAG] = mutagen.mp4.MP4FreeForm(
|
|
@@ -70,10 +53,10 @@ def symuid_sync(path, path_ignore_regex, show_ignored=False):
|
|
|
):
|
|
|
if isinstance(track._iface, symuid.tag_interface.MP4):
|
|
|
get_or_assign_uuid_mp4(track._iface._mutagen_file)
|
|
|
- elif isinstance(track._iface, symuid.tag_interface.ID3):
|
|
|
- get_or_assign_uuid_id3(track)
|
|
|
- else:
|
|
|
- raise Exception(track)
|
|
|
+ elif track._iface.get_uuid() is None:
|
|
|
+ track._iface.set_uuid(generate_uuid())
|
|
|
+ track._iface.save()
|
|
|
+ log_path(track.path, 'assigned uuid {!r}'.format(track._iface.get_uuid()))
|
|
|
|
|
|
|
|
|
def _init_argparser():
|