登录

为小屏设备打造的
统一数据取数网关

电子墨水屏 / ESP32 盒子一次接入,持续获取彩票开奖、整点新闻播报、电台收听等数据内容; 数据源以插件形式可插拔,上线新内容不改框架、不重启服务、不升级固件。

# 设备取数:统一 JSON 信封,code=0 即成功(curl)
curl "https://api.wwzu.com/api/v1/data/lottery_ssq" \
  -H "X-Device-SN: XMBOX-2026-000001" -H "X-Device-Token: <device_token>"

平台组成

底座一次建设,设备、用户、开发者、运营各得其所

数据网关

统一取数路径

设备侧唯一入口:鉴权、订阅校验、缓存、限流、错误码全在网关收敛;两级缓存 + stale 降级,上游抖动不黑屏。

GET /api/v1/data/{source}
用户中心

注册绑定与订阅

邮箱注册登录、设备绑定(6 位确认码防误绑)、数据源订阅、调用量查询,全流程网页自助完成。

/portal/
管理后台

运营与审计

数据大盘、数据源审核启停、用户与设备管理、系统配置、公告发布;关键写操作全量审计留痕。

仅管理员访问
文档站

接入手册

快速开始、设备接入手册、数据源目录与各源接入指导、插件开发指南、公告与 FAQ,设备端适配约束一应俱全。

/handbook/
媒体与流式

音频分发

新闻播报 WAV/MP3 静态下载(/media,免解码直推 I2S);电台实时流式端点支持网页与播放器直连收听。

/media/** · /api/v1/stream/**
开放接口

统计与用量

开发者数据源调用与错误统计、用户级用量报表开放查询;平台公告经统一接口下发。

/api/v1/dev/** · /api/v1/notice

在线数据源

已上线 5 个数据源,插件规范持续扩展中

lottery_ssq

双色球开奖

最新期红蓝球、奖池与在售期号,开奖日 21:30 预热。

lottery_dlt

超级大乐透

最新期前区后区号码与销售期号,开奖日 21:30 预热。

news_hourly

整点新闻播报

每日 9:00~22:00 共 14 档:多源聚合 → 大模型播客化整理 → TTS 合成 WAV,整点即取即播。

radio_relay

电台转播

央广中国之声等国内电台 MP3 直连台,纯实时流式收听:网页/手机/播放器即点即播,上游地址全程隐藏。

comic_audio · 付费

听老故事

连环画语音整本连播:标签 → 故事 → 播放清单,音频经站内中转下发,邀请码兑换开通。

四步接入

新用户 5 分钟出数据(不含物流与开机)

注册登录

用户中心 /portal/ 邮箱注册(可选邮件验证码校验),登录后进入控制台。

绑定设备

在设备 web 页查看 SN,输入发起绑定;设备屏幕读 6 位确认码完成确认,防误绑。

订阅数据源

在「数据源订阅」页开通所需内容,设备经绑定账号继承授权。

设备出数据

设备开机激活后自动拉取源清单并轮询取数,统一信封 code=0 即成功。

面向开发者:上线一个数据源只要四步

继承基类 → 放入 plugins/ → 后台审核 → 上线。全程不改框架代码、不重启服务、不升级设备固件。

  1. 实现 BaseDataSource 的 meta() 与 fetch();
  2. 目录放入 plugins/,扫描登记自动生成待审核行;
  3. 管理后台审核、配置上游密钥与 cron 预热;
  4. 上线生效,设备即刻可订阅取数。

查看插件开发指南

# plugins/my_source/__init__.py 最小骨架
from app.core.plugins.base import BaseDataSource

class MySource(BaseDataSource):
    source_code = "my_source"
    name = "我的数据源"

    async def fetch(self, params):
        return {...}