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 @@

Requirements Changelog Top

 
-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,