# 第一个检查器
Lyrebird支持灵活的检查器编写、调试和运行。
# 环境准备
安装Lyrebird
pip3 install lyrebird
在检查器的默认路径~/.lyrebird/checkers/下,新建一个检查器。
# 编写检查器
第一个检查器的目的是实时检查Lyrebird的flow频道中图片数据的大小。
# 监听频道
在消息总线的频道中,flow频道包含了所有的网络请求,监听flow频道以获得设备的网络请求。
from lyrebird import event
# 使用装饰器监听flow频道,当flow频道中出现新数据时,会回调img_size方法
@event('flow')
def img_size(msg):
pass
# 数据校验
flow频道中出现新的数据时会回调检查器中的方法,并传入频道中的消息,此时可对该消息进行校验。
from lyrebird import event
# 检测阈值
THRESHOLD_IMG_SIZE = 1024
@event('flow')
def img_size(msg):
if msg['flow']['size'] > THRESHOLD_IMG_SIZE:
# 检测到数据中的size不满足预期值
pass
return
# 报警
当检测到不满足预期的数据时,可调用Lyrebird消息总线的issue接口触发报警。
from lyrebird import event
THRESHOLD_IMG_SIZE = 1024
@event('flow')
def img_size(msg):
if msg['flow']['size'] > THRESHOLD_IMG_SIZE:
event.issue('Image size is beyond expectations!')
return
# 调试
Lyrebird支持检查器的调试,调试时配置启动参数,使用--script命令指定启动时加载的脚本。
lyrebird --script [filename]
以VSCode为例,检查器debug配置如下。
{
"version": "0.2.0",
"configurations": [
{
"name": "checker",
"type": "pythonExperimental",
"request": "launch",
"program": "${workspaceFolder}/venv/bin/lyrebird",
"args": [
"--script",
"${file}"
],
"console": "integratedTerminal"
}
]
}
# 开始调试
在所调试脚本为打开窗口时,在调试窗口选择checker,点击开始按钮即可开始调试。
至此,第一个检查器就编写完成了,启动Lyrebird,体验检查器功能吧!Have fun!