diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f5bbab571..e5cd6c7984 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## Unreleased #### New Features +- Added multi-episode naming style with lowercase `e` ([#6910](https://github.com/pymedusa/Medusa/pull/6910)) #### Improvements - Converted the footer to a Vue component ([#4520](https://github.com/pymedusa/Medusa/pull/4520)) diff --git a/medusa/common.py b/medusa/common.py index d066a2df0d..b9b82a2ef4 100644 --- a/medusa/common.py +++ b/medusa/common.py @@ -105,7 +105,8 @@ NAMING_DUPLICATE = 4 NAMING_LIMITED_EXTEND = 8 NAMING_SEPARATED_REPEAT = 16 -NAMING_LIMITED_EXTEND_E_PREFIXED = 32 +NAMING_LIMITED_EXTEND_E_UPPER_PREFIXED = 32 +NAMING_LIMITED_EXTEND_E_LOWER_PREFIXED = 64 MULTI_EP_STRINGS = { NAMING_REPEAT: 'Repeat', @@ -113,7 +114,8 @@ NAMING_DUPLICATE: 'Duplicate', NAMING_EXTEND: 'Extend', NAMING_LIMITED_EXTEND: 'Extend (Limited)', - NAMING_LIMITED_EXTEND_E_PREFIXED: 'Extend (Limited, E-prefixed)' + NAMING_LIMITED_EXTEND_E_UPPER_PREFIXED: 'Extend (Limited, E-prefixed)', + NAMING_LIMITED_EXTEND_E_LOWER_PREFIXED: 'Extend (Limited, e-prefixed)' } diff --git a/medusa/tv/episode.py b/medusa/tv/episode.py index 829bb21b82..74f16b424f 100644 --- a/medusa/tv/episode.py +++ b/medusa/tv/episode.py @@ -30,7 +30,8 @@ NAMING_DUPLICATE, NAMING_EXTEND, NAMING_LIMITED_EXTEND, - NAMING_LIMITED_EXTEND_E_PREFIXED, + NAMING_LIMITED_EXTEND_E_LOWER_PREFIXED, + NAMING_LIMITED_EXTEND_E_UPPER_PREFIXED, NAMING_SEPARATED_REPEAT, Quality, SKIPPED, @@ -1667,7 +1668,7 @@ def _format_pattern(self, pattern=None, multi=None, anime_type=None): sep = ' ' # force 2-3-4 format if they chose to extend - if multi in (NAMING_EXTEND, NAMING_LIMITED_EXTEND, NAMING_LIMITED_EXTEND_E_PREFIXED): + if multi in (NAMING_EXTEND, NAMING_LIMITED_EXTEND, NAMING_LIMITED_EXTEND_E_UPPER_PREFIXED, NAMING_LIMITED_EXTEND_E_LOWER_PREFIXED): ep_sep = '-' regex_used = season_ep_regex @@ -1692,7 +1693,7 @@ def _format_pattern(self, pattern=None, multi=None, anime_type=None): for other_ep in self.related_episodes: # for limited extend we only append the last ep - if multi in (NAMING_LIMITED_EXTEND, NAMING_LIMITED_EXTEND_E_PREFIXED) and \ + if multi in (NAMING_LIMITED_EXTEND, NAMING_LIMITED_EXTEND_E_UPPER_PREFIXED, NAMING_LIMITED_EXTEND_E_LOWER_PREFIXED) and \ other_ep != self.related_episodes[-1]: continue @@ -1706,9 +1707,12 @@ def _format_pattern(self, pattern=None, multi=None, anime_type=None): # add "E04" ep_string += ep_sep - if multi == NAMING_LIMITED_EXTEND_E_PREFIXED: + if multi == NAMING_LIMITED_EXTEND_E_UPPER_PREFIXED: ep_string += 'E' + elif multi == NAMING_LIMITED_EXTEND_E_LOWER_PREFIXED: + ep_string += 'e' + ep_string += other_ep.__format_string(ep_format.upper(), other_ep.__replace_map()) if anime_type != 3: diff --git a/themes-default/slim/test/__fixtures__/common.json b/themes-default/slim/test/__fixtures__/common.json index 15514e8a39..e1f28d41e3 100644 --- a/themes-default/slim/test/__fixtures__/common.json +++ b/themes-default/slim/test/__fixtures__/common.json @@ -76,12 +76,13 @@ "createMissingShowDirs": true, "nfoRename": true, "multiEpStrings": { - "32": "Extend (Limited, E-prefixed)", "1": "Repeat", "2": "Extend", "4": "Duplicate", "8": "Extend (Limited)", - "16": "Repeat (Separated)" + "16": "Repeat (Separated)", + "32": "Extend (Limited, E-prefixed)", + "64": "Extend (Limited, e-prefixed)" }, "airdateEpisodes": false }, diff --git a/themes-default/slim/test/specs/__snapshots__/config-post-processing.spec.js.snap b/themes-default/slim/test/specs/__snapshots__/config-post-processing.spec.js.snap index 41fce65e2e..e22a63f6aa 100644 --- a/themes-default/slim/test/specs/__snapshots__/config-post-processing.spec.js.snap +++ b/themes-default/slim/test/specs/__snapshots__/config-post-processing.spec.js.snap @@ -838,7 +838,7 @@ exports[`ConfigPostProcessing.test.js renders 1`] = ` enabled="true" flagloaded="true" multiepstyle="16" - multiepstyles="[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]" + multiepstyles="[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]" namingpattern="Season %S/%S.N.S%0SE%0E.%RT.%SQ.N-%RG" namingpresets="[object Object],[object Object],[object Object],[object Object],[object Object]" type="" @@ -869,7 +869,7 @@ exports[`ConfigPostProcessing.test.js renders 1`] = ` class="component-item" flagloaded="true" multiepstyle="1" - multiepstyles="[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]" + multiepstyles="[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]" namingpattern="%SN - S%0SE%0E - [%QN] [%RG]" namingpresets="[object Object],[object Object],[object Object],[object Object],[object Object]" type="anime"