ErisPulse 2.3.8__tar.gz → 2.3.9.dev1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/PKG-INFO +2 -2
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/pyproject.toml +2 -2
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Bases/adapter.py +25 -2
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Bases/adapter.pyi +9 -1
- erispulse-2.3.9.dev1/src/ErisPulse/Core/Event/__init__.py +85 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Event/__init__.pyi +1 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Event/command.py +18 -18
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Event/command.pyi +1 -0
- erispulse-2.3.9.dev1/src/ErisPulse/Core/Event/session_type.py +418 -0
- erispulse-2.3.9.dev1/src/ErisPulse/Core/Event/session_type.pyi +196 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Event/wrapper.py +6 -76
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Event/wrapper.pyi +2 -15
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/router.py +54 -39
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/router.pyi +12 -5
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/storage.py +1 -17
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/storage.pyi +1 -17
- erispulse-2.3.8/src/ErisPulse/Core/Event/__init__.py +0 -41
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/.gitignore +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/LICENSE +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/README.md +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/__init__.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/__init__.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/base.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/base.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/cli.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/cli.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/commands/__init__.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/commands/__init__.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/commands/init.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/commands/init.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/commands/install.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/commands/install.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/commands/list.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/commands/list.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/commands/list_remote.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/commands/list_remote.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/commands/run.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/commands/run.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/commands/self_update.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/commands/self_update.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/commands/uninstall.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/commands/uninstall.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/commands/upgrade.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/commands/upgrade.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/console.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/console.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/registry.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/registry.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/utils/__init__.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/utils/__init__.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/utils/package_manager.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/CLI/utils/package_manager.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Bases/__init__.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Bases/__init__.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Bases/manager.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Bases/manager.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Bases/module.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Bases/module.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Event/base.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Event/base.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Event/message.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Event/message.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Event/meta.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Event/meta.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Event/notice.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Event/notice.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Event/request.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/Event/request.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/__init__.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/__init__.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/adapter.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/adapter.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/config.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/config.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/lifecycle.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/lifecycle.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/logger.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/logger.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/module.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/Core/module.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/__init__.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/__init__.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/__main__.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/__main__.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/finders/__init__.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/finders/__init__.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/finders/adapter.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/finders/adapter.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/finders/bases/__init__.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/finders/bases/__init__.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/finders/bases/finder.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/finders/bases/finder.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/finders/cli.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/finders/cli.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/finders/module.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/finders/module.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/loaders/__init__.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/loaders/__init__.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/loaders/adapter.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/loaders/adapter.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/loaders/bases/__init__.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/loaders/bases/__init__.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/loaders/bases/loader.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/loaders/bases/loader.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/loaders/module.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/loaders/module.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/loaders/strategy.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/loaders/strategy.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/runtime/__init__.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/runtime/__init__.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/runtime/cleanup.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/runtime/cleanup.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/runtime/exceptions.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/runtime/exceptions.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/runtime/frame_config.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/runtime/frame_config.pyi +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/sdk.py +0 -0
- {erispulse-2.3.8 → erispulse-2.3.9.dev1}/src/ErisPulse/sdk.pyi +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ErisPulse
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.9.dev1
|
|
4
4
|
Summary: ErisPulse 是一个模块化、可扩展的异步 Python SDK 框架,主要用于构建高效、可维护的机器人应用程序。
|
|
5
|
-
Author-email:
|
|
5
|
+
Author-email: ErisDev <erisdev@88.com>
|
|
6
6
|
Maintainer-email: "艾莉丝·格雷拉特(WSu2059)" <wsu2059@qq.com>
|
|
7
7
|
License: MIT License
|
|
8
8
|
|
|
@@ -4,14 +4,14 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ErisPulse"
|
|
7
|
-
version = "2.3.
|
|
7
|
+
version = "2.3.9-dev.1"
|
|
8
8
|
description = "ErisPulse 是一个模块化、可扩展的异步 Python SDK 框架,主要用于构建高效、可维护的机器人应用程序。"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
11
11
|
license = { file = "LICENSE" }
|
|
12
12
|
|
|
13
13
|
authors = [
|
|
14
|
-
{ name = "
|
|
14
|
+
{ name = "ErisDev", email = "erisdev@88.com" }
|
|
15
15
|
]
|
|
16
16
|
|
|
17
17
|
maintainers = [
|
|
@@ -117,18 +117,41 @@ class SendDSL:
|
|
|
117
117
|
"""
|
|
118
118
|
设置消息目标
|
|
119
119
|
|
|
120
|
+
支持自动类型转换:
|
|
121
|
+
- 当 target_type 为 "private" 时,自动转换为 "user"
|
|
122
|
+
- 当只提供 target_id(字符串或数字)时,默认推断为 "user"
|
|
123
|
+
|
|
120
124
|
:param target_type: 目标类型(可选)
|
|
121
125
|
:param target_id: 目标ID(可选)
|
|
122
126
|
:return: SendDSL实例
|
|
123
127
|
|
|
124
128
|
:example:
|
|
129
|
+
>>> # 标准用法
|
|
125
130
|
>>> adapter.Send.To("user", "123").Text("Hello")
|
|
126
|
-
>>>
|
|
131
|
+
>>> # 自动转换 private → user
|
|
132
|
+
>>> adapter.Send.To("private", "123").Text("Hello")
|
|
133
|
+
>>> # 简化形式(默认推断为 user)
|
|
134
|
+
>>> adapter.Send.To("123").Text("Hello")
|
|
127
135
|
"""
|
|
136
|
+
from ..Event.session_type import is_standard_type
|
|
137
|
+
|
|
138
|
+
# 处理简化形式:只提供一个参数作为 target_id
|
|
128
139
|
if target_id is None and target_type is not None:
|
|
129
140
|
target_id = target_type
|
|
130
141
|
target_type = None
|
|
131
|
-
|
|
142
|
+
|
|
143
|
+
# 如果没有明确指定 target_type,尝试推断
|
|
144
|
+
if target_type is None:
|
|
145
|
+
# 将 target_id 作为字符串处理
|
|
146
|
+
if target_id is not None:
|
|
147
|
+
# 默认推断为 user(对应 private)
|
|
148
|
+
# 这里我们假设如果只提供 ID,通常是发送给用户
|
|
149
|
+
target_type = "user"
|
|
150
|
+
|
|
151
|
+
# 自动转换 private → user
|
|
152
|
+
if target_type == "private":
|
|
153
|
+
target_type = "user"
|
|
154
|
+
|
|
132
155
|
return self.__class__(self._adapter, target_type, target_id, self._account_id)
|
|
133
156
|
|
|
134
157
|
def Using(self, account_id: Union[str, int]) -> 'SendDSL':
|
|
@@ -65,13 +65,21 @@ class SendDSL:
|
|
|
65
65
|
"""
|
|
66
66
|
设置消息目标
|
|
67
67
|
|
|
68
|
+
支持自动类型转换:
|
|
69
|
+
- 当 target_type 为 "private" 时,自动转换为 "user"
|
|
70
|
+
- 当只提供 target_id(字符串或数字)时,默认推断为 "user"
|
|
71
|
+
|
|
68
72
|
:param target_type: 目标类型(可选)
|
|
69
73
|
:param target_id: 目标ID(可选)
|
|
70
74
|
:return: SendDSL实例
|
|
71
75
|
|
|
72
76
|
:example:
|
|
77
|
+
>>> # 标准用法
|
|
73
78
|
>>> adapter.Send.To("user", "123").Text("Hello")
|
|
74
|
-
>>>
|
|
79
|
+
>>> # 自动转换 private → user
|
|
80
|
+
>>> adapter.Send.To("private", "123").Text("Hello")
|
|
81
|
+
>>> # 简化形式(默认推断为 user)
|
|
82
|
+
>>> adapter.Send.To("123").Text("Hello")
|
|
75
83
|
"""
|
|
76
84
|
...
|
|
77
85
|
def Using(self: object, account_id: Union[(str, int)]) -> SendDSL:
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"""
|
|
2
|
+
ErisPulse 事件处理模块
|
|
3
|
+
|
|
4
|
+
提供统一的事件处理接口,支持命令、消息、通知、请求和元事件处理
|
|
5
|
+
|
|
6
|
+
{!--< tips >!--}
|
|
7
|
+
1. 所有事件处理都基于OneBot12标准事件格式
|
|
8
|
+
2. 通过装饰器方式注册事件处理器
|
|
9
|
+
3. 支持优先级和条件过滤
|
|
10
|
+
{!--< /tips >!--}
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from .command import command
|
|
14
|
+
from .message import message
|
|
15
|
+
from .notice import notice
|
|
16
|
+
from .request import request
|
|
17
|
+
from .meta import meta
|
|
18
|
+
from .wrapper import Event
|
|
19
|
+
from .session_type import (
|
|
20
|
+
# 标准类型常量
|
|
21
|
+
RECEIVE_TYPES,
|
|
22
|
+
SEND_TYPES,
|
|
23
|
+
|
|
24
|
+
# 自定义类型注册
|
|
25
|
+
register_custom_type,
|
|
26
|
+
unregister_custom_type,
|
|
27
|
+
|
|
28
|
+
# 类型获取方法
|
|
29
|
+
get_id_field,
|
|
30
|
+
get_receive_type,
|
|
31
|
+
convert_to_send_type,
|
|
32
|
+
convert_to_receive_type,
|
|
33
|
+
|
|
34
|
+
# 自动推断方法
|
|
35
|
+
infer_receive_type,
|
|
36
|
+
get_target_id,
|
|
37
|
+
get_send_type_and_target_id,
|
|
38
|
+
|
|
39
|
+
# 工具方法
|
|
40
|
+
is_standard_type,
|
|
41
|
+
is_valid_send_type,
|
|
42
|
+
get_standard_types,
|
|
43
|
+
get_send_types,
|
|
44
|
+
clear_custom_types,
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
def _clear_all_handlers():
|
|
48
|
+
"""
|
|
49
|
+
{!--< internal-use >!--}
|
|
50
|
+
清除所有已注册的事件处理器和命令
|
|
51
|
+
"""
|
|
52
|
+
# 清除命令处理器
|
|
53
|
+
command._clear_commands()
|
|
54
|
+
|
|
55
|
+
# 清除各类事件处理器
|
|
56
|
+
message._clear_message_handlers()
|
|
57
|
+
notice._clear_notice_handlers()
|
|
58
|
+
request._clear_request_handlers()
|
|
59
|
+
meta._clear_meta_handlers()
|
|
60
|
+
|
|
61
|
+
__all__ = [
|
|
62
|
+
"command",
|
|
63
|
+
"message",
|
|
64
|
+
"notice",
|
|
65
|
+
"request",
|
|
66
|
+
"meta",
|
|
67
|
+
"Event",
|
|
68
|
+
# 会话类型管理
|
|
69
|
+
"RECEIVE_TYPES",
|
|
70
|
+
"SEND_TYPES",
|
|
71
|
+
"register_custom_type",
|
|
72
|
+
"unregister_custom_type",
|
|
73
|
+
"get_id_field",
|
|
74
|
+
"get_receive_type",
|
|
75
|
+
"convert_to_send_type",
|
|
76
|
+
"convert_to_receive_type",
|
|
77
|
+
"infer_receive_type",
|
|
78
|
+
"get_target_id",
|
|
79
|
+
"get_send_type_and_target_id",
|
|
80
|
+
"is_standard_type",
|
|
81
|
+
"is_valid_send_type",
|
|
82
|
+
"get_standard_types",
|
|
83
|
+
"get_send_types",
|
|
84
|
+
"clear_custom_types",
|
|
85
|
+
]
|
|
@@ -22,3 +22,4 @@ from .notice import notice
|
|
|
22
22
|
from .request import request
|
|
23
23
|
from .meta import meta
|
|
24
24
|
from .wrapper import Event
|
|
25
|
+
from .session_type import RECEIVE_TYPES, SEND_TYPES, register_custom_type, unregister_custom_type, get_id_field, get_receive_type, convert_to_send_type, convert_to_receive_type, infer_receive_type, get_target_id, get_send_type_and_target_id, is_standard_type, is_valid_send_type, get_standard_types, get_send_types, clear_custom_types
|
|
@@ -14,6 +14,7 @@ ErisPulse 命令处理模块
|
|
|
14
14
|
from .base import BaseEventHandler
|
|
15
15
|
from .. import adapter, logger
|
|
16
16
|
from ...runtime import get_event_config
|
|
17
|
+
from .session_type import get_send_type_and_target_id, infer_receive_type
|
|
17
18
|
from typing import Callable, Union, List, Dict, Any, Optional, Awaitable
|
|
18
19
|
import asyncio
|
|
19
20
|
import inspect
|
|
@@ -180,15 +181,15 @@ class CommandHandler:
|
|
|
180
181
|
"""
|
|
181
182
|
platform = event.get("platform")
|
|
182
183
|
user_id = event.get("user_id")
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
target_id =
|
|
184
|
+
|
|
185
|
+
# 使用会话类型管理模块获取发送类型和目标ID
|
|
186
|
+
send_type, target_id = get_send_type_and_target_id(event, platform)
|
|
186
187
|
|
|
187
188
|
# 发送提示消息(如果提供)
|
|
188
189
|
if prompt and platform:
|
|
189
190
|
try:
|
|
190
191
|
adapter_instance = getattr(adapter, platform)
|
|
191
|
-
await adapter_instance.Send.To(
|
|
192
|
+
await adapter_instance.Send.To(send_type, target_id).Text(prompt)
|
|
192
193
|
except Exception as e:
|
|
193
194
|
logger.warning(f"发送提示消息失败: {e}")
|
|
194
195
|
|
|
@@ -273,9 +274,9 @@ class CommandHandler:
|
|
|
273
274
|
|
|
274
275
|
# 检查是否必须@机器人
|
|
275
276
|
if self.must_at_bot:
|
|
276
|
-
detail_type = event
|
|
277
|
+
detail_type = infer_receive_type(event)
|
|
277
278
|
# 一对一场景(private或user)不需要检查@
|
|
278
|
-
if detail_type not in ("private", "user"
|
|
279
|
+
if detail_type not in ("private", "user"):
|
|
279
280
|
message_segments = event.get("message", [])
|
|
280
281
|
self_id = event.get("self", {}).get("user_id")
|
|
281
282
|
|
|
@@ -404,8 +405,9 @@ class CommandHandler:
|
|
|
404
405
|
"""
|
|
405
406
|
platform = event.get("platform")
|
|
406
407
|
user_id = event.get("user_id")
|
|
407
|
-
|
|
408
|
-
|
|
408
|
+
|
|
409
|
+
# 使用会话类型管理模块获取发送类型和目标ID
|
|
410
|
+
send_type, target_id = get_send_type_and_target_id(event, platform)
|
|
409
411
|
|
|
410
412
|
wait_key = f"{platform}:{user_id}:{target_id}"
|
|
411
413
|
|
|
@@ -441,14 +443,13 @@ class CommandHandler:
|
|
|
441
443
|
"""
|
|
442
444
|
try:
|
|
443
445
|
platform = event.get("platform")
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
target_id = group_id or user_id
|
|
446
|
+
|
|
447
|
+
# 使用会话类型管理模块获取发送类型和目标ID
|
|
448
|
+
send_type, target_id = get_send_type_and_target_id(event, platform)
|
|
448
449
|
|
|
449
450
|
if platform and hasattr(adapter, platform):
|
|
450
451
|
adapter_instance = getattr(adapter, platform)
|
|
451
|
-
await adapter_instance.Send.To(
|
|
452
|
+
await adapter_instance.Send.To(send_type, target_id).Text("权限不足,无法执行该命令")
|
|
452
453
|
except Exception as e:
|
|
453
454
|
logger.error(f"发送权限拒绝消息失败: {e}")
|
|
454
455
|
|
|
@@ -464,14 +465,13 @@ class CommandHandler:
|
|
|
464
465
|
"""
|
|
465
466
|
try:
|
|
466
467
|
platform = event.get("platform")
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
target_id = group_id or user_id
|
|
468
|
+
|
|
469
|
+
# 使用会话类型管理模块获取发送类型和目标ID
|
|
470
|
+
send_type, target_id = get_send_type_and_target_id(event, platform)
|
|
471
471
|
|
|
472
472
|
if platform and hasattr(adapter, platform):
|
|
473
473
|
adapter_instance = getattr(adapter, platform)
|
|
474
|
-
await adapter_instance.Send.To(
|
|
474
|
+
await adapter_instance.Send.To(send_type, target_id).Text(f"命令执行出错: {error}")
|
|
475
475
|
except Exception as e:
|
|
476
476
|
logger.error(f"发送命令错误消息失败: {e}")
|
|
477
477
|
|
|
@@ -20,6 +20,7 @@ ErisPulse 命令处理模块
|
|
|
20
20
|
from .base import BaseEventHandler
|
|
21
21
|
from .. import adapter, logger
|
|
22
22
|
from ...runtime import get_event_config
|
|
23
|
+
from .session_type import get_send_type_and_target_id, infer_receive_type
|
|
23
24
|
from typing import Callable, Union, List, Dict, Any, Optional, Awaitable
|
|
24
25
|
import asyncio
|
|
25
26
|
import inspect
|