Outage Data Ua
Публічне сховище даних про планові відключення електроенергії в Україні.
Install / Use
npx skills add Baskerville42/outage-data-uaInstalls into whichever agent you are using.
README
outage-data-ua
Публічне сховище та інструменти для автоматичного збирання, парсингу, візуалізації (HTML) і автоматичної генерації PNG‑зображень графіків планових/аварійних відключень електроенергії в Україні.
Проєкт отримує дані з відкритих вебсторінок постачальників та зберігає їх у JSON «як є» у директорії data/. Далі ці дані відображаються у фіксованому шаблоні HTML і конвертуються у PNG‑зображення, які зберігаються у images/<region>/gpv-x-x.png.
Формат даних
Кожен регіон зберігається у файлі data/<region>.json. Базова структура (скорочено):
{
"regionId": "kyiv",
"regionAffiliation": "м. Київ",
"lastUpdated": "2025-11-06T11:41:56.430Z",
"fact": { "updateFact": "06.11.2025 09:09" },
"preset": { "updateFact": "04.11.2025 18:00" },
"lastUpdateStatus": { "status": "parsed", "ok": true, "code": 200, "message": null, "at": "2025-11-06T11:41:56.430Z", "attempt": 5 },
"meta": { "schemaVersion": "1.0.0", "contentHash": "..." }
}
preset— планові відключення на тиждень для кожної групи (тижневий шаблон). Зберігається «як є», без нормалізації структури.fact— фактичні/аварійні відключення на сьогодні та завтра для кожної групи. Також зберігається «як є».- Кожен із об’єктів (
factіpreset) містить полеupdateFactтаupdate— дата й час, на які інформація актуальна (значення з джерела; парсер не змінює формат, зазвичайdd.MM.yyyy HH:mmу часовій зоні Europe/Kyiv). - Блок
metaмінімальний: тількиschemaVersionтаcontentHash(хеш вмістуfact+preset). - У разі помилки парсингу парсер оновлює лише
lastUpdateStatus(наприклад,status = "error", код 422), не стираючи попередніfact/preset. - Актуальний шаблон структури — у файлі
templates/json/data.json.
Детальні приклади полів preset і fact — у поточних JSON у data/.
Зображення
- Згенеровані PNG зображення зберігаються у директоріях
images/<regionId>/. - Формат назв файлів:
gpv-x-x.png, наприклад:images/kyiv-region/gpv-1-2.pngвідповідає групіGPV1.2. - У репозиторії присутні актуальні зображення для доступних регіонів; вони оновлюються разом із даними.
Обмеження та антибот
- У CI тепер використовується безголовий браузер (Playwright, Chromium), який виконує JS і встановлює cookies — це допомагає коректно проходити антибот‑перевірки та отримувати «справжній» HTML.
- Якщо замість сторінки приходить WAF‑HTML, парсер виставляє код помилки (напр., 422) і зберігає наявні дані.
Ліцензія та юридичні застереження
- Дані збираються з публічно доступних джерел. Дотримуйтеся умов використання сайтів.
- Репозиторій не претендує на право власності на первинні дані; див. LICENSE (MIT).
Related Skills
node-connect
385.6kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
blender-python-addon
40.5kBlender Python add-on rules for operators, panels, properties, registration, testing, and API-safe scripting
flutter-development-guidelines-cursorrules-prompt-file
40.5kCursor rules for Flutter development with MVVM architecture, Riverpod state management, Material widgets, and Dart style guidelines.
commit-push-pr
140.7kCommit, push, and open a PR
