Python teamspeak3 api

Python teamspeak3 api

我正在使用来自 github 的 API 为 TS3 创建一个机器人。

在 main.py 中,我使用 TS3Connection class 创建了名为 ts3conn 的连接实例。然后我注册一个这样的事件:`ts3conn.register_for_channel_events(channel_id, event_handler)

在 module.py 中,我创建了一个 event_handler 这样的:

event_handler(sender, **kw):
    event = kw["event"] # variable 'event' contains target_channel_id (to which client moved) and client_id 
    # Here I need to use the ts3conn instance from main, don't know how.

所以我尝试在 module.py 中执行 from main import ts3conn 但它停止了。我试图理解 TS3Connection.py 和 Events.py(最重要的文件),但作者使用模块“blinker”,我不知道如何编辑这些文件。

如果你能帮助我,我很乐意接受解决问题的原始方法,但我也想保留当前的 ​​main 结构,包含连接和模块目录,其中包含使用连接与TS3 服务器。

用 class 包装 handling_event 函数,在调用时将 ts3conn 传递给处理程序。

class event_handler(object):
    def __init__(self, ts3conn):
        self.ts3conn = ts3conn

    def handle_event(self, sender, **kw):
        print(self.ts3conn)
        # some operations on ts3conn

# in main
handler = event_handler(ts3conn)
ts3conn.register_for_channel_events(1, handler.handle_event)