RyhBotPythonSDK

欢迎来到RyhBotPythonSDK wiki!

项目地址: runoneall/RyhBotPythonSDK

RyhBotPythonSDK将帮助你更快地构建云湖机器人。它功能强大,语法简单且支持插件。

本文档将帮助你正确安装和使用RyhBotPythonSDK。

安装Python

RyhBotPythonSDK是使用Python编写的。为了使RyhBotPythonSDK能够在你的计算机上正确运行,请确保你已安装Python 3.10或以上的版本。你可以从 python.org 下载相应的安装包。

附加依赖

此外,RyhBotPythonSDK还使用了一些外部依赖库。请按照以下步骤安装它们:

  1. Flask: 你可以使用命令 pip3 install flask 或从 pypi.org 安装。
  2. Requests: 你可以使用命令 pip3 install requests 或从 pypi.org 安装。

关于功能

RyhBotPythonSDK主要由三个部分组成:消息、服务器、插件

  • 消息:消息负责发送信息。它封装了云湖公 API,可以方便快捷地调用。
  • 服务器:服务器负责接收信息。它将在0.0.0.0启动一个网络服务,以获取云湖服务器发送的消息。
  • 插件:插件负责加载插件。当项目启动时,它将自动加载Plugins目录中的插件。(注意:此功能在旧版本中不可用。要确定此功能是否可用,可以检查RyhBotPythonSDK目录中是否存在Plugin.py)

这三种功能可以独立使用。它们之间没有依赖关系。

消息用法

导入模块

1
from RyhBotPythonSDK import Message

设置消息令牌(token)

1
Message.Token = "你可以在云湖后台找到你的消息令牌"

发送消息

1
Send = Message.Send()

文本

1
2
3
4
5
Send.Text(
recvId="目标ID",
recvType="目标类型",
text="文本",
)

Markdown

1
2
3
4
5
Send.Markdown(
recvId="目标ID",
recvType="目标类型",
markdown="Markdown语句",
)

图片

1
2
3
4
5
Send.Image(
recvId="目标ID",
recvType="目标类型",
imageUrl="图片链接",
)

文件

1
2
3
4
5
6
Send.File(
recvId="目标ID",
recvType="目标类型",
fileName="文件名称",
fileUrl="文件链接",
)

编辑消息

1
Edit = Message.Edit()

文本

1
2
3
4
5
6
Edit.Text(
msgId="消息ID",
recvId="目标ID",
recvType="目标类型",
new_text="新的文本",
)

Markdown

1
2
3
4
5
6
Edit.Markdown(
msgId="消息ID",
recvId="目标ID",
recvType="目标类型",
new_markdown="新的Markdown",
)

图片

1
2
3
4
5
6
Edit.Image(
msgId="消息ID",
recvId="目标ID",
recvType="目标类型",
new_image_url="新的图片链接",
)

文件

1
2
3
4
5
6
7
Edit.File(
msgId="消息ID",
recvId="目标ID",
recvType="目标类型",
new_file_name="新的文件名称",
new_file_url="新的文件链接",
)

获取消息

1
Messages = Message.Messages()

前向

1
2
3
4
5
Messages.Before(
chat_id="目标ID",
chat_type="目标类型",
before=消息数量, #Int
)

后向

1
2
3
4
5
6
Messages.After(
chat_id="目标ID"
chat_type="目标类型"
message_id="消息ID", # 基于某条消息,获取后续的消息
after=消息数量, # 整型
)

管理看板(dashboard)

用户看板

1
Board = Message.Board()

文本

1
2
3
4
5
Board.Text(
recvId="目标ID"
recvType="目标类型"
text="看板文本"
)

Markdown

1
2
3
4
5
Board.Markdown(
recvId="目标ID"
recvType="目标类型"
markdown="看板Markdown文本"
)

Html

1
2
3
4
5
Board.Html(
recvId="目标ID"
recvType="目标类型"
html="看板HTML文本"
)

取消看板

1
2
3
4
Board.Dismiss(
recvId="目标ID"
recvType="目标类型"
)

全局看板

1
BoardAll = Message.Board.All()

文本

1
2
3
BoardAll.Text(
text="看板文本"
)

Markdown

1
2
3
BoardAll.Markdown(
markdown="看板Markdown文本"
)

Html

1
2
3
BoardAll.Html(
html="看板HTML文本"
)

取消看板

1
BoardAll.Dismiss()

撤回消息

1
2
3
4
5
6
7
Delete = Message.Delete

Delete(
msgId="消息ID"
chatid="目标ID"
chattype="目标类型"
)

服务器用法

导入模块

1
from RyhBotPythonSDK import Server

接收普通消息

1
2
3
@Server.Message.Normal
def NormalHandle(data):
# 你的代码实现

接收指令消息

1
2
3
@Server.Message.Command
def CommandHandle(data):
# 你的代码实现

添加机器人消息

1
2
3
@Server.Message.BotFollowed
def BotFollowedHandle(data):
# 你的代码实现

删除机器人消息

1
2
3
@Server.Message.BotUnFollowed
def BotUnFollowedHandle(data):
# 你的代码实现

机器人设置消息

1
2
3
@Server.Message.BotSettings
def BotSettingsHandle(data):
# 你的代码实现

用户加入消息

1
2
3
@Server.Message.GroupJoin
def GroupJoinHandle(data):
# 你的代码实现

用户退出消息

1
2
3
@Server.Message.GroupLeave
def GroupLeaveHandle(data):
# 你的代码实现

启动服务

1
2
3
4
5
6
7
# 你的代码实现

Server.Start(
host = "Host"
port = Port # 整型
debug = (True / False) # 是否启用调试模式
)

插件用法

此SDK内置了两个插件和一个插件管理器

插件管理器

此管理器是一个Python文件。使用Python运行它以获取使用说明。python3 plugin-tool.py

导入插件

1
from RyhBotPythonSDK.Plugin import Plugin

从网址安装插件

1
python3 plugin-tool.py install <链接>
  • <链接>: 资源地址,一个以.zip格式结尾的压缩包

从本地文件安装插件

1
python3 plugin-tool.py loadfile <文件路径>
  • <文件路径>: 文件路径。当你无法通过互联网下载插件时,请使用此命令从本地文件安装它。它是一个以.zip格式结尾的压缩包。

显示插件信息

1
python3 plugin-tool.py info <插件名称>
  • <插件名称>: 插件名称,使用此命令获取插件的详细信息

列出已安装的插件

1
python3 plugin-tool.py list

列出所有已安装的插件

移除插件

1
python3 plugin-tool.py remove <plugin name>
  • <plugin name>: 插件名称,使用此命令移除插件

Html插件

一个内置插件。为RyhBotPythonSDK提供Html消息支持

设置令牌(token)

1
Plugin.Html.SendHtml.Token="你可以在云湖后台找到你的消息令牌"

发送Html消息

1
2
3
4
5
Plugin.Html.SendHtml.SendHtml(
recvId="目标ID",
recvType="目标类型",
html='HTML文本'
)

Sqlite插件

一个内置插件,使Sqlite数据库的使用更加简单直观

导入模块

1
2
from RyhBotPythonSDK.Plugin import Plugin
SqlitePlugin = Plugin.Sqlite

连接数据库

1
2
database, cursor = SqlitePlugin.db.connect('你的sqlite文件路径')
SqlitePlugin.Execute.database = database

创建表

1
2
3
4
5
6
7
8
9
10
11
SqlitePlugin.Execute.create_table(
cursor,
table_info = {
'name':'表名',
'item': [
{'id': 'INTEGER PRIMARY KEY AUTOINCREMENT'}, # 主键
{'text': 'TEXT'}, # 字段
... # 更多字段
]
}
)

插入数据

1
2
3
4
5
6
7
8
9
10
SqlitePlugin.Execute.insert(
cursor,
insert_info = {
'name':'表名',
'item': [
{'text': '"aaa"'}, # 字段
... # 更多字段
]
}
)

删除表

1
2
3
4
SqlitePlugin.Execute.drop_table(
cursor,
table_name = '表名'
)

运行命令

1
2
3
4
5
result = SqlitePlugin.Execute.run_command(
cursor,
"SQL命令"
)
print(result)

删除数据

1
2
3
4
5
SqlitePlugin.Execute.delete(
cursor,
table_name = '表名',
condition = 'id=1' # 筛选条件,可选
)

更新数据

1
2
3
4
5
6
7
8
9
10
11
SqlitePlugin.Execute.update(
cursor,
update_info = {
'name': '表名',
'item': [
{'text': '"更新测试"'}, # 字段
... # 更多字段
]
},
condition = 'id=1' # 筛选条件,可选
)

查询数据

1
2
3
4
5
6
result = SqlitePlugin.Execute.select(
cursor,
table_name = '表名',
condition = 'id=1' # 筛选条件,可选
)
print(result)

断开数据库连接

1
SqlitePlugin.db.disconnect(cursor, database)

RyhBotPythonSDK
https://runoneall.github.io/article/RyhBotPythonSDK.html
作者
Runoneall
发布于
2024年8月15日
许可协议