#region Imports import time, os, tomllib from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler from utils.logger import Log from utils.scanner import scan from utils.discord import webhook from utils.ai import ai_analyse # ai_analyse("./test.py") #endregion def s(input_dict): return [ {"name": key, "value": '\n'.join(' - ' + str(item) for item in items)} for key, items in input_dict.items() ] def c(d): c=0 for key in d: if isinstance(d[key], list): c += len(d[key]) return c #region Initialize t = time.time() with open("config.toml", "rb") as f: data = tomllib.load(f) path = data['DETECTION']['watchdogPath'] Log.v(""" ____ ____ / __ \\____ _/ __ \\____ ______ / /_/ / __ `/ / / / __ `/ ___/ / _, _/ /_/ / /_/ / /_/ / / /_/ |_|\\__,_/_____/\\__,_/_/ (ver. {}) """.format(data['ver'])) #endregion class MyHandler(FileSystemEventHandler): def on_created(self, event): if event.is_directory: return None else: Log.v(f"file created: {event.src_path}") r = scan(event.src_path) if r[0]: Log.s(f"Flagged {event.src_path}") analyse = ai_analyse(event.src_path) webhook(event.src_path, s(r[0]), f"Total Flagged Pattern: {str(c(r[0]))}\n\n{analyse}") def on_moved(self, event): Log.v(f"file moved : {event.src_path}") r = scan(event.src_path) if r[0]: Log.s(f"Flagged {event.src_path}") analyse = ai_analyse(event.src_path) webhook(event.src_path, s(r[0]), f"Total Flagged Pattern: {str(c(r[0]))}\n\n{analyse}") def on_deleted(self, event): Log.v(f"file deleted {event.src_path}") def on_modified(self, event): if(event.src_path == "."): return Log.v(f"file modified : {event.src_path}") r = scan(event.src_path) if r[0]: Log.s(f"Flagged {event.src_path}") analyse = ai_analyse(event.src_path) webhook(event.src_path, s(r[0]), f"Total Flagged Pattern: {str(c(r[0]))}\n\n{analyse}") if __name__ == "__main__": event_handler = MyHandler() observer = Observer() observer.schedule(event_handler, path, recursive=False) observer.start() Log.s(data['LANGUGAE']['english']['radarStarted'].format(str(round(time.time() - t, 5)))) try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join()