3.2 KiB (Stored with Git LFS)
3.2 KiB (Stored with Git LFS)
Python SDK
这是一个用于开发Stream Dock插件的Python SDK,提供了简单易用的API接口和完整的开发工具链。通过WebSocket实现与Stream Dock软件的实时通信。
功能特性
- WebSocket通信:提供与Stream Dock软件的实时通信功能
- 事件处理:支持按钮点击、设置更改等事件的处理
- 定时器:支持设置定时任务和周期性任务
- 日志系统:集成了日志记录功能,方便调试和问题排查
项目结构
.
├── src/ # 源代码目录
│ ├── core/ # 核心功能模块
│ │ ├── action.py # 动作类,处理按钮事件
│ │ ├── plugin.py # 插件核心类,管理WebSocket连接
│ │ ├── timer.py # 定时器功能
│ │ ├── logger.py # 日志管理
│ │ └── action_factory.py # 动作工厂类
│ └── actions/ # 具体动作实现
├── requirements.txt # 项目依赖
├── main.py # 主程序入口
├── main.spec # PyInstaller配置文件
└── README.md # 项目说明
开发环境设置
- 创建虚拟环境:
python -m venv venv
- 激活虚拟环境:
- Windows:
venv\Scripts\activate
- Unix/MacOS:
source venv/bin/activate
- 安装依赖:
pip install -r requirements.txt
插件开发指南
创建自定义动作
- 在
src/actions目录下创建新的动作类:
from src.core.action import Action
class Custom(Action):
def __init__(self, action, context, settings, plugin):
super().__init__(action, context, settings, plugin)
def on_key_up(self, payload):
# 处理按钮点击事件
self.set_title("按钮被点击")
self.set_state(0)
- 使用定时器功能:
def update_display(self):
# 更新显示内容
current_time = time.strftime("%H:%M:%S")
self.set_title(current_time)
# 设置1秒间隔的定时器
self.plugin.timer.set_interval(self.context, 1000, self.update_display)
日志记录
from src.core.logger import Logger
# 记录信息
Logger.info("操作成功")
# 记录错误
Logger.error("发生错误")
打包发布
使用PyInstaller打包成可执行文件:
pyinstaller main.spec
打包后的文件将生成在dist目录下。
注意
如果您遇到了模块没有找到的错误,这个是因为action_factory.py里面用到了importlib.import_module来动态加载actions下的类,而PyInstaller在打包的时候是静态分析代码,仅在action里面使用的模块PyInstaller会认为没有使用这些模块,也就不会把模块打包到exe里面,我们直接把相关模块手动添加到hiddenimports里面就可以了
开发规范
- 使用类型注解确保代码类型安全
- 遵循PEP 8编码规范
- 编写单元测试确保代码质量
- 使用内置的日志系统记录关键信息
许可证
本项目采用 MIT 许可证。详见 LICENSE 文件。