diff --git a/.gitignore b/.gitignore index 107543d6..3181541d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,50 +1,51 @@ ###################### -# SB User Related # +# SG User Related # cache/* -cache.db* -config.ini* Logs/* -sickbeard.db* -failed.db* +restore/ autoProcessTV/autoProcessTV.cfg +config.ini* +cache.db* +failed.db* +sickbeard.db* server.crt server.key -restore/ ###################### -# SB Test Related # +# SG Test Related # tests/cache/* tests/Logs/* -tests/sickgear.* tests/*.db +tests/sickgear.* ###################### # Compiled source # *.py[co] +**/__pycache__/ ###################### # IDE specific # +/.idea/ *.bak -*.tmp -*.wpr +*.cproject *.project *.pydevproject -*.cproject +*.sw? +*.tmp *.tmproj *.tmproject -*.sw? +*.wpr Session.vim .ropeproject/* ###################### # OS generated files # +*.torrent +*~ +.directory +.DS_Store .Spotlight-V100 .Trashes -.DS_Store desktop.ini ehthumbs.db Thumbs.db -.directory -*~ -/.idea/ -*.torrent diff --git a/CHANGES.md b/CHANGES.md index e3702c5f..b0fbd244 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -27,6 +27,15 @@ * Fix UI by marking resource as unavailable if cannot determine its free space +### 3.27.13 (2023-04-12 10:15:00 UTC) + +* Change fix show id log output +* Change handle exceptions thrown from pkg_resources parsing newly extended working set modules not even used by SG +* Fix parsing shows where multiple same names are in SG and show_obj is set for parser +* Change update fallback zoneinfo to 2023c +* Change allow Python 3.11.3, 3.10.11 + + ### 3.27.12 (2023-03-08 23:30:00 UTC) * Change meta providers to new TVInfoAPI get_show to make sure language is used diff --git a/lib/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz b/lib/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz index 8704c5ca..49cae214 100644 Binary files a/lib/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz and b/lib/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz differ diff --git a/sickgear.py b/sickgear.py index 3cc70492..056fcd3b 100755 --- a/sickgear.py +++ b/sickgear.py @@ -41,7 +41,7 @@ warnings.filterwarnings('ignore', message='.*deprecated in cryptography.*') versions = [((3, 7, 1), (3, 8, 16)), ((3, 9, 0), (3, 9, 2)), ((3, 9, 4), (3, 9, 16)), - ((3, 10, 0), (3, 11, 2))] # inclusive version ranges + ((3, 10, 0), (3, 11, 3))] # inclusive version ranges if not any(list(map(lambda v: v[0] <= sys.version_info[:3] <= v[1], versions))) and not int(os.environ.get('PYT', 0)): major, minor, micro = sys.version_info[:3] print('Python %s.%s.%s detected.' % (major, minor, micro)) diff --git a/sickgear/name_parser/parser.py b/sickgear/name_parser/parser.py index 46cf2fae..0132056c 100644 --- a/sickgear/name_parser/parser.py +++ b/sickgear/name_parser/parser.py @@ -58,7 +58,7 @@ class NameParser(object): naming_pattern=False, testing=False, indexer_lookup=True): self.file_name = file_name # type: bool - self.show_obj = show_obj # type: sickgear.tv.TVShow or None + self.show_obj = show_obj # type: Optional[sickgear.tv.TVShow] self.try_scene_exceptions = try_scene_exceptions # type: bool self.convert = convert # type: bool self.naming_pattern = naming_pattern # type: bool @@ -302,7 +302,9 @@ class NameParser(object): # confirm passed in show object tvid_prodid matches result show object tvid_prodid if show_obj and not self.testing: - if self.show_obj and show_obj.tvid_prodid != self.show_obj.tvid_prodid: + if self.show_obj and show_obj.tvid_prodid != self.show_obj.tvid_prodid \ + and helpers.full_sanitize_scene_name(show_obj.name) != \ + helpers.full_sanitize_scene_name(self.show_obj.name): show_obj = None elif not show_obj and self.show_obj: show_obj = self.show_obj diff --git a/sickgear/piper.py b/sickgear/piper.py index d4c8a3a9..a70eb146 100644 --- a/sickgear/piper.py +++ b/sickgear/piper.py @@ -189,7 +189,10 @@ def _check_pip_env(pip_outdated=False, reset_fails=False): import pkg_resources six.moves.reload_module(pkg_resources) for cur_distinfo in pkg_resources.working_set: - environment[cur_distinfo.project_name] = cur_distinfo.parsed_version + try: + environment[cur_distinfo.project_name] = cur_distinfo.parsed_version + except (BaseException, Exception): + pass save_failed = False known_failed = load_ignorables(DATA_DIR) diff --git a/sickgear/tv.py b/sickgear/tv.py index 8073d907..0587137d 100644 --- a/sickgear/tv.py +++ b/sickgear/tv.py @@ -2592,7 +2592,7 @@ class TVShow(TVShowBase): if len(sql_result): logger.log('%s: Loading show info%s from database' % vals) raise exceptions_helper.MultipleDBShowsException() - logger.log('%s-%s: Unable to find the show%s in the database' % (self.tvid, self.prodid, self.name)) + logger.log(f'{self.tvid_prodid}: Unable to find the show{self.name} in the database') return show_result = next(iter(sql_result)) diff --git a/sickgear/webserve.py b/sickgear/webserve.py index dbf0e7cc..9ccafc64 100644 --- a/sickgear/webserve.py +++ b/sickgear/webserve.py @@ -8483,7 +8483,6 @@ class ConfigMediaProcess(Config): return t.respond() def save_post_processing(self, tv_download_dir=None, process_automatically=None, mediaprocess_interval=None, - autopostprocesser_frequency=None, unpack=None, keep_processed_dir=None, process_method=None, extra_scripts='', sg_extra_scripts='', rename_episodes=None, airdate_episodes=None, @@ -8495,11 +8494,8 @@ class ConfigMediaProcess(Config): wdtv_data=None, tivo_data=None, mede8er_data=None, kodi_data=None, naming_pattern=None, naming_multi_ep=None, naming_anime=None, naming_anime_pattern=None, naming_anime_multi_ep=None, - naming_abd_pattern=None, naming_sports_pattern=None): - - # prevent deprecated var issues from existing ui, delete in future, added 2020.11.07 - if None is mediaprocess_interval and None is not autopostprocesser_frequency: - mediaprocess_interval = autopostprocesser_frequency + naming_abd_pattern=None, naming_sports_pattern=None, + **kwargs): # kwargs picks up deprecated vars sent from legacy UIs results = []