mirror of
https://github.com/jadonyack/download-manager.git
synced 2026-06-15 02:58:14 -04:00
Add FileHandler class
This commit is contained in:
@@ -6,6 +6,12 @@
|
|||||||
# Written by Jadon Yack (jyack)
|
# Written by Jadon Yack (jyack)
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import shutil
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
import logging
|
||||||
|
from watchdog.observers import Observer
|
||||||
|
from watchdog.events import LoggingEventHandler
|
||||||
|
|
||||||
user = os.getlogin()
|
user = os.getlogin()
|
||||||
src_dir = "/home/" + user + "/Downloads"
|
src_dir = "/home/" + user + "/Downloads"
|
||||||
@@ -14,3 +20,48 @@ vid_dst = "/home/" + user + "/Videos"
|
|||||||
doc_dst = "/home/" + user + "/Documents"
|
doc_dst = "/home/" + user + "/Documents"
|
||||||
iso_dst = "/home/" + user + "/ISOs"
|
iso_dst = "/home/" + user + "/ISOs"
|
||||||
|
|
||||||
|
def makeUniq(path, name):
|
||||||
|
|
||||||
|
|
||||||
|
def move(entry, name, dst_dir):
|
||||||
|
name = makeUniq(entry.path, name)
|
||||||
|
|
||||||
|
|
||||||
|
class FileHandler(FileSystemEventHandler):
|
||||||
|
def on_modified(self, event):
|
||||||
|
with os.scandir(src_dir) as entries:
|
||||||
|
for entry in entries:
|
||||||
|
name = entry.name
|
||||||
|
dst = src_dir
|
||||||
|
# If entry is an image
|
||||||
|
if name.endswith('.jpg') or name.endswith('.jpeg')
|
||||||
|
or name.endswith('.png'):
|
||||||
|
dst = img_dst
|
||||||
|
# If entry is a video
|
||||||
|
elif name.endswith('.mp4') or name.endswith('.mov'):
|
||||||
|
dst = vid_dst
|
||||||
|
# If entry is a document
|
||||||
|
elif name.endswith('.docx') or name.endswith('.pdf'):
|
||||||
|
dst = doc_dst
|
||||||
|
# If entry is an ISO file
|
||||||
|
elif name.endswith('.iso'):
|
||||||
|
dst = iso_dst
|
||||||
|
|
||||||
|
move(entry, name, dst)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
logging.basicConfig(level=logging.INFO,
|
||||||
|
format='%(asctime)s - %(message)s',
|
||||||
|
datefmt='%Y-%m-%d %H:%M:%S')
|
||||||
|
path = src_dir
|
||||||
|
event_handler = FileHandler()
|
||||||
|
observer = Observer()
|
||||||
|
observer.schedule(event_handler, path, recursive=True)
|
||||||
|
observer.start()
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
time.sleep(10)
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
observer.stop()
|
||||||
|
observer.join()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user