Parcourir la source

Also remove temp folder if clear_temp_files is true, some improvements

Cammy il y a 6 ans
Parent
commit
f02600db49
3 fichiers modifiés avec 22 ajouts et 15 suppressions
  1. 6 9
      pyinstalive/dlfuncs.py
  2. 1 1
      pyinstalive/downloader.py
  3. 15 5
      pyinstalive/helpers.py

+ 6 - 9
pyinstalive/dlfuncs.py

@@ -148,6 +148,8 @@ def merge_segments():
         try:
             pil.broadcast_downloader.stitch(live_mp4_file, cleartempfiles=pil.clear_temp_files)
             logger.info('Successfully merged downloaded files into video.')
+            if pil.clear_temp_files:
+                helpers.remove_temp_folder()
             helpers.remove_lock()
         except ValueError as e:
             logger.separator()
@@ -316,7 +318,8 @@ def download_replays():
                 pil.comment_thread_worker = threading.Thread(target=get_replay_comments, args=(comments_json_file,))
 
                 broadcast_downloader.download(replay_mp4_file, cleartempfiles=pil.clear_temp_files)
-
+                if pil.clear_temp_files:
+                    helpers.remove_temp_folder()
                 if pil.dl_comments:
                     logger.info("Downloading replay comments.")
                     try:
@@ -325,10 +328,7 @@ def download_replays():
                         logger.error('An error occurred while downloading comments: {:s}'.format(str(e)))
 
                 logger.info("Finished downloading replay {:s} of {:s}.".format(str(current), str(len(pil.replays_obj))))
-                try:
-                    os.remove(os.path.join(pil.live_folder_path, 'folder.lock'))
-                except Exception:
-                    pass
+                helpers.remove_lock()
 
                 if current != len(pil.replays_obj):
                     logger.separator()
@@ -343,10 +343,7 @@ def download_replays():
         logger.separator()
         logger.binfo('The download has been aborted by the user, exiting.')
         logger.separator()
-        try:
-            shutil.rmtree(pil.live_folder_path)
-        except Exception as e:
-            logger.error("Could not remove segment folder: {:s}".format(str(e)))
+        helpers.remove_temp_folder()
         helpers.remove_lock()
 
 

+ 1 - 1
pyinstalive/downloader.py

@@ -24,7 +24,7 @@ def start():
         else:
             dlfuncs.download_following()
     else:
-        if not helpers.check_lock_file():
+        if not helpers.download_folder_has_lockfile():
             helpers.create_lock_user()
             checking_self = pil.dl_user == pil.ig_api.authenticated_user_name
             if dlfuncs.get_broadcasts_info():

+ 15 - 5
pyinstalive/helpers.py

@@ -280,12 +280,22 @@ def create_lock_folder():
 
 
 def remove_lock():
+    download_folder_lock = os.path.join(pil.dl_path, pil.dl_user + '.lock')
+    temp_folder_lock = os.path.join(pil.live_folder_path, 'folder.lock')
+    lock_paths = [download_folder_lock, temp_folder_lock]
+    for lock in lock_paths:
+        try:
+            os.remove(lock)
+        except Exception:
+            pass
+
+
+def remove_temp_folder():
     try:
-        os.remove(os.path.join(pil.dl_path, pil.dl_user + '.lock'))
-        os.remove(os.path.join(pil.live_folder_path, 'folder.lock'))
-    except Exception:
-        pass
+        shutil.rmtree(pil.live_folder_path)
+    except Exception as e:
+        logger.error("Could not remove segment folder: {:s}".format(str(e)))
 
 
-def check_lock_file():
+def download_folder_has_lockfile():
     return os.path.isfile(os.path.join(pil.dl_path, pil.dl_user + '.lock'))