1
- import json
1
+ import time
2
+ import asyncio
2
3
3
- import requests
4
4
from label_studio_sdk import Client
5
+ from watchdog .events import PatternMatchingEventHandler
6
+ from watchdog .observers import Observer
5
7
6
8
from const import LABEL_STUDIO_URL , API_KEY
9
+ from importer import upload_img
10
+
11
+ watch_patterns = "*.py;*.txt" # 监控文件的模式
12
+ ignore_patterns = "" # 设置忽略的文件模式
13
+ ignore_directories = False # 是否忽略文件夹变化
14
+ case_sensitive = True # 是否对大小写敏感
15
+ event_handler = PatternMatchingEventHandler (
16
+ watch_patterns , ignore_patterns , ignore_directories , case_sensitive )
17
+
18
+
19
+ def on_created (event ):
20
+ print (str (event .src_path ) + "被创建" )
21
+ asyncio .run (upload_img (event .src_path ))
22
+
23
+
24
+ def on_deleted (event ):
25
+ print (f"{ event .src_path } 被删除" )
26
+
27
+
28
+ def on_modified (event ):
29
+ print (f"{ event .src_path } 被修改" )
30
+
31
+
32
+ def on_moved (event ):
33
+ print (f"{ event .src_path } 被移动到{ event .dest_path } " )
34
+
35
+
36
+ event_handler .on_created = on_created
37
+ event_handler .on_deleted = on_deleted
38
+ event_handler .on_modified = on_modified
39
+ event_handler .on_moved = on_moved
40
+
41
+ watch_path = "/home/ethanjia/dev/label-studio-pipeline/import" # 监控目录
42
+ go_recursively = True # 是否监控子文件夹
43
+ my_observer = Observer ()
44
+ my_observer .schedule (event_handler , watch_path , recursive = go_recursively )
7
45
8
46
9
47
def main ():
@@ -14,25 +52,13 @@ def main():
14
52
pass
15
53
else :
16
54
print ('Connection Succeeds!' )
17
- headers = {
18
- 'Authorization' : 'Token ' + API_KEY ,
19
- 'Content-Type' : 'application/json' ,
20
- }
21
- data = {
22
- "path" : "/home/ethanjia/dev/label-studio-pipeline/img" ,
23
- "regex_filter" : "" ,
24
- "use_blob_urls" : True ,
25
- "title" : "test sync" ,
26
- "description" : "test sync" ,
27
- "last_sync" : "2019-08-24T14:15:22Z" ,
28
- "last_sync_count" : 0 ,
29
- "project" : 1
30
- }
31
- # FIXME 这里的id不知道是啥
32
- response = requests .post (
33
- 'http://localhost:8080/api/storages/localfiles/1/sync' , headers = headers ,
34
- data = json .dumps (data , separators = (',' , ':' )))
35
- print (response .json ())
55
+ my_observer .start ()
56
+ try :
57
+ while True :
58
+ time .sleep (1 )
59
+ except KeyboardInterrupt :
60
+ my_observer .stop ()
61
+ my_observer .join ()
36
62
37
63
38
64
if __name__ == '__main__' :
0 commit comments