协调器

通道间的协调器。

ehforwarderbot.coordinator.profile

当前配置档案的名称

类型

str

ehforwarderbot.coordinator.mutex

全局交互线程锁。

类型

threading.Lock

ehforwarderbot.coordinator.master

正在运行的主端对象。

类型

信道

ehforwarderbot.coordinator.slaves

正在运行的从端的字典。键值为信道的唯一标识符。

类型

Dict[str, EFBChannel]

ehforwarderbot.coordinator.middlewares

中间件列表

类型

List[Middleware]

ehforwarderbot.coordinator.add_channel(channel)[源代码]

向协调器注册信道。

参数

channel (Channel) – 需注册的信道

ehforwarderbot.coordinator.add_middleware(middleware)[源代码]

向协调器注册一个中间件。

参数

middleware (Middleware) – 需要注册的中间件

ehforwarderbot.coordinator.get_module_by_id(module_id)[源代码]

返回该组件 ID 对应的实例。

参数

module_id (NewType()(ModuleID, str)) – 组件 ID,包含实例 ID(若有)。

返回类型

Union[Channel, Middleware]

返回

请求的组件实例。

引发

NameError – 当组件无法找到时。

ehforwarderbot.coordinator.master: ehforwarderbot.channel.MasterChannel

主端的实例。

ehforwarderbot.coordinator.master_thread: Optional[threading.Thread] = None

运行主端 poll() 函数的线程。

ehforwarderbot.coordinator.middlewares: List[ehforwarderbot.middleware.Middleware] = []

中间件实例,按执行顺序排序

ehforwarderbot.coordinator.mutex: _thread.allocate_lock = <unlocked _thread.lock object>

CLI 界面中用户交互的独占锁

ehforwarderbot.coordinator.profile: str = 'default'

当前配置档案的名称

ehforwarderbot.coordinator.send_message(msg)[源代码]

将一条新消息或已编辑的消息发送到目标信道。

参数

msg (Message) – 消息

返回类型

Optional[Message]

返回

由目标信道处理并发送后的消息。如果目标信道是从端,则包含来自从端的新消息 ID。如果消息没有被发送则返回 None

ehforwarderbot.coordinator.send_status(status)[源代码]

向目标信道传送一个状态。

参数

status (Status) – 状态

ehforwarderbot.coordinator.slave_threads: Dict[ModuleID, threading.Thread] = {}

运行从端 poll() 函数的线程。键值为信道 ID。

ehforwarderbot.coordinator.slaves: Dict[ModuleID, ehforwarderbot.channel.SlaveChannel] = {}

从端实例,键值为信道 ID。

ehforwarderbot.coordinator.translator: gettext.NullTranslations = <gettext.NullTranslations object>

内部 GNU gettext 翻译器。