Compare commits
	
		
			4 Commits
		
	
	
		
			fix/musify
			...
			949583225a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 949583225a | |||
| 4e0b005170 | |||
| e3e7aea959 | |||
| 709c5ebaa8 | 
| @@ -1,5 +1,5 @@ | ||||
| import mutagen | ||||
| from mutagen.id3 import ID3, Frame, APIC | ||||
| from mutagen.id3 import ID3, Frame, APIC, USLT | ||||
| from pathlib import Path | ||||
| from typing import List | ||||
| import logging | ||||
| @@ -7,6 +7,7 @@ from PIL import Image | ||||
|  | ||||
| from ..utils.config import logging_settings, main_settings | ||||
| from ..objects import Song, Target, Metadata | ||||
| from ..objects.metadata import Mapping | ||||
| from ..connection import Connection | ||||
|  | ||||
| LOGGER = logging_settings["tagging_logger"] | ||||
| @@ -105,6 +106,11 @@ def write_metadata_to_target(metadata: Metadata, target: Target, song: Song): | ||||
|                 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) | ||||
|  | ||||
|   | ||||
| @@ -32,7 +32,7 @@ class FormattedText: | ||||
|         if self.is_empty and other.is_empty: | ||||
|             return True | ||||
|  | ||||
|         return self.doc == other.doc | ||||
|         return self.html == other.html | ||||
|  | ||||
|     @property | ||||
|     def markdown(self) -> str: | ||||
|   | ||||
| @@ -92,7 +92,7 @@ class Mapping(Enum): | ||||
|         key = attribute.value | ||||
|  | ||||
|         if key[0] == 'T': | ||||
|             # a text fiel | ||||
|             # a text field | ||||
|             return cls.get_text_instance(key, value) | ||||
|         if key[0] == "W": | ||||
|             # an url field | ||||
| @@ -355,7 +355,12 @@ class Metadata: | ||||
|             return None | ||||
|  | ||||
|         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 | ||||
|         for i, element in enumerate(list_data): | ||||
|             # for performance’s sake I don't do other checks if it is already the right type | ||||
| @@ -368,7 +373,7 @@ class Metadata: | ||||
|             if type(element) == ID3Timestamp: | ||||
|                 list_data[i] = element.timestamp | ||||
|                 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.  | ||||
|         Thus if above conditions are met, I concatenate the list, | ||||
| @@ -376,7 +381,7 @@ class Metadata: | ||||
|         """ | ||||
|         if field.value[0].upper() == "T" and field.value.upper() != "TXXX": | ||||
|             return self.NULL_BYTE.join(list_data) | ||||
|  | ||||
|          | ||||
|         return list_data[0] | ||||
|  | ||||
|     def get_mutagen_object(self, field): | ||||
| @@ -395,6 +400,5 @@ class Metadata: | ||||
|         """ | ||||
|         # set the tagging timestamp to the current time | ||||
|         self.__setitem__(Mapping.TAGGING_TIME, [ID3Timestamp.now()]) | ||||
|  | ||||
|         for field in self.id3_dict: | ||||
|             yield self.get_mutagen_object(field) | ||||
|   | ||||
| @@ -69,7 +69,7 @@ dependencies = [ | ||||
|     "toml~=0.10.2", | ||||
|     "typing_extensions~=4.7.1", | ||||
|  | ||||
|     "python-sponsorblock~=0.0.0", | ||||
|     "python-sponsorblock~=0.1.dev1", | ||||
|     "youtube_dl", | ||||
| ] | ||||
| dynamic = [ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user