diff --git a/couchpotato/core/_base/_core.py b/couchpotato/core/_base/_core.py index ca45ceb0..91cb97e9 100644 --- a/couchpotato/core/_base/_core.py +++ b/couchpotato/core/_base/_core.py @@ -77,7 +77,8 @@ class Core(Plugin): return True def cleanUpFolders(self): - self.deleteEmptyFolder(Env.get('app_dir'), show_error = False) + only_clean = ['couchpotato', 'libs', 'init'] + self.deleteEmptyFolder(Env.get('app_dir'), show_error = False, only_clean = only_clean) def available(self, **kwargs): return { diff --git a/couchpotato/core/plugins/base.py b/couchpotato/core/plugins/base.py index dae522f4..af314bfd 100644 --- a/couchpotato/core/plugins/base.py +++ b/couchpotato/core/plugins/base.py @@ -140,13 +140,31 @@ class Plugin(object): return False - def deleteEmptyFolder(self, folder, show_error = True): + def deleteEmptyFolder(self, folder, show_error = True, only_clean = None): folder = sp(folder) + allowed_dirs = [] + if only_clean: + for item in os.listdir(folder): + full_path = os.path.join(folder, item) + if item in only_clean and os.path.isdir(full_path): + allowed_dirs.append(full_path) + for root, dirs, files in os.walk(folder): for dir_name in dirs: full_path = os.path.join(root, dir_name) + + if only_clean: + allow = False + for allowed_dir in allowed_dirs: + if allowed_dir in full_path: + allow = True + break + + if not allow: + continue + if len(os.listdir(full_path)) == 0: try: os.rmdir(full_path)