38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
"""
|
||
入口 —— 取数据 → 渲染 → 推送到设备。
|
||
|
||
用法:
|
||
python3 main.py # 渲染并推送(默认取设备列表第一个)
|
||
python3 main.py --render-only # 只渲染生成图片,不推送(output/dashboard.png)
|
||
|
||
可用环境变量覆盖配置:ZECTRIX_API_KEY、ZECTRIX_DEVICE_ID
|
||
"""
|
||
import argparse
|
||
|
||
import config
|
||
from data import get_dashboard_data
|
||
from renderer import DashboardRenderer
|
||
|
||
|
||
def main():
|
||
parser = argparse.ArgumentParser(description="墨水屏仪表盘:渲染并推送")
|
||
parser.add_argument("--render-only", action="store_true", help="只渲染,不推送")
|
||
args = parser.parse_args()
|
||
|
||
data = get_dashboard_data()
|
||
path = DashboardRenderer().render_to_file(data, config.OUTPUT_PATH)
|
||
print(f"[渲染] 已生成 {path}")
|
||
|
||
if args.render_only:
|
||
return
|
||
|
||
from pusher import push_image
|
||
device_id, resp = push_image(path)
|
||
print(f"[推送] 设备 {device_id} 成功:{resp.get('data')}")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
main()
|