- threading initials
This commit is contained in:
parent
f06e974777
commit
9aeafdfc9e
@ -7,6 +7,8 @@ from watchdog.events import FileSystemEventHandler
|
|||||||
import os
|
import os
|
||||||
import requests
|
import requests
|
||||||
import json
|
import json
|
||||||
|
import threading
|
||||||
|
import queue
|
||||||
|
|
||||||
class SyncClient:
|
class SyncClient:
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -19,23 +21,34 @@ class SyncClient:
|
|||||||
def start(self) -> None:
|
def start(self) -> None:
|
||||||
_sself = self
|
_sself = self
|
||||||
|
|
||||||
|
self.__event_queue = queue.Queue()
|
||||||
|
|
||||||
|
def comm_thread_routine():
|
||||||
|
while True:
|
||||||
|
event = self.__event_queue.get()
|
||||||
|
|
||||||
|
rel_path = str(event.src_path).removeprefix(_sself.dir())
|
||||||
|
if event.event_type == "created" or event.event_type == "modified":
|
||||||
|
_sself.upload(rel_path)
|
||||||
|
elif event.event_type == "moved":
|
||||||
|
src_rel_path = rel_path
|
||||||
|
dst_rel_path = str(event.dest_path).removeprefix(_sself.dir())
|
||||||
|
_sself.move(src_rel_path, dst_rel_path)
|
||||||
|
pass
|
||||||
|
elif event.event_type == "deleted":
|
||||||
|
_sself.delete(rel_path)
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class FileChangeHandler(FileSystemEventHandler):
|
class FileChangeHandler(FileSystemEventHandler):
|
||||||
EVENTS_WATCHED = [ "moved", "deleted", "created", "modified" ]
|
EVENTS_WATCHED = [ "moved", "deleted", "created", "modified" ]
|
||||||
|
|
||||||
def on_any_event(self, event):
|
def on_any_event(self, event):
|
||||||
if event.event_type in FileChangeHandler.EVENTS_WATCHED:
|
if event.event_type in FileChangeHandler.EVENTS_WATCHED:
|
||||||
if event.src_path != _sself.dir():
|
if event.src_path != _sself.dir():
|
||||||
rel_path = str(event.src_path).removeprefix(_sself.dir())
|
_sself.__event_queue.put(event)
|
||||||
if event.event_type == "created" or event.event_type == "modified":
|
|
||||||
_sself.upload(rel_path)
|
self.__comm_thread = threading.Thread()
|
||||||
elif event.event_type == "moved":
|
|
||||||
src_rel_path = rel_path
|
|
||||||
dst_rel_path = str(event.dest_path).removeprefix(_sself.dir())
|
|
||||||
_sself.move(src_rel_path, dst_rel_path)
|
|
||||||
pass
|
|
||||||
elif event.event_type == "deleted":
|
|
||||||
_sself.delete(rel_path)
|
|
||||||
pass
|
|
||||||
|
|
||||||
observer = Observer()
|
observer = Observer()
|
||||||
event_handler = FileChangeHandler()
|
event_handler = FileChangeHandler()
|
||||||
@ -51,6 +64,9 @@ class SyncClient:
|
|||||||
self.__id = id
|
self.__id = id
|
||||||
self.__key = key
|
self.__key = key
|
||||||
|
|
||||||
|
self.__comm_thread: threading.Thread
|
||||||
|
self.__event_queue: queue.Queue
|
||||||
|
|
||||||
self.start()
|
self.start()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user