feat: mod platform integration (showcase, cloud slots, cloud screen, server-side unlink)

Mod:
- %config slots/pull/publish/unpublish for the four cloud slots
- %showcase [new|popular] [page] | load | copy, with number references
- %cloud opens a CloudScreen (link/unlink, slots, showcase) on vanilla widgets
- %config load IDDQD works offline (everything off except ChinaHat)
- default backend URL is now the production gateway
- shared ConfigRemoteApplier and ClientThread replace per-class copies
- %link unlink revokes the link on the server, then clears the local token

Backend:
- POST /device/revoke (RFC 7009 style self-revoke, always 204), rate limited
  to 10/min per IP at the gateway

CloudScreen is compiled but has not been opened in a running client yet.
This commit is contained in:
loki5512344 2026-10-02 09:23:44 +02:00
parent e00ea8eb11
commit 44353e893c
Signed by: boba
GPG key ID: 253067914055423B
24 changed files with 894 additions and 52 deletions

View file

@ -3258,6 +3258,8 @@
"setting.kineticlyrics.time_offset_ms.desc": "Сдвиг тайминга текста относительно слышимого звука (мс). Плюс = текст позже. Позиция плеера опережает динамики (Bluetooth: 0.5–1с+), дефолтный минус это компенсирует. Подстрой через debug, если всё ещё плывёт.",
"setting.kineticlyrics.arc_spread.desc": "Насколько широко вокруг обзора могут появляться строки; автоматически ограничивается реальным горизонтальным FOV.",
"command.link.description": "Привязывает клиент к аккаунту LoVisual или проверяет/отвязывает текущую привязку.",
"command.showcase.description": "Просматривает публичную витрину конфигов, примеряет конфиг или копирует его в облачный слот.",
"command.cloud.description": "Открывает экран облака: привязка аккаунта, четыре слота конфигов и витрина.",
"setting.main_config.menuLayout": "Стиль главного меню",
"setting.main_config.menuLayout.option.orbs": "Круги",
"setting.main_config.menuLayout.option.hero": "Hero",