欢迎来到RyhBotPythonSDK wiki!
项目地址: runoneall/RyhBotPythonSDK
RyhBotPythonSDK将帮助你更快地构建云湖机器人。它功能强大,语法简单且支持插件。
本文档将帮助你正确安装和使用RyhBotPythonSDK。
安装Python
RyhBotPythonSDK是使用Python编写的。为了使RyhBotPythonSDK能够在你的计算机上正确运行,请确保你已安装Python 3.10或以上的版本。你可以从 python.org
下载相应的安装包。
附加依赖
此外,RyhBotPythonSDK还使用了一些外部依赖库。请按照以下步骤安装它们:
- Flask: 你可以使用命令
pip3 install flask
或从 pypi.org
安装。 - 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 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 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=消息数量, )
|
后向
1 2 3 4 5 6
| Messages.After( chat_id="目标ID" chat_type="目标类型" message_id="消息ID", after=消息数量, )
|
管理看板(dashboard)
用户看板
文本
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 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)
|