ErisPulse 2.4.6.dev4__tar.gz → 2.4.6.dev6__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.
Files changed (145) hide show
  1. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/.gitignore +7 -0
  2. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/PKG-INFO +157 -29
  3. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/README.md +155 -27
  4. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/pyproject.toml +12 -2
  5. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/create.py +227 -101
  6. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/create.pyi +1 -0
  7. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/install.py +0 -1
  8. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/utils/package_manager.py +43 -29
  9. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/utils/package_manager.pyi +5 -0
  10. erispulse-2.4.6.dev6/src/ErisPulse/Core/Bases/__init__.py +44 -0
  11. erispulse-2.4.6.dev6/src/ErisPulse/Core/Bases/__init__.pyi +19 -0
  12. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Bases/adapter.py +312 -3
  13. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Bases/adapter.pyi +136 -1
  14. erispulse-2.4.6.dev6/src/ErisPulse/Core/Bases/client.py +331 -0
  15. erispulse-2.4.6.dev6/src/ErisPulse/Core/Bases/client.pyi +272 -0
  16. erispulse-2.4.6.dev6/src/ErisPulse/Core/Bases/errors.py +130 -0
  17. erispulse-2.4.6.dev6/src/ErisPulse/Core/Bases/errors.pyi +118 -0
  18. erispulse-2.4.6.dev6/src/ErisPulse/Core/Bases/router.py +629 -0
  19. erispulse-2.4.6.dev6/src/ErisPulse/Core/Bases/router.pyi +432 -0
  20. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Bases/storage.py +8 -8
  21. erispulse-2.4.6.dev6/src/ErisPulse/Core/Bases/websocket.py +265 -0
  22. erispulse-2.4.6.dev6/src/ErisPulse/Core/Bases/websocket.pyi +194 -0
  23. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/base.py +44 -5
  24. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/base.pyi +1 -1
  25. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/command.py +30 -6
  26. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/command.pyi +1 -1
  27. erispulse-2.4.6.dev6/src/ErisPulse/Core/__init__.py +86 -0
  28. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/__init__.pyi +4 -0
  29. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/adapter.py +141 -26
  30. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/adapter.pyi +37 -0
  31. erispulse-2.4.6.dev6/src/ErisPulse/Core/client.py +785 -0
  32. erispulse-2.4.6.dev6/src/ErisPulse/Core/client.pyi +378 -0
  33. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/constants.py +95 -19
  34. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/router.py +943 -116
  35. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/router.pyi +164 -4
  36. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/storage.py +124 -1
  37. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/storage.pyi +3 -0
  38. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/loaders/adapter.py +16 -7
  39. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/loaders/module.py +104 -10
  40. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/loaders/module.pyi +1 -0
  41. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/loaders/strategy.py +1 -1
  42. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/runtime/__init__.py +18 -0
  43. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/runtime/__init__.pyi +1 -0
  44. erispulse-2.4.6.dev6/src/ErisPulse/runtime/config_schema.py +320 -0
  45. erispulse-2.4.6.dev6/src/ErisPulse/runtime/config_schema.pyi +128 -0
  46. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/runtime/context.py +19 -1
  47. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/runtime/context.pyi +3 -0
  48. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/sdk.py +5 -1
  49. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/sdk.pyi +2 -0
  50. erispulse-2.4.6.dev4/src/ErisPulse/Core/Bases/__init__.py +0 -18
  51. erispulse-2.4.6.dev4/src/ErisPulse/Core/Bases/__init__.pyi +0 -15
  52. erispulse-2.4.6.dev4/src/ErisPulse/Core/__init__.py +0 -47
  53. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/LICENSE +0 -0
  54. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/__init__.py +0 -0
  55. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/__init__.pyi +0 -0
  56. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/base.py +0 -0
  57. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/base.pyi +0 -0
  58. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/cli.py +0 -0
  59. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/cli.pyi +0 -0
  60. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/__init__.py +0 -0
  61. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/__init__.pyi +0 -0
  62. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/init.py +0 -0
  63. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/init.pyi +0 -0
  64. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/install.pyi +0 -0
  65. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/list.py +0 -0
  66. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/list.pyi +0 -0
  67. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/list_remote.py +0 -0
  68. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/list_remote.pyi +0 -0
  69. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/run.py +0 -0
  70. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/run.pyi +0 -0
  71. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/self_update.py +0 -0
  72. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/self_update.pyi +0 -0
  73. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/uninstall.py +0 -0
  74. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/uninstall.pyi +0 -0
  75. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/upgrade.py +0 -0
  76. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/commands/upgrade.pyi +0 -0
  77. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/console.py +0 -0
  78. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/console.pyi +0 -0
  79. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/registry.py +0 -0
  80. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/registry.pyi +0 -0
  81. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/utils/__init__.py +0 -0
  82. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/utils/__init__.pyi +0 -0
  83. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/utils/display.py +0 -0
  84. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/CLI/utils/display.pyi +0 -0
  85. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Bases/manager.py +0 -0
  86. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Bases/manager.pyi +0 -0
  87. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Bases/module.py +0 -0
  88. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Bases/module.pyi +0 -0
  89. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Bases/storage.pyi +0 -0
  90. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/__init__.py +0 -0
  91. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/__init__.pyi +0 -0
  92. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/message.py +0 -0
  93. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/message.pyi +0 -0
  94. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/message_builder.py +0 -0
  95. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/message_builder.pyi +0 -0
  96. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/meta.py +0 -0
  97. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/meta.pyi +0 -0
  98. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/notice.py +0 -0
  99. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/notice.pyi +0 -0
  100. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/request.py +0 -0
  101. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/request.pyi +0 -0
  102. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/session_type.py +0 -0
  103. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/session_type.pyi +0 -0
  104. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/wrapper.py +0 -0
  105. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/Event/wrapper.pyi +0 -0
  106. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/config.py +0 -0
  107. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/config.pyi +0 -0
  108. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/constants.pyi +0 -0
  109. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/lifecycle.py +0 -0
  110. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/lifecycle.pyi +0 -0
  111. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/logger.py +0 -0
  112. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/logger.pyi +0 -0
  113. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/module.py +0 -0
  114. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/Core/module.pyi +0 -0
  115. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/__init__.py +0 -0
  116. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/__init__.pyi +0 -0
  117. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/__main__.py +0 -0
  118. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/__main__.pyi +0 -0
  119. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/finders/__init__.py +0 -0
  120. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/finders/__init__.pyi +0 -0
  121. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/finders/adapter.py +0 -0
  122. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/finders/adapter.pyi +0 -0
  123. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/finders/bases/__init__.py +0 -0
  124. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/finders/bases/__init__.pyi +0 -0
  125. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/finders/bases/finder.py +0 -0
  126. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/finders/bases/finder.pyi +0 -0
  127. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/finders/module.py +0 -0
  128. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/finders/module.pyi +0 -0
  129. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/loaders/__init__.py +0 -0
  130. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/loaders/__init__.pyi +0 -0
  131. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/loaders/adapter.pyi +0 -0
  132. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/loaders/bases/__init__.py +0 -0
  133. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/loaders/bases/__init__.pyi +0 -0
  134. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/loaders/bases/loader.py +0 -0
  135. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/loaders/bases/loader.pyi +0 -0
  136. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/loaders/strategy.pyi +0 -0
  137. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/runtime/exceptions.py +0 -0
  138. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/runtime/exceptions.pyi +0 -0
  139. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/runtime/frame_config.py +0 -0
  140. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/runtime/frame_config.pyi +0 -0
  141. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/web_status/4xx.png +0 -0
  142. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/web_status/5xx.png +0 -0
  143. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/web_status/__init__.py +0 -0
  144. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/web_status/__init__.pyi +0 -0
  145. {erispulse-2.4.6.dev4 → erispulse-2.4.6.dev6}/src/ErisPulse/web_status/unknow.png +0 -0
@@ -9,6 +9,13 @@ logs/
9
9
  config.db*
10
10
  .website
11
11
 
12
+ # 敏感配置和数据文件
13
+ config/config.toml
14
+ config/config.db
15
+ config/config.db-journal
16
+ config/config.db-wal
17
+ config/config.db-shm
18
+
12
19
  # Byte-compiled / optimized / DLL files
13
20
  __pycache__/
14
21
  *.py[cod]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ErisPulse
3
- Version: 2.4.6.dev4
3
+ Version: 2.4.6.dev6
4
4
  Summary: ErisPulse 是一个模块化、可扩展的异步 Python SDK 框架,主要用于构建高效、可维护的机器人应用程序。
5
5
  Author-email: ErisDev <erisdev@88.com>
6
6
  Maintainer-email: "艾莉丝·格雷拉特(WSu2059)" <wsu2059@qq.com>
@@ -26,7 +26,7 @@ License: MIT License
26
26
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
27
  SOFTWARE.
28
28
  License-File: LICENSE
29
- Keywords: async,asyncio,bot,extensible,framework,modular,onebot,robot,sdk,telegram
29
+ Keywords: async,asyncio,bot,bot-framework,chatbot,email,extensible,framework,instant-messaging,kook,matrix,modular,multi-platform,onebot,onebot12,qq,robot,sdk,telegram,yunhu
30
30
  Classifier: Development Status :: 4 - Beta
31
31
  Classifier: Framework :: AsyncIO
32
32
  Classifier: Intended Audience :: Developers
@@ -79,7 +79,7 @@ Description-Content-Type: text/markdown
79
79
  </td>
80
80
  <td valign="middle">
81
81
 
82
- [English](README.en.md) | **简体中文** | [繁體中文](README.zh-TW.md)
82
+ [English](README.en.md) | **简体中文** | [繁體中文](README.zh-TW.md) | [日本語](README.ja.md) | [Русский](README.ru.md)
83
83
 
84
84
  # ErisPulse
85
85
 
@@ -155,34 +155,40 @@ Description-Content-Type: text/markdown
155
155
 
156
156
  ---
157
157
 
158
- ### 支持的适配器
158
+ ### 快速开始
159
159
 
160
- <div align="center">
161
- <!-- <img src=".github/assets/adapter-showcase.png" width="520" alt="适配器展示" /> -->
160
+ #### 一键安装脚本(推荐)
162
161
 
163
- 欢迎您贡献适配器!
162
+ 安装脚本会自动检测您的环境(Docker、Python、uv),引导选择最适合的安装方式,支持多语言(中文/English/日本語/Русский/繁體中文)。
164
163
 
165
- | 适配器 | 说明 |
166
- |--------|------|
167
- | <img src=".github/assets/adapter_logo/kook.svg" height="20" alt="Kook" /> [Kook](https://github.com/shanfishapp/ErisPulse-KookAdapter) | Kook(开黑啦)即时通讯平台 |
168
- | <img src=".github/assets/adapter_logo/matrix.svg" height="20" alt="Matrix" /> [Matrix](https://github.com/ErisPulse/ErisPulse-MatrixAdapter) | Matrix 去中心化通讯协议 |
169
- | <img src=".github/assets/adapter_logo/onebot.png" height="20" alt="OneBot" /> [OneBot11](https://github.com/ErisPulse/ErisPulse-OneBot11Adapter) | OneBot v11 通用机器人协议 |
170
- | <img src=".github/assets/adapter_logo/onebot.png" height="20" alt="OneBot" /> [OneBot12](https://github.com/ErisPulse/ErisPulse-OneBot12Adapter) | OneBot v12 标准协议 |
171
- | <img src=".github/assets/adapter_logo/qqbot.svg" height="20" alt="QQ" /> [QQ](https://github.com/ErisPulse/ErisPulse-QQBotAdapter) | QQ 官方机器人平台 |
172
- | <img src=".github/assets/adapter_logo/sandbox.png" height="20" alt="Sandbox" /> [沙箱](https://github.com/ErisPulse/ErisPulse-SandboxAdapter) | 网页端调试,无需接入真实平台 |
173
- | <img src=".github/assets/adapter_logo/telegram.svg" height="20" alt="Telegram" /> [Telegram](https://github.com/ErisPulse/ErisPulse-TelegramAdapter) | 全球性即时通讯平台 |
174
- | <img src=".github/assets/adapter_logo/email.svg" height="20" alt="Email" /> [邮件](https://github.com/ErisPulse/ErisPulse-EmailAdapter) | 邮件协议收发适配器 |
175
- | <img src=".github/assets/adapter_logo/yunhu.png" height="20" alt="Yunhu" /> [云湖](https://github.com/ErisPulse/ErisPulse-YunhuAdapter) | 企业级即时通讯平台(机器人接入) |
176
- | [云湖用户](https://github.com/wsu2059q/ErisPulse-YunhuUserAdapter) | 基于云湖用户协议的接入适配器 |
177
- | [花枫咖啡馆](https://github.com/ErisPulse/ErisPulse-Ideaura/) | Allons! \(・ω・) / |
164
+ Windows (PowerShell):
165
+ ```powershell
166
+ irm https://get.erisdev.com/install.ps1 -OutFile install.ps1; powershell -ExecutionPolicy Bypass -File install.ps1
167
+ ```
178
168
 
179
- 查看 [适配器详情介绍](docs/zh-CN/platform-guide/README.md)
169
+ macOS / Linux:
170
+ ```bash
171
+ curl -fsSL https://get.erisdev.com/install.sh -o install.sh && chmod +x install.sh && ./install.sh
172
+ ```
180
173
 
181
- </div>
174
+ <table>
175
+ <tr>
176
+ <td align="center" width="50%">
182
177
 
183
- ---
178
+ **Docker 安装演示**
184
179
 
185
- ### 快速开始
180
+ <video src="https://github.com/user-attachments/assets/a367a466-4678-46a9-b101-073a86388ede" controls width="100%"></video>
181
+
182
+ </td>
183
+ <td align="center" width="50%">
184
+
185
+ **pip 安装演示**
186
+
187
+ <video src="https://github.com/user-attachments/assets/a2df4009-dba6-411e-b79d-4454a168d063" controls width="100%"></video>
188
+
189
+ </td>
190
+ </tr>
191
+ </table>
186
192
 
187
193
  #### 使用 Docker (推荐)
188
194
 
@@ -279,19 +285,32 @@ bash <(curl -sL https://get-1panel.erisdev.com/install.sh)
279
285
  pip install ErisPulse
280
286
  ```
281
287
 
282
- <img src=".github/assets/docs/install_pip.gif" alt="安装演示" />
283
-
284
- > 如果您的 Python 版本低于 3.10,可以使用一键安装脚本自动配置环境。详见 [安装脚本说明](scripts/install/)。
288
+ > 也可以使用上方的一键安装脚本,自动检测环境并引导配置。
285
289
 
286
290
  #### 运行效果
287
291
 
288
292
 
289
293
  ##### 仪表盘:
290
- > 有一个gif,但是太大了没放到这里~ 抱歉~
291
- > [GIF演示](.github/assets/docs/dashboard-demo.gif)
294
+
295
+ [![在线演示](https://img.shields.io/badge/在线演示-Dashboard-FF6B9D?style=for-the-badge&logo=github&logoColor=white)](https://dashdemo.erisdev.com/)
296
+
297
+ > 💡 在线体验演示仪表盘:[DashDemo](https://dashdemo.erisdev.com/)
298
+
299
+ <table>
300
+ <tr>
301
+ <td width="50%">
292
302
 
293
303
  <img src=".github/assets/docs/dashboard.png" alt="Dashboard 演示" />
294
304
 
305
+ </td>
306
+ <td width="50%">
307
+
308
+ <video src="https://github.com/user-attachments/assets/157191c4-9a84-433c-b311-0c57e3a21151" controls width="100%"></video>
309
+
310
+ </td>
311
+ </tr>
312
+ </table>
313
+
295
314
 
296
315
  ##### 同一端代码,多个平台响应:
297
316
 
@@ -392,6 +411,115 @@ epsdk run main.py --reload
392
411
  - [快速开始指南](docs/zh-CN/quick-start.md)
393
412
  - [入门指南](docs/zh-CN/getting-started/)
394
413
 
414
+ #### 多轮对话示例
415
+
416
+ ErisPulse 内置了强大的多轮对话引擎,轻松实现引导式操作、信息收集等交互场景:
417
+
418
+ ```python
419
+ from ErisPulse.Core.Event import command, request
420
+
421
+ @command("register")
422
+ async def register_handler(event):
423
+ conv = event.conversation(timeout=60)
424
+
425
+ await conv.say("欢迎注册!")
426
+
427
+ # 多步骤收集用户信息,自动验证
428
+ data = await conv.collect([
429
+ {"key": "name", "prompt": "请输入姓名"},
430
+ {"key": "age", "prompt": "请输入年龄",
431
+ "validator": lambda e: e.get_text().strip().isdigit(),
432
+ "retry_prompt": "年龄必须是数字,请重新输入"},
433
+ ])
434
+
435
+ if data and await conv.confirm(f"确认注册?姓名: {data['name']}, 年龄: {data['age']}"):
436
+ # 通过 SendDSL 主动推送通知
437
+ await sdk.adapter.get(event.get_platform()).Send.To(
438
+ "user", event.get_user_id()
439
+ ).Text(f"注册成功!欢迎 {data['name']}")
440
+ # 或 await event.reply("注册成功!")
441
+
442
+ # 自动处理好友请求
443
+ @request.on_friend_request()
444
+ async def handle_friend_request(event):
445
+ user_name = event.get_user_nickname() or event.get_user_id()
446
+
447
+ # 同意请求
448
+ result = await event.approve()
449
+ if result.get("status") == "ok":
450
+ await event.reply(f"已自动通过好友请求,欢迎 {user_name}")
451
+ ```
452
+
453
+ <details>
454
+ <summary>查看更多 Conversation API(分支跳转 / 选择 / 持久化)</summary>
455
+
456
+ ```python
457
+ @command("quiz")
458
+ async def quiz_handler(event):
459
+ conv = event.conversation(timeout=30)
460
+
461
+ # 选项式问答
462
+ answer = await conv.choose("Python 的创造者是谁?", [
463
+ "Guido van Rossum",
464
+ "James Gosling",
465
+ "Dennis Ritchie",
466
+ ])
467
+
468
+ if answer == 0:
469
+ await conv.say("正确!")
470
+ elif answer is None:
471
+ await conv.say("超时了,下次再来吧!")
472
+ else:
473
+ await conv.say("错误了,正确答案是 Guido van Rossum")
474
+
475
+ @command("menu")
476
+ async def menu_handler(event):
477
+ conv = event.conversation(timeout=60)
478
+
479
+ # 分支跳转,构建复杂交互流程
480
+ @conv.branch("main")
481
+ async def main_menu():
482
+ await conv.say("=== 主菜单 ===\n1. 个人信息\n2. 设置\n3. 退出")
483
+ resp = await conv.wait()
484
+ if resp and resp.get_text().strip() == "1":
485
+ await conv.goto("profile")
486
+
487
+ @conv.branch("profile")
488
+ async def profile():
489
+ await conv.say("姓名: Alice\n0. 返回")
490
+ resp = await conv.wait()
491
+ if resp and resp.get_text().strip() == "0":
492
+ await conv.goto("main")
493
+
494
+ await conv.start()
495
+ ```
496
+
497
+ 详见 [Conversation 多轮对话](docs/zh-CN/advanced/conversation.md)
498
+
499
+ </details>
500
+
501
+ ---
502
+
503
+ ### 支持的适配器
504
+
505
+ 欢迎您贡献适配器!
506
+
507
+ | 适配器 | 说明 |
508
+ |--------|------|
509
+ | <img src=".github/assets/adapter_logo/kook.svg" height="20" alt="Kook" /> [Kook](https://github.com/shanfishapp/ErisPulse-KookAdapter) | Kook(开黑啦)即时通讯平台 |
510
+ | <img src=".github/assets/adapter_logo/matrix.svg" height="20" alt="Matrix" /> [Matrix](https://github.com/ErisPulse/ErisPulse-MatrixAdapter) | Matrix 去中心化通讯协议 |
511
+ | <img src=".github/assets/adapter_logo/onebot.png" height="20" alt="OneBot" /> [OneBot11](https://github.com/ErisPulse/ErisPulse-OneBot11Adapter) | OneBot v11 通用机器人协议 |
512
+ | <img src=".github/assets/adapter_logo/onebot.png" height="20" alt="OneBot" /> [OneBot12](https://github.com/ErisPulse/ErisPulse-OneBot12Adapter) | OneBot v12 标准协议 |
513
+ | <img src=".github/assets/adapter_logo/qqbot.svg" height="20" alt="QQ" /> [QQ](https://github.com/ErisPulse/ErisPulse-QQBotAdapter) | QQ 官方机器人平台 |
514
+ | <img src=".github/assets/adapter_logo/sandbox.png" height="20" alt="Sandbox" /> [沙箱](https://github.com/ErisPulse/ErisPulse-SandboxAdapter) | 网页端调试,无需接入真实平台 |
515
+ | <img src=".github/assets/adapter_logo/telegram.svg" height="20" alt="Telegram" /> [Telegram](https://github.com/ErisPulse/ErisPulse-TelegramAdapter) | 全球性即时通讯平台 |
516
+ | <img src=".github/assets/adapter_logo/email.svg" height="20" alt="Email" /> [邮件](https://github.com/ErisPulse/ErisPulse-EmailAdapter) | 邮件协议收发适配器 |
517
+ | <img src=".github/assets/adapter_logo/yunhu.png" height="20" alt="Yunhu" /> [云湖](https://github.com/ErisPulse/ErisPulse-YunhuAdapter) | 企业级即时通讯平台(机器人接入) |
518
+ | [云湖用户](https://github.com/wsu2059q/ErisPulse-YunhuUserAdapter) | 基于云湖用户协议的接入适配器 |
519
+ | [花枫咖啡馆](https://github.com/ErisPulse/ErisPulse-Ideaura/) | Allons! \(・ω・) / |
520
+
521
+ 查看 [适配器详情介绍](docs/zh-CN/platform-guide/README.md)
522
+
395
523
  ---
396
524
 
397
525
  ### 应用场景
@@ -7,7 +7,7 @@
7
7
  </td>
8
8
  <td valign="middle">
9
9
 
10
- [English](README.en.md) | **简体中文** | [繁體中文](README.zh-TW.md)
10
+ [English](README.en.md) | **简体中文** | [繁體中文](README.zh-TW.md) | [日本語](README.ja.md) | [Русский](README.ru.md)
11
11
 
12
12
  # ErisPulse
13
13
 
@@ -83,34 +83,40 @@
83
83
 
84
84
  ---
85
85
 
86
- ### 支持的适配器
86
+ ### 快速开始
87
87
 
88
- <div align="center">
89
- <!-- <img src=".github/assets/adapter-showcase.png" width="520" alt="适配器展示" /> -->
88
+ #### 一键安装脚本(推荐)
90
89
 
91
- 欢迎您贡献适配器!
90
+ 安装脚本会自动检测您的环境(Docker、Python、uv),引导选择最适合的安装方式,支持多语言(中文/English/日本語/Русский/繁體中文)。
92
91
 
93
- | 适配器 | 说明 |
94
- |--------|------|
95
- | <img src=".github/assets/adapter_logo/kook.svg" height="20" alt="Kook" /> [Kook](https://github.com/shanfishapp/ErisPulse-KookAdapter) | Kook(开黑啦)即时通讯平台 |
96
- | <img src=".github/assets/adapter_logo/matrix.svg" height="20" alt="Matrix" /> [Matrix](https://github.com/ErisPulse/ErisPulse-MatrixAdapter) | Matrix 去中心化通讯协议 |
97
- | <img src=".github/assets/adapter_logo/onebot.png" height="20" alt="OneBot" /> [OneBot11](https://github.com/ErisPulse/ErisPulse-OneBot11Adapter) | OneBot v11 通用机器人协议 |
98
- | <img src=".github/assets/adapter_logo/onebot.png" height="20" alt="OneBot" /> [OneBot12](https://github.com/ErisPulse/ErisPulse-OneBot12Adapter) | OneBot v12 标准协议 |
99
- | <img src=".github/assets/adapter_logo/qqbot.svg" height="20" alt="QQ" /> [QQ](https://github.com/ErisPulse/ErisPulse-QQBotAdapter) | QQ 官方机器人平台 |
100
- | <img src=".github/assets/adapter_logo/sandbox.png" height="20" alt="Sandbox" /> [沙箱](https://github.com/ErisPulse/ErisPulse-SandboxAdapter) | 网页端调试,无需接入真实平台 |
101
- | <img src=".github/assets/adapter_logo/telegram.svg" height="20" alt="Telegram" /> [Telegram](https://github.com/ErisPulse/ErisPulse-TelegramAdapter) | 全球性即时通讯平台 |
102
- | <img src=".github/assets/adapter_logo/email.svg" height="20" alt="Email" /> [邮件](https://github.com/ErisPulse/ErisPulse-EmailAdapter) | 邮件协议收发适配器 |
103
- | <img src=".github/assets/adapter_logo/yunhu.png" height="20" alt="Yunhu" /> [云湖](https://github.com/ErisPulse/ErisPulse-YunhuAdapter) | 企业级即时通讯平台(机器人接入) |
104
- | [云湖用户](https://github.com/wsu2059q/ErisPulse-YunhuUserAdapter) | 基于云湖用户协议的接入适配器 |
105
- | [花枫咖啡馆](https://github.com/ErisPulse/ErisPulse-Ideaura/) | Allons! \(・ω・) / |
92
+ Windows (PowerShell):
93
+ ```powershell
94
+ irm https://get.erisdev.com/install.ps1 -OutFile install.ps1; powershell -ExecutionPolicy Bypass -File install.ps1
95
+ ```
106
96
 
107
- 查看 [适配器详情介绍](docs/zh-CN/platform-guide/README.md)
97
+ macOS / Linux:
98
+ ```bash
99
+ curl -fsSL https://get.erisdev.com/install.sh -o install.sh && chmod +x install.sh && ./install.sh
100
+ ```
108
101
 
109
- </div>
102
+ <table>
103
+ <tr>
104
+ <td align="center" width="50%">
110
105
 
111
- ---
106
+ **Docker 安装演示**
112
107
 
113
- ### 快速开始
108
+ <video src="https://github.com/user-attachments/assets/a367a466-4678-46a9-b101-073a86388ede" controls width="100%"></video>
109
+
110
+ </td>
111
+ <td align="center" width="50%">
112
+
113
+ **pip 安装演示**
114
+
115
+ <video src="https://github.com/user-attachments/assets/a2df4009-dba6-411e-b79d-4454a168d063" controls width="100%"></video>
116
+
117
+ </td>
118
+ </tr>
119
+ </table>
114
120
 
115
121
  #### 使用 Docker (推荐)
116
122
 
@@ -207,19 +213,32 @@ bash <(curl -sL https://get-1panel.erisdev.com/install.sh)
207
213
  pip install ErisPulse
208
214
  ```
209
215
 
210
- <img src=".github/assets/docs/install_pip.gif" alt="安装演示" />
211
-
212
- > 如果您的 Python 版本低于 3.10,可以使用一键安装脚本自动配置环境。详见 [安装脚本说明](scripts/install/)。
216
+ > 也可以使用上方的一键安装脚本,自动检测环境并引导配置。
213
217
 
214
218
  #### 运行效果
215
219
 
216
220
 
217
221
  ##### 仪表盘:
218
- > 有一个gif,但是太大了没放到这里~ 抱歉~
219
- > [GIF演示](.github/assets/docs/dashboard-demo.gif)
222
+
223
+ [![在线演示](https://img.shields.io/badge/在线演示-Dashboard-FF6B9D?style=for-the-badge&logo=github&logoColor=white)](https://dashdemo.erisdev.com/)
224
+
225
+ > 💡 在线体验演示仪表盘:[DashDemo](https://dashdemo.erisdev.com/)
226
+
227
+ <table>
228
+ <tr>
229
+ <td width="50%">
220
230
 
221
231
  <img src=".github/assets/docs/dashboard.png" alt="Dashboard 演示" />
222
232
 
233
+ </td>
234
+ <td width="50%">
235
+
236
+ <video src="https://github.com/user-attachments/assets/157191c4-9a84-433c-b311-0c57e3a21151" controls width="100%"></video>
237
+
238
+ </td>
239
+ </tr>
240
+ </table>
241
+
223
242
 
224
243
  ##### 同一端代码,多个平台响应:
225
244
 
@@ -320,6 +339,115 @@ epsdk run main.py --reload
320
339
  - [快速开始指南](docs/zh-CN/quick-start.md)
321
340
  - [入门指南](docs/zh-CN/getting-started/)
322
341
 
342
+ #### 多轮对话示例
343
+
344
+ ErisPulse 内置了强大的多轮对话引擎,轻松实现引导式操作、信息收集等交互场景:
345
+
346
+ ```python
347
+ from ErisPulse.Core.Event import command, request
348
+
349
+ @command("register")
350
+ async def register_handler(event):
351
+ conv = event.conversation(timeout=60)
352
+
353
+ await conv.say("欢迎注册!")
354
+
355
+ # 多步骤收集用户信息,自动验证
356
+ data = await conv.collect([
357
+ {"key": "name", "prompt": "请输入姓名"},
358
+ {"key": "age", "prompt": "请输入年龄",
359
+ "validator": lambda e: e.get_text().strip().isdigit(),
360
+ "retry_prompt": "年龄必须是数字,请重新输入"},
361
+ ])
362
+
363
+ if data and await conv.confirm(f"确认注册?姓名: {data['name']}, 年龄: {data['age']}"):
364
+ # 通过 SendDSL 主动推送通知
365
+ await sdk.adapter.get(event.get_platform()).Send.To(
366
+ "user", event.get_user_id()
367
+ ).Text(f"注册成功!欢迎 {data['name']}")
368
+ # 或 await event.reply("注册成功!")
369
+
370
+ # 自动处理好友请求
371
+ @request.on_friend_request()
372
+ async def handle_friend_request(event):
373
+ user_name = event.get_user_nickname() or event.get_user_id()
374
+
375
+ # 同意请求
376
+ result = await event.approve()
377
+ if result.get("status") == "ok":
378
+ await event.reply(f"已自动通过好友请求,欢迎 {user_name}")
379
+ ```
380
+
381
+ <details>
382
+ <summary>查看更多 Conversation API(分支跳转 / 选择 / 持久化)</summary>
383
+
384
+ ```python
385
+ @command("quiz")
386
+ async def quiz_handler(event):
387
+ conv = event.conversation(timeout=30)
388
+
389
+ # 选项式问答
390
+ answer = await conv.choose("Python 的创造者是谁?", [
391
+ "Guido van Rossum",
392
+ "James Gosling",
393
+ "Dennis Ritchie",
394
+ ])
395
+
396
+ if answer == 0:
397
+ await conv.say("正确!")
398
+ elif answer is None:
399
+ await conv.say("超时了,下次再来吧!")
400
+ else:
401
+ await conv.say("错误了,正确答案是 Guido van Rossum")
402
+
403
+ @command("menu")
404
+ async def menu_handler(event):
405
+ conv = event.conversation(timeout=60)
406
+
407
+ # 分支跳转,构建复杂交互流程
408
+ @conv.branch("main")
409
+ async def main_menu():
410
+ await conv.say("=== 主菜单 ===\n1. 个人信息\n2. 设置\n3. 退出")
411
+ resp = await conv.wait()
412
+ if resp and resp.get_text().strip() == "1":
413
+ await conv.goto("profile")
414
+
415
+ @conv.branch("profile")
416
+ async def profile():
417
+ await conv.say("姓名: Alice\n0. 返回")
418
+ resp = await conv.wait()
419
+ if resp and resp.get_text().strip() == "0":
420
+ await conv.goto("main")
421
+
422
+ await conv.start()
423
+ ```
424
+
425
+ 详见 [Conversation 多轮对话](docs/zh-CN/advanced/conversation.md)
426
+
427
+ </details>
428
+
429
+ ---
430
+
431
+ ### 支持的适配器
432
+
433
+ 欢迎您贡献适配器!
434
+
435
+ | 适配器 | 说明 |
436
+ |--------|------|
437
+ | <img src=".github/assets/adapter_logo/kook.svg" height="20" alt="Kook" /> [Kook](https://github.com/shanfishapp/ErisPulse-KookAdapter) | Kook(开黑啦)即时通讯平台 |
438
+ | <img src=".github/assets/adapter_logo/matrix.svg" height="20" alt="Matrix" /> [Matrix](https://github.com/ErisPulse/ErisPulse-MatrixAdapter) | Matrix 去中心化通讯协议 |
439
+ | <img src=".github/assets/adapter_logo/onebot.png" height="20" alt="OneBot" /> [OneBot11](https://github.com/ErisPulse/ErisPulse-OneBot11Adapter) | OneBot v11 通用机器人协议 |
440
+ | <img src=".github/assets/adapter_logo/onebot.png" height="20" alt="OneBot" /> [OneBot12](https://github.com/ErisPulse/ErisPulse-OneBot12Adapter) | OneBot v12 标准协议 |
441
+ | <img src=".github/assets/adapter_logo/qqbot.svg" height="20" alt="QQ" /> [QQ](https://github.com/ErisPulse/ErisPulse-QQBotAdapter) | QQ 官方机器人平台 |
442
+ | <img src=".github/assets/adapter_logo/sandbox.png" height="20" alt="Sandbox" /> [沙箱](https://github.com/ErisPulse/ErisPulse-SandboxAdapter) | 网页端调试,无需接入真实平台 |
443
+ | <img src=".github/assets/adapter_logo/telegram.svg" height="20" alt="Telegram" /> [Telegram](https://github.com/ErisPulse/ErisPulse-TelegramAdapter) | 全球性即时通讯平台 |
444
+ | <img src=".github/assets/adapter_logo/email.svg" height="20" alt="Email" /> [邮件](https://github.com/ErisPulse/ErisPulse-EmailAdapter) | 邮件协议收发适配器 |
445
+ | <img src=".github/assets/adapter_logo/yunhu.png" height="20" alt="Yunhu" /> [云湖](https://github.com/ErisPulse/ErisPulse-YunhuAdapter) | 企业级即时通讯平台(机器人接入) |
446
+ | [云湖用户](https://github.com/wsu2059q/ErisPulse-YunhuUserAdapter) | 基于云湖用户协议的接入适配器 |
447
+ | [花枫咖啡馆](https://github.com/ErisPulse/ErisPulse-Ideaura/) | Allons! \(・ω・) / |
448
+
449
+ 查看 [适配器详情介绍](docs/zh-CN/platform-guide/README.md)
450
+
323
451
  ---
324
452
 
325
453
  ### 应用场景
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "ErisPulse"
7
- version = "2.4.6-dev.4"
7
+ version = "2.4.6-dev.6"
8
8
  description = "ErisPulse 是一个模块化、可扩展的异步 Python SDK 框架,主要用于构建高效、可维护的机器人应用程序。"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -24,11 +24,21 @@ keywords = [
24
24
  "sdk",
25
25
  "framework",
26
26
  "robot",
27
+ "chatbot",
28
+ "bot-framework",
27
29
  "onebot",
30
+ "onebot12",
28
31
  "telegram",
32
+ "qq",
33
+ "multi-platform",
29
34
  "extensible",
30
35
  "modular",
31
- "asyncio"
36
+ "asyncio",
37
+ "instant-messaging",
38
+ "kook",
39
+ "yunhu",
40
+ "matrix",
41
+ "email",
32
42
  ]
33
43
 
34
44
  classifiers = [