diff --git a/Changelog b/Changelog index 9d24b22..3dcd7e0 100644 --- a/Changelog +++ b/Changelog @@ -1,4 +1,4 @@ -2024-10-16 s-n-g +2024-10-17 s-n-g * version 0.9.3.11.1 (BUG FIX) - 0.9.3.12-beta1 * adding -sdd (--show_dirs) command line parameter * fixing a couple of bugs (some reported by pylint /ruff) diff --git a/docs/index.html b/docs/index.html index 1aca278..887d6ca 100644 --- a/docs/index.html +++ b/docs/index.html @@ -187,7 +187,7 @@
-2024-10-16 s-n-g +2024-10-17 s-n-g * version 0.9.3.11.1 (BUG FIX) - 0.9.3.12-beta1 * adding -sdd (--show_dirs) command line parameter * fixing a couple of bugs (some reported by pylint /ruff) diff --git a/pyradio/radio.py b/pyradio/radio.py index 064c22b..00a9cfd 100644 --- a/pyradio/radio.py +++ b/pyradio/radio.py @@ -5746,8 +5746,10 @@ def _tag_a_title(self, html=False, text=False): if self._cnf.can_like_a_station(): if not path.exists(self._cnf.recording_dir): try: - makedirs(self._cnf.recording_dir) - except: + os.makedirs(self._cnf.recording_dir) + except ( + FileExistsError, FileNotFoundError, + PermissionError, OSError): pass if not path.exists(self._cnf.recording_dir): if logger.isEnabledFor(logging.ERROR): @@ -6155,7 +6157,7 @@ def keypress(self, char): if self._open_dir_win.dir == path.join(path.expanduser('~'), 'pyradio-recordings'): if not path.exists(self._open_dir_win.dir): try: - makedirs(self._open_dir_win.dir) + os.makedirs(self._open_dir_win.dir) except: self._show_delayed_notification( '___|Error|: Recording dir does |not exist|!___', @@ -9252,7 +9254,7 @@ def _start_player(self, mode=None): if self.player.recording > 0: if not os.path.exists(self._cnf.recording_dir): try: - makedirs(self._cnf.recording_dir) + os.makedirs(self._cnf.recording_dir) except: pass if not os.path.exists(self._cnf.recording_dir): diff --git a/pyradio/win.py b/pyradio/win.py index 3a5050a..506f5da 100644 --- a/pyradio/win.py +++ b/pyradio/win.py @@ -329,17 +329,24 @@ def download_player(output_folder=None, package=1, do_not_exit=False): download_seven_zip(output_folder) if not HAVE_PYUNPACK: - for a_module in ('pyunpack', 'patool'): - install_module(a_module, print_msg=False) + install_module('pyunpack', print_msg=False) from pyunpack import Archive - patool_exec = join(site.USER_SITE.replace('site-packages', 'Scripts'), 'patool') - if not exists(patool_exec): - patool_exec = glob.glob(join(environ['APPDATA'], '**', 'patool.exe'), recursive=True) - if patool_exec: - patool_exec = patool_exec[0] + count = 0 + while True: + patool_exec = join(site.USER_SITE.replace('site-packages', 'Scripts'), 'patool') + if exists(patool_exec): + break else: - patool_exec = None + patool_exec = glob.glob(join(environ['APPDATA'], '**', 'patool.exe'), recursive=True) + if patool_exec: + patool_exec = patool_exec[0] + break + else: + install_module('patool', print_msg=False) + count += 1 + if count > 2: + break try: Archive(out_file).extractall(join(output_folder, 'mpv' if package==0 else ''), auto_create_dir=True,