melobot.session

会话层部件

class melobot.session.Session[源代码]

基类:object

会话

变量:
  • store (SessionStore) -- 当前会话上下文的会话存储

  • rule (Rule) -- 当前会话上下文的会话规则

mark_expire() None[源代码]
返回类型:

None

class melobot.session.SessionStore[源代码]

基类:dict[str, Any]

会话存储,生命周期伴随会话对象

class melobot.session.Rule[源代码]

基类:BetterABC, Generic[EventT]

会话规则

对于更复杂的情况,可以继承此类,在子类中结合状态信息实现更动态的会话判断

static new(meth: Callable[[EventT, EventT], bool]) Rule[EventT][源代码]

从可调用对象创建一个新的会话规则对象

参数:

meth (Callable[[EventT, EventT], bool]) -- 用于会话判断的可调用对象

返回:

会话规则

返回类型:

Rule[EventT]

abstract async compare(e1: EventT, e2: EventT) bool[源代码]

会话判断的方法

参数:
  • e1 (EventT) -- 事件 1

  • e2 (EventT) -- 事件 2

返回:

True 则在一个会话中,反之亦然

返回类型:

bool

melobot.session.enter_session(rule: Rule, wait: bool = True, nowait_cb: AsyncCallable[(), None] | None = None, keep: bool = False) _AsyncGeneratorContextManager[Session][源代码]

上下文管理器,提供一个会话上下文,在此上下文中可使用会话的高级特性

参数:
  • rule (Rule) -- 会话规则

  • wait (bool) -- 当出现会话冲突时,是否需要等待

  • nowait_cb (AsyncCallable[(), None] | None) -- 指定了 wait=False 后,会话冲突时执行的回调

  • keep (bool) -- 会话在退出会话上下文后是否继续保持

Yield:

会话对象

返回类型:

_AsyncGeneratorContextManager[Session]

会话状态

async melobot.session.suspend(timeout: float | None = None) bool[源代码]

挂起当前会话

参数:

timeout (float | None) -- 挂起后再唤醒的超时时间, 为空则永不超时

返回:

如果为 False 则表明唤醒超时

返回类型:

bool

melobot.session.get_rule() Rule | None[源代码]

获取当前上下文中的会话规则

返回:

会话规则或空

返回类型:

Rule | None

melobot.session.get_session_store() SessionStore[源代码]

获取当前上下文中的会话存储

返回:

会话存储

返回类型:

SessionStore