Compare commits

..

No commits in common. "949583225a3e0ee41875fa0ed3d323e0e02191ce" and "e3d7ed883767f55980da4577e08a61e9f30d3283" have entirely different histories.

4 changed files with 8 additions and 18 deletions

View File

@ -1,5 +1,5 @@
import mutagen import mutagen
from mutagen.id3 import ID3, Frame, APIC, USLT from mutagen.id3 import ID3, Frame, APIC
from pathlib import Path from pathlib import Path
from typing import List from typing import List
import logging import logging
@ -7,7 +7,6 @@ from PIL import Image
from ..utils.config import logging_settings, main_settings from ..utils.config import logging_settings, main_settings
from ..objects import Song, Target, Metadata from ..objects import Song, Target, Metadata
from ..objects.metadata import Mapping
from ..connection import Connection from ..connection import Connection
LOGGER = logging_settings["tagging_logger"] LOGGER = logging_settings["tagging_logger"]
@ -106,11 +105,6 @@ def write_metadata_to_target(metadata: Metadata, target: Target, song: Song):
data=converted_target.read_bytes(), data=converted_target.read_bytes(),
) )
) )
id3_object.frames.delall("USLT")
uslt_val = metadata.get_id3_value(Mapping.UNSYNCED_LYRICS)
id3_object.frames.add(
USLT(encoding=3, lang=u'eng', desc=u'desc', text=uslt_val)
)
mutagen_file = mutagen.File(target.file_path) mutagen_file = mutagen.File(target.file_path)

View File

@ -32,7 +32,7 @@ class FormattedText:
if self.is_empty and other.is_empty: if self.is_empty and other.is_empty:
return True return True
return self.html == other.html return self.doc == other.doc
@property @property
def markdown(self) -> str: def markdown(self) -> str:

View File

@ -92,7 +92,7 @@ class Mapping(Enum):
key = attribute.value key = attribute.value
if key[0] == 'T': if key[0] == 'T':
# a text field # a text fiel
return cls.get_text_instance(key, value) return cls.get_text_instance(key, value)
if key[0] == "W": if key[0] == "W":
# an url field # an url field
@ -355,12 +355,7 @@ class Metadata:
return None return None
list_data = self.id3_dict[field] list_data = self.id3_dict[field]
#correct duplications
correct_list_data = list()
for data in list_data:
if data not in correct_list_data:
correct_list_data.append(data)
list_data = correct_list_data
# convert for example the time objects to timestamps # convert for example the time objects to timestamps
for i, element in enumerate(list_data): for i, element in enumerate(list_data):
# for performances sake I don't do other checks if it is already the right type # for performances sake I don't do other checks if it is already the right type
@ -373,7 +368,7 @@ class Metadata:
if type(element) == ID3Timestamp: if type(element) == ID3Timestamp:
list_data[i] = element.timestamp list_data[i] = element.timestamp
continue continue
""" """
Version 2.4 of the specification prescribes that all text fields (the fields that start with a T, except for TXXX) can contain multiple values separated by a null character. Version 2.4 of the specification prescribes that all text fields (the fields that start with a T, except for TXXX) can contain multiple values separated by a null character.
Thus if above conditions are met, I concatenate the list, Thus if above conditions are met, I concatenate the list,
@ -381,7 +376,7 @@ class Metadata:
""" """
if field.value[0].upper() == "T" and field.value.upper() != "TXXX": if field.value[0].upper() == "T" and field.value.upper() != "TXXX":
return self.NULL_BYTE.join(list_data) return self.NULL_BYTE.join(list_data)
return list_data[0] return list_data[0]
def get_mutagen_object(self, field): def get_mutagen_object(self, field):
@ -400,5 +395,6 @@ class Metadata:
""" """
# set the tagging timestamp to the current time # set the tagging timestamp to the current time
self.__setitem__(Mapping.TAGGING_TIME, [ID3Timestamp.now()]) self.__setitem__(Mapping.TAGGING_TIME, [ID3Timestamp.now()])
for field in self.id3_dict: for field in self.id3_dict:
yield self.get_mutagen_object(field) yield self.get_mutagen_object(field)

View File

@ -69,7 +69,7 @@ dependencies = [
"toml~=0.10.2", "toml~=0.10.2",
"typing_extensions~=4.7.1", "typing_extensions~=4.7.1",
"python-sponsorblock~=0.1.dev1", "python-sponsorblock~=0.0.0",
"youtube_dl", "youtube_dl",
] ]
dynamic = [ dynamic = [