From d440a25e1d7311c2360a0159fd34e38025a70677 Mon Sep 17 00:00:00 2001 From: oscar Date: Fri, 3 Oct 2025 01:26:45 +0300 Subject: [PATCH] back to os instead of path shit --- .DS_Store | Bin 12292 -> 12292 bytes storysave_scanner.py | 50 +++++++++++++++---------------------------- 2 files changed, 17 insertions(+), 33 deletions(-) diff --git a/.DS_Store b/.DS_Store index f83ab77e8b846410f4417a96050ff18f8fc2748d..9c6c5bf12a05042aaf09a6afe7c26e164667f428 100644 GIT binary patch delta 198 zcmZokXi3;`O@f6rV&; z#W*-y9~O%{97mH+!7E>oVHlj8pIZRb&%mI*VRN&>5*B6~uf>zKRHfK@|9oK+be-&_ WDg$HYsLC?hZthZ@%T9!%DkcCrA30b6 diff --git a/storysave_scanner.py b/storysave_scanner.py index f0c41be..2a4d535 100644 --- a/storysave_scanner.py +++ b/storysave_scanner.py @@ -1,31 +1,23 @@ from watchdog.events import FileSystemEventHandler from watchdog.observers import Observer -from pathlib import Path import shutil import time import os from funcs import get_media_dimensions -# Base directories -media_dir = Path("media") -stories_dir = media_dir / "stories" -posts_dir = media_dir / "posts" +media_dir = "media" +stories_dir = os.path.join(media_dir, "stories") +posts_dir = os.path.join(media_dir, "posts") -# Ensure output dirs exist -stories_dir.mkdir(parents=True, exist_ok=True) -posts_dir.mkdir(parents=True, exist_ok=True) +os.makedirs(stories_dir, exist_ok=True) +os.makedirs(posts_dir, exist_ok=True) def wait_for_complete(file_path, timeout=10): - """ - Wait until a file is fully written (size stops changing). - Returns True if stable within timeout, else False. - """ - file_path = Path(file_path) prev_size = -1 for _ in range(timeout * 2): # check every 0.5 sec try: - size = file_path.stat().st_size + size = os.path.getsize(file_path) except FileNotFoundError: return False if size == prev_size: @@ -36,9 +28,6 @@ def wait_for_complete(file_path, timeout=10): def is_story(width, height, tolerance=0.02): - """ - Check if dimensions are close to 9:16 (0.5625) ratio. - """ if width == 0 or height == 0: return False ratio = min(width, height) / max(width, height) @@ -46,10 +35,7 @@ def is_story(width, height, tolerance=0.02): def determine_post_type(filepath): - """ - Determines if a file is 'posts' or 'stories' based on aspect ratio. - """ - lower = str(filepath).lower() + lower = filepath.lower() if "posts" in lower: return "posts" try: @@ -62,14 +48,12 @@ def determine_post_type(filepath): class DownloadHandler(FileSystemEventHandler): def process_file(self, file_path): - file_path = Path(file_path) - file = file_path.name + file = os.path.basename(file_path) - # Skip temp/incomplete files if "crdownload" in file or file.count("~") != 3: return - if not file_path.exists(): + if not os.path.exists(file_path): return if not wait_for_complete(file_path): @@ -85,14 +69,14 @@ class DownloadHandler(FileSystemEventHandler): print(f"Could not determine post type for {file}. Skipping...") return - output_path = dest_dir / file + output_path = os.path.join(dest_dir, file) - if output_path.exists(): + if os.path.exists(output_path): print(f"File already exists {output_path}. Removing...") - file_path.unlink(missing_ok=True) + os.remove(file_path) return - shutil.move(str(file_path), str(output_path)) + shutil.move(file_path, output_path) print(f"Moved {file_path} → {output_path}") def on_created(self, event): @@ -105,14 +89,14 @@ class DownloadHandler(FileSystemEventHandler): if __name__ == "__main__": - download_path = Path.home() / "Downloads" + download_path = os.path.join(os.path.expanduser("~"), "Downloads") event_handler = DownloadHandler() observer = Observer() - observer.schedule(event_handler, str(download_path), recursive=False) + observer.schedule(event_handler, download_path, recursive=False) observer.start() try: - observer.join() # idle until interrupted + observer.join() except KeyboardInterrupt: observer.stop() - observer.join() + observer.join() \ No newline at end of file