Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import time
- from watchdog.observers import Observer
- from watchdog.events import PatternMatchingEventHandler
- import os
- os.system("cls||clear")
- # Create the event handler
- if __name__ == "__main__":
- patterns = ["*"]
- ignore_patterns = None
- ignore_directories = False
- case_sensitive = True
- my_event_handler = PatternMatchingEventHandler(patterns, ignore_patterns, ignore_directories, case_sensitive)
- # Handle all the events
- def event_handler(event):
- if "is_directory=True" in str(event):
- of_type = "FOLDER"
- else:
- of_type = "FILE"
- if event.event_type.upper() != "MODIFIED":
- print("[OBJECT {}] [OF_TYPE {}] '{}'".format(event.event_type.upper(), of_type, event.src_path))
- if event.event_type.upper() != "CREATED":
- clean_the_folders()
- my_event_handler.on_created = event_handler
- my_event_handler.on_deleted = event_handler
- my_event_handler.on_modified = event_handler
- my_event_handler.on_moved = event_handler
- # Create the observer
- path = "/mnt/usb/needs_cleaning"
- go_recursively = True
- my_observer = Observer()
- my_observer.schedule(my_event_handler, path, recursive=go_recursively)
- # Start the observer
- print("--> System is currently watching the folder '{}' <--".format(path))
- my_observer.start()
- try:
- while True:
- time.sleep(1)
- except KeyboardInterrupt:
- my_observer.stop()
- my_observer.join()
- def clean_the_folders():
- import os
- from glob import glob
- import shutil
- root = "/mnt/usb/needs_cleaning"
- os.system("clear")
- os.chdir(root)
- flags = {
- #'key': 'value',
- ' [720p]': '',
- ' [1080p]': '',
- ' [BluRay]': '',
- ' [YTS.MX]': '',
- ' [WEBRip]': '',
- '.': ' ',
- '_': ' ',
- }
- # RENAME FOLDERS
- folders = os.listdir(root)
- for folder in folders:
- new_folder = folder
- for key, value in flags.items():
- if key in new_folder:
- new_folder = new_folder.replace(key, value)
- if folder != new_folder:
- os.rename(folder, new_folder)
- # GET FOLDERS LIST
- folders = os.listdir(root)
- folders.sort()
- # REMOVE EXTRA FOLDERS
- for folder in folders:
- subfolders = os.listdir(folder)
- for lvl2 in subfolders:
- lvl2_folders = (
- "Subs",
- "Other"
- )
- for lvl2_folder in lvl2_folders:
- if lvl2 == lvl2_folder:
- files = os.listdir("{}/{}".format(folder, lvl2_folder))
- for file in files:
- os.remove("{}/{}/{}".format(folder, lvl2_folder, file))
- print("Removing [file] : {}/{}/{}".format(folder, lvl2_folder, file))
- os.rmdir("{}/{}".format(folder, lvl2_folder))
- print("Removing [folder] : {}/{}".format(folder, lvl2_folder))
- # RENAME SUBFILES TO PARENT FOLDER
- for folder in folders:
- os.chdir("{}/{}".format(root, folder))
- files = os.listdir()
- for file in files:
- if (".mp4" or ".mkv") in file:
- print("Renaming [file] : {} to {}.mp4".format(file, folder))
- os.rename(file, "{}.mp4".format(folder))
- if ".srt" in file:
- print("Renaming [file] : {} to {}.srt".format(file, folder))
- os.rename(file, "{}.srt".format(folder))
- if not (".mp4" or ".mkv" or ".srt") in file:
- print("Removing [file] : {}".format(file))
- os.remove(file)
- os.chdir("..")
- # COPY FILES TO THE SEVER
- os.chdir(root)
- for folder in folders:
- print("Copying [folder] : {}".format(folder))
- shutil.move("{}/{}".format(root, folder),"/mnt/usb/ready/")
Add Comment
Please, Sign In to add comment