rpi: календарь — правила записи, оповещения об изменениях Оли, напоминания; TODO: календарь Полины

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
gilfanovr
2026-10-12 10:04:19 +03:00
co-authored by Claude Opus 5.5
parent 7d31435262
commit b69afd89a1
2 changed files with 5 additions and 2 deletions
+2 -1
View File
@@ -33,7 +33,7 @@ _Собрано 2026-10-11._
## 🧩 Новые возможности Astra (разберём позже) ## 🧩 Новые возможности Astra (разберём позже)
- [ ] 2. Интеграция с двумя календарями — личным и рабочим - [x] 2. Интеграция с двумя календарями — личным и рабочим (2026-10-12: скилл `google`; рабочий — только занятость, см. `servers/rpi.md`)
- [ ] 3. Скилл для работы с PDF с книгами - [ ] 3. Скилл для работы с PDF с книгами
- [ ] 4. Скилл составления и слежения за планами обучения - [ ] 4. Скилл составления и слежения за планами обучения
- [ ] 5. Скилл для собственных проектов - [ ] 5. Скилл для собственных проектов
@@ -41,6 +41,7 @@ _Собрано 2026-10-11._
- [ ] 7. Скрипты для работы с чатами — выжимки и слежение за интересующей информацией - [ ] 7. Скрипты для работы с чатами — выжимки и слежение за интересующей информацией
- [ ] 8. Собрать промежуточные точки доступа (mesh D-Link M15 ×2, E15) и настроить скиллы для других устройств - [ ] 8. Собрать промежуточные точки доступа (mesh D-Link M15 ×2, E15) и настроить скиллы для других устройств
- [ ] 12. Опознать `.46` (`ea:08:6d:8c:59:56`, iOS без имени) и подтвердить, что `.13` — iPhone жены - [ ] 12. Опознать `.46` (`ea:08:6d:8c:59:56`, iOS без имени) и подтвердить, что `.13` — iPhone жены
- [ ] 13. Подключить календарь для Полины
## 📅 По расписанию ## 📅 По расписанию
+3 -1
View File
@@ -232,4 +232,6 @@ Docker CE 29.9 + Compose v5.6 из репо download.docker.com (в Debian ст
- Аккаунт `ruslan.gilfanov@gmail.com`; OAuth-клиент Desktop в Google Cloud проекте `astra` (Calendar API + Gmail API), приложение опубликовано (In production, не проверено Google — для личного использования). Branding: домашняя `https://www.ruzzy.dev/astra/index.html`, политика `https://www.ruzzy.dev/astra/privacy.html` (fr1, `stacks/www-ruzzy/`), authorized domain `ruzzy.dev`, без логотипа (логотип требует верификации). - Аккаунт `ruslan.gilfanov@gmail.com`; OAuth-клиент Desktop в Google Cloud проекте `astra` (Calendar API + Gmail API), приложение опубликовано (In production, не проверено Google — для личного использования). Branding: домашняя `https://www.ruzzy.dev/astra/index.html`, политика `https://www.ruzzy.dev/astra/privacy.html` (fr1, `stacks/www-ruzzy/`), authorized domain `ruzzy.dev`, без логотипа (логотип требует верификации).
- Права токена: `calendar` + `gmail.readonly`. Секреты — `/etc/astra-google/` (root:astra 2770; `client.json` 640, `token.json` 640 — refresh-токен), в git нет. Вход (PKCE, redirect `http://localhost`): `google-auth url` → «Разрешить» → адрес `http://localhost/?code=…` из браузера → `google-auth code 'АДРЕС'`. Отозвать — myaccount.google.com/permissions. - Права токена: `calendar` + `gmail.readonly`. Секреты — `/etc/astra-google/` (root:astra 2770; `client.json` 640, `token.json` 640 — refresh-токен), в git нет. Вход (PKCE, redirect `http://localhost`): `google-auth url` → «Разрешить» → адрес `http://localhost/?code=…` из браузера → `google-auth code 'АДРЕС'`. Отозвать — myaccount.google.com/permissions.
- Календари: личный (запись), «Семейная группа» (запись — только по явной просьбе), праздники Кипра (`ru.cy#holiday`, чтение; США убраны 2026-10-12), **рабочий `rgilfanov@walletteam.org` — только занятость** (freeBusyReader через `freeBusy`): админ walletteam запрещает внешний доступ к подробностям; обход (секретный iCal, копирование) — не делать. `gcal` пишет только в календари с ролью owner/writer. - Календари: личный (запись), «Семейная группа» (запись — только по явной просьбе), праздники Кипра (`ru.cy#holiday`, чтение; США убраны 2026-10-12), **рабочий `rgilfanov@walletteam.org` — только занятость** (freeBusyReader через `freeBusy`): админ walletteam запрещает внешний доступ к подробностям; обход (секретный iCal, копирование) — не делать. `gcal` пишет только в календари с ролью owner/writer.
- Доступ: владелец — всё; `129703290` — календарь, почта закрыта; Поле — ни календарь, ни почту (правила в `codex/AGENTS.md`). - **Правила записи (владелец 2026-10-12):** менять календарь по запросу могут владелец и Оля (`129703290`); `gcal` пишет **только в основной личный** и **только в свободное время** (add/move отказывают при пересечении с любым событием, включая рабочую занятость). Каждое изменение — с `--by <TG_ID>`; журнал `/var/lib/astra-google/changes.log`; изменения Оли → оповещение владельцу через очередь `/var/lib/astra-google/outbox/` (astra не видит токен бота; отправляет таймер root). Состояние — `/var/lib/astra-google/` (root:astra 2770).
- **Напоминания владельцу** (только 607015): `gcal-remind.timer` (каждую минуту, root) — «⏰ Через 5 мин» для всех событий личного и семейного календарей (рабочая занятость и праздники — нет), дедуп `reminded.json`; `gcal-digest.timer` (10:00 Asia/Nicosia) — важные события завтра (врач/стоматолог/анализы/парикмахерская/поездки/рейсы/отели — по словам, или флаг `--important` в `extendedProperties.private.important`). Юниты — `codex/skills/google/systemd/` в astra-bot. Проверено 2026-10-12: тестовое событие от Оли → оповещение в 10:02 и напоминание за 5 мин в 10:03.
- Доступ: владелец — всё; Оля (`129703290`) — календарь (чтение, запись в личный в свободное время), почта закрыта; Поле — ни календарь, ни почту (правила в `codex/AGENTS.md`).