看门狗和用telethon发送消息

wtlkbnrh  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(496)

我想通过watchdog观察文件系统的变化,并通过telethon另外发送一条消息,代码如下:

import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
from telethon import TelegramClient, sync, events

api_id = 0000000
api_hash = '*'

client = TelegramClient('Name', api_id, api_hash)
client.start()

class OnMyWatch:
    # Set the directory on watch
    watchDirectory = "/Users/UserID/Desktop/"

    def __init__(self):
        self.observer = Observer()

    def run(self):
        event_handler = Handler()
        self.observer.schedule(event_handler, self.watchDirectory, recursive=True)
        self.observer.start()
        try:
            while True:
                time.sleep(5)
        except:
            self.observer.stop()
            print("Observer Stopped")

        self.observer.join()

class Handler(FileSystemEventHandler):
    @staticmethod
    def on_any_event(event):
        if event.event_type == 'created':
            # Sending a message to myself 
            client.send_message('me', 'A file was created!'),

if __name__ == '__main__':
    watch = OnMyWatch()
    watch.run()

不幸的是,它抛出以下错误:
file“/library/frameworks/python.framework/versions/3.9/lib/python3.9/site packages/telethon/sync.py”,第35行,syncified loop=asyncio.get\u event\u loop()
file“/library/frameworks/python.framework/versions/3.9/lib/python3.9/asyncio/events.py”,第642行,在get\u event\u loop raise runtimeerror('线程%r中没有当前事件循环'
runtimeerror:线程“thread-2”中没有当前事件循环*
我试图理解如何使用asyncio和telethon,但无法修复它,所以我想在这里得到一些有价值的提示。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题