diff --git a/src/ytdl_sub/plugins/video_tags.py b/src/ytdl_sub/plugins/video_tags.py index 16b7d949..00c5d460 100644 --- a/src/ytdl_sub/plugins/video_tags.py +++ b/src/ytdl_sub/plugins/video_tags.py @@ -34,7 +34,7 @@ class VideoTagsPlugin(Plugin[VideoTagsOptions]): Tags the entry's audio file using values defined in the metadata options """ tags_to_write: Dict[str, str] = {} - for tag_name, tag_formatter in self.plugin_options.dict.items(): + for tag_name, tag_formatter in sorted(self.plugin_options.dict.items()): tag_value = self.overrides.apply_formatter(formatter=tag_formatter, entry=entry) tags_to_write[tag_name] = tag_value diff --git a/src/ytdl_sub/validators/string_formatter_validators.py b/src/ytdl_sub/validators/string_formatter_validators.py index f3724dca..bf7385d8 100644 --- a/src/ytdl_sub/validators/string_formatter_validators.py +++ b/src/ytdl_sub/validators/string_formatter_validators.py @@ -183,12 +183,13 @@ class DictFormatterValidator(LiteralDictValidator): super().__init__(name, value) for key in self._keys: - self._value[key] = self._validate_key(key=key, validator=self._key_validator) + # Gets stored in __validator_dict + _ = self._validate_key(key=key, validator=self._key_validator) @property def dict(self) -> Dict[str, StringFormatterValidator]: """Returns dict with string formatter values""" - return self._value + return self._validator_dict @property def dict_with_format_strings(self) -> Dict[str, str]: diff --git a/tests/resources/expected_downloads_summaries/plugins/file_convert/custom_ffmpeg_args.json b/tests/resources/expected_downloads_summaries/plugins/file_convert/custom_ffmpeg_args.json index 642ea323..13bbe1fa 100644 --- a/tests/resources/expected_downloads_summaries/plugins/file_convert/custom_ffmpeg_args.json +++ b/tests/resources/expected_downloads_summaries/plugins/file_convert/custom_ffmpeg_args.json @@ -2,18 +2,18 @@ ".ytdl-sub-subscription_test-download-archive.json": "19cf39d57914ba9cbd1e57ba6f1e0683", "JMC/Mock Entry 20-1.info.json": "INFO_JSON", "JMC/Mock Entry 20-1.jpg": "e80c508c4818454300133fe1dc1a9cd7", - "JMC/Mock Entry 20-1.mkv": "eb9a8ff61701ab673c2f06147fe29a4e", + "JMC/Mock Entry 20-1.mkv": "cbc8c05ea5cf4deefd735b93af9c0259", "JMC/Mock Entry 20-1.nfo": "fefcf0b3e4f4ff80ad636584d50dadec", "JMC/Mock Entry 20-2.info.json": "INFO_JSON", "JMC/Mock Entry 20-2.jpg": "e80c508c4818454300133fe1dc1a9cd7", - "JMC/Mock Entry 20-2.mkv": "65d047562c61a068e8a92bd8df8801fa", + "JMC/Mock Entry 20-2.mkv": "85cc274346abc0c71ab7702b0d61abde", "JMC/Mock Entry 20-2.nfo": "025c0b631da5ff5470382b38fce78d2d", "JMC/Mock Entry 20-3.info.json": "INFO_JSON", "JMC/Mock Entry 20-3.jpg": "e80c508c4818454300133fe1dc1a9cd7", - "JMC/Mock Entry 20-3.mkv": "98582526fcb3bea10ab7b3df7a5bc65d", + "JMC/Mock Entry 20-3.mkv": "c5a9ce268475c3b8fa9d4d0e3c0c25ae", "JMC/Mock Entry 20-3.nfo": "618b0ff948d9de2e10cf1da8c0dd6615", "JMC/Mock Entry 21-1.info.json": "INFO_JSON", "JMC/Mock Entry 21-1.jpg": "e80c508c4818454300133fe1dc1a9cd7", - "JMC/Mock Entry 21-1.mkv": "3fe368f6d4bd9662a24abca9215b4d26", + "JMC/Mock Entry 21-1.mkv": "ebdd8026e72625c56dd2aa8a2e19e814", "JMC/Mock Entry 21-1.nfo": "e5c715749efc1603a6e2f59244d87aba" } \ No newline at end of file diff --git a/tests/resources/expected_json/music_video/inspect_full_overrides.json b/tests/resources/expected_json/music_video/inspect_full_overrides.json index 0ad15d9a..7325202e 100644 --- a/tests/resources/expected_json/music_video/inspect_full_overrides.json +++ b/tests/resources/expected_json/music_video/inspect_full_overrides.json @@ -10,7 +10,7 @@ "file_uid": "{ %sanitize_plex_episode( %map_get( entry_metadata, \"id\" ) ) }", "include_sibling_metadata": "{ %bool(False) }", "modified_webpage_url": "{ %map_get( entry_metadata, \"webpage_url\" ) }", - "music_video_album": "{ %get_url_field( \"category\", music_video_album_default ) }", + "music_video_album": "Music Videos", "music_video_album_default": "Music Videos", "music_video_artist": "Rick Astley", "music_video_date": "{ %elif( %contains_url_field( \"date\" ), %get_url_field( \"date\", upload_date_standardized ), %contains_url_field( \"year\" ), %concat( %get_url_field( \"date\", upload_year ), \"-01-01\" ), upload_date_standardized ) }", diff --git a/tests/resources/expected_json/music_video/inspect_full_variables.json b/tests/resources/expected_json/music_video/inspect_full_variables.json index fa8b5c85..34dc4392 100644 --- a/tests/resources/expected_json/music_video/inspect_full_variables.json +++ b/tests/resources/expected_json/music_video/inspect_full_variables.json @@ -59,10 +59,10 @@ "info_json_ext_sanitized": "info.json", "modified_webpage_url": "{ %map_get( entry_metadata, \"webpage_url\" ) }", "modified_webpage_url_sanitized": "{ %sanitize( %map_get( entry_metadata, \"webpage_url\" ) ) }", - "music_video_album": "{ %get_url_field( \"category\", music_video_album_default ) }", + "music_video_album": "Music Videos", "music_video_album_default": "Music Videos", "music_video_album_default_sanitized": "Music Videos", - "music_video_album_sanitized": "{ %sanitize( %get_url_field( \"category\", music_video_album_default ) ) }", + "music_video_album_sanitized": "Music Videos", "music_video_artist": "Rick Astley", "music_video_artist_sanitized": "Rick Astley", "music_video_date": "{ %elif( %contains_url_field( \"date\" ), %get_url_field( \"date\", upload_date_standardized ), %contains_url_field( \"year\" ), %concat( %get_url_field( \"date\", upload_year ), \"-01-01\" ), upload_date_standardized ) }", diff --git a/tests/resources/expected_json/music_video/inspect_overrides.json b/tests/resources/expected_json/music_video/inspect_overrides.json index a0b3c3a1..41e0f19d 100644 --- a/tests/resources/expected_json/music_video/inspect_overrides.json +++ b/tests/resources/expected_json/music_video/inspect_overrides.json @@ -10,7 +10,7 @@ "file_uid": "{ uid_sanitized_plex }", "include_sibling_metadata": "{ %bool(False) }", "modified_webpage_url": "{ webpage_url }", - "music_video_album": "{ %get_url_field( \"category\", music_video_album_default ) }", + "music_video_album": "{ %get_url_field( \"category\", \"Music Videos\" ) }", "music_video_album_default": "Music Videos", "music_video_artist": "Rick Astley", "music_video_date": "{ %elif( %contains_url_field( \"date\" ), %get_url_field( \"date\", upload_date_standardized ), %contains_url_field( \"year\" ), %concat( %get_url_field( \"date\", upload_year ), \"-01-01\" ), upload_date_standardized ) }", diff --git a/tests/resources/expected_json/music_video/inspect_variables.json b/tests/resources/expected_json/music_video/inspect_variables.json index 318f2685..41606b71 100644 --- a/tests/resources/expected_json/music_video/inspect_variables.json +++ b/tests/resources/expected_json/music_video/inspect_variables.json @@ -59,10 +59,10 @@ "info_json_ext_sanitized": "info.json", "modified_webpage_url": "{ webpage_url }", "modified_webpage_url_sanitized": "{ %sanitize( webpage_url ) }", - "music_video_album": "{ %get_url_field( \"category\", music_video_album_default ) }", + "music_video_album": "{ %get_url_field( \"category\", \"Music Videos\" ) }", "music_video_album_default": "Music Videos", "music_video_album_default_sanitized": "Music Videos", - "music_video_album_sanitized": "{ %sanitize( %get_url_field( \"category\", music_video_album_default ) ) }", + "music_video_album_sanitized": "{ %sanitize( %get_url_field( \"category\", \"Music Videos\" ) ) }", "music_video_artist": "Rick Astley", "music_video_artist_sanitized": "Rick Astley", "music_video_date": "{ %elif( %contains_url_field( \"date\" ), %get_url_field( \"date\", upload_date_standardized ), %contains_url_field( \"year\" ), %concat( %get_url_field( \"date\", upload_year ), \"-01-01\" ), upload_date_standardized ) }",