55 lines
1.7 KiB
Python
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()
|