Files
playground/process_new_videos.py
T

55 lines
1.7 KiB
Python

#!/usr/bin/env python3
import sys
from pathlib import Path
import shutil
import subprocess
import logging
# Configure logging
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S")
logger = logging.getLogger(__name__)
TARGET_DIR = Path("/mnt/box/files/_raw/prt/")
SCAN_SCRIPT_PATH = Path("~/_scripts/snot/snot.py").expanduser()
VIDEO_EXTENSIONS = {".mkv", ".mp4"}
def main():
# Simplified: Assume correct arguments are passed
event_name = sys.argv[1]
src_path = Path(sys.argv[2]).resolve()
logger.info(f"Received event: {event_name}, Source path: {src_path}")
if event_name.lower() == "moved":
src_path = Path(sys.argv[3]).resolve()
if not src_path.is_file() or src_path.suffix.lower() not in VIDEO_EXTENSIONS:
logger.info(f"Ignoring non-video file or non-existent file: {src_path.name}")
exit(0)
return
logger.info(f"Processing created video file: {src_path}")
target_path = TARGET_DIR / src_path.name
logger.info(f"Moving '{src_path}' to '{target_path}'")
src_path.rename(target_path)
subprocess.run(
[str(SCAN_SCRIPT_PATH), "scan", str(target_path)],
text=True,
check=True,
)
has_other_videos = any(f.is_file() and f.suffix.lower() in VIDEO_EXTENSIONS for f in src_path.parent.iterdir())
has_large_files = any(f.is_file() and f.stat().st_size > 30 * 1024 * 1024 for f in src_path.parent.iterdir())
if not (has_other_videos or has_large_files):
logger.info(f"No other video files or large files in '{src_path.parent}'. Deleting it.")
shutil.rmtree(src_path.parent)
if __name__ == "__main__":
main()