This commit is contained in:
2025-05-11 18:58:43 +02:00
parent d5a73f342e
commit f3f3045ebf
48 changed files with 686 additions and 243 deletions

62
helper/prerequisite.py Normal file
View File

@@ -0,0 +1,62 @@
import os
from pathlib import Path
import shutil
from data.path_constant import DOWNLOAD_DIR, NETWORK_DIR
# input: DOWNLOAD_DIR or NETWORK_DIR
def delete_all_empty_episodes(path: Path):
for first_level_path in path.iterdir():
if first_level_path.is_dir():
for second_level_path in first_level_path.iterdir():
if second_level_path.is_dir() and not any(second_level_path.iterdir()):
print(f"Deleting directory: {second_level_path}")
shutil.rmtree(second_level_path)
print(f"Empty directory '{second_level_path}' deleted successfully.")
def delete_all_webtoons_without_episodes():
for first_level_path in NETWORK_DIR.iterdir():
if first_level_path.is_dir():
contains_dir = any(item.is_dir() for item in first_level_path.iterdir())
if not contains_dir:
# No subdirectories, safe to delete
print(f"Deleting directory: {first_level_path}")
shutil.rmtree(first_level_path)
print(f"Directory '{first_level_path}' deleted successfully.")
def get_download_list(path: Path):
url_list = []
try:
with open(path, 'r', encoding='utf-8') as file:
for url in file:
if 'https://' in url:
url_list.append(url.strip())
except FileNotFoundError:
print(f"The file at {path} was not found.")
except Exception as e:
print(f"An error occurred: {e}")
return url_list
def rename_episodes(path: Path):
for first_level_path in path.iterdir():
if first_level_path.is_dir():
for second_level_path in first_level_path.iterdir():
if second_level_path.is_dir() and '. ' in second_level_path.name:
print(second_level_path)
newName = second_level_path.name.replace(". ", ".")
new_path = first_level_path / newName
os.rename(second_level_path, new_path)
if second_level_path.is_dir() and '' in second_level_path.name:
print(second_level_path)
newName = second_level_path.name.replace("", " (")
newName = newName.replace("", ")")
new_path = first_level_path / newName
os.rename(second_level_path, new_path)
def get_episodes_with_wrong_name(path: Path):
for first_level_path in path.iterdir():
if first_level_path.is_dir():
for second_level_path in first_level_path.iterdir():
if second_level_path.is_dir() and len(second_level_path.name.split('.')) > 2:
print(second_level_path)