HuskyChat Android · PWA-клиент чата huskynet.ru

Лёгкий клиент журнала-чата WordPress (тема Chat Theme): список диалогов, лента, отправка текста и файлов. Это статическая PWA в huskychat-lite/, не Gradle/Kotlin-приложение, несмотря на имя папки.
Сайт API сейчас зашит: https://huskynet.ru. Тема на сервере не меняется — только REST my-chat/v1 и Basic Auth (пароль приложения WP).
Связанные продукты: Chat Theme (сервер чата), не TotalMessenger и не MeshMessenger.
Возможности
- Вход: логин WP + Application Password (пробелы в пароле снимаются).
- Список чатов, поиск, непрочитанные, логотип чата.
- Локальные папки (группировка slug в
localStorage). - Лента сообщений, HTML с whitelist-санитайзером, посты «как Telegram» (текст/фото/видео).
- Отправка текста и вложения через
wp/v2/media. - Опрос ленты каждые 3 с, клиентский дедуп по
msg_id. - PWA:
manifest.json+ service worker (только статика, API не кешируется).
«Свои» пузыри определяются по source === huskychat_lite, отдельного user id в API нет.
Требования
- Хостинг со статикой (HTTPS) или локальный web-сервер. Открыть
index.htmlкакfile://обычно нельзя из‑за CORS. - На WP: CORS и Application Passwords; namespace
my-chat/v1. - Пароль приложения — не основной пароль аккаунта. В git не класть.
Установка и запуск
Скопировать huskychat-lite/ на хост, например /app/, открыть https://huskynet.ru/app/ (или свой HTTPS).
Локально:
cd "D:\AndroidProjects\HuskyChatAndroid\huskychat-lite"
npx --yes serve -p 4173
Затем открыть http://localhost:4173 (для боя с huskynet.ru нужен CORS на сайте).
Использование
- Login + Application Password → «Войти» или «Тест API».
- Список чатов → открыть диалог.
- Писать в композер (Enter без Shift — отправка), скрепка — файл.
- Папки: «+ Папка», ПКМ по чату — добавить/убрать из активной папки.
- Меню: настройки (логин только просмотр), выход.
Структура проекта
HuskyChatAndroid/
└── huskychat-lite/
├── index.html # UI + встроенные стили
├── manifest.json
├── sw.js
└── src/
├── api.js # REST, Basic Auth
├── app.js # экраны, polling, санитайзер
└── styles.css # в кеше SW; основная тема в index.html
Технологии
Vanilla JS (ES modules), Fetch, localStorage, Service Worker. Сборки нет.
API
| Вызов | Путь |
|——-|——|
| Список чатов | GET /wp-json/my-chat/v1/chats |
| Сообщения | GET /wp-json/my-chat/v1/chats/{slug}/messages |
| Отправка | POST …/messages (source: huskychat_lite) |
| Медиа | POST /wp-json/wp/v2/media |
Сервер отдаёт всю историю чата одним JSON — на длинных диалогах polling тяжёлый. Дельта-эндпоинта нет.
История изменений
Формат Keep a Changelog.
[Unreleased]
Added
- Корневая четвёрка документации; зафиксировано, что это PWA, не native Android.
[0.1.0]
Added
- HuskyChat Lite: auth, список чатов, лента, вложения, папки, SW.



