renovate-bot
5dd7b6d1e4
chore(deps): update redis docker tag to v8.10.1
ci / lint-prettier (pull_request) Successful in 10s
ci / lint-ruff (pull_request) Successful in 5s
ci / lint-yaml (pull_request) Successful in 7s
ci / lint-dockerfiles (pull_request) Successful in 5s
ci / validate (pull_request) Successful in 6s
ci / lint-prettier (push) Successful in 7s
ci / lint-ruff (push) Successful in 5s
ci / lint-yaml (push) Successful in 7s
ci / lint-dockerfiles (push) Successful in 4s
ci / validate (push) Successful in 5s
renovate-ci / validate-renovate (pull_request) Successful in 9s
ci / build (pull_request) Has been skipped
ci / build (push) Has been skipped
ci / deploy-userbot-panel (push) Has been skipped
ci / deploy-userbot-panel (pull_request) Has been skipped
2026-09-14 09:44:39 +00:00
renovate-bot
f5b5ecaafa
chore(deps): update mcr.microsoft.com/playwright docker tag to v1.63.0
ci / lint-prettier (pull_request) Successful in 8s
ci / lint-ruff (pull_request) Successful in 4s
ci / lint-yaml (pull_request) Successful in 6s
ci / lint-dockerfiles (pull_request) Successful in 4s
ci / validate (pull_request) Successful in 5s
ci / lint-prettier (push) Successful in 7s
ci / lint-ruff (push) Successful in 3s
ci / lint-yaml (push) Successful in 6s
ci / lint-dockerfiles (push) Successful in 4s
ci / validate (push) Successful in 5s
renovate-ci / validate-renovate (pull_request) Successful in 8s
ci / build (pull_request) Has been skipped
ci / build (push) Has been skipped
ci / deploy-userbot-panel (pull_request) Has been skipped
ci / deploy-userbot-panel (push) Has been skipped
2026-09-14 09:01:58 +00:00
forust and Copilot
23ed72826a
chore(images): pin service image updates
...
Replace floating service images with reviewable tags or digests.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-09-14 09:16:01 +02:00
forust
6715f9e9af
chore(k8s): raise resource limits for glance, edu and crowdsec
2026-09-14 01:29:28 +02:00
forust and Copilot
726b3ee544
fix(edu): run redis as statefulset
...
ci / deploy-userbot-panel (push) Has been skipped
ci / lint-ruff (push) Successful in 5s
ci / lint-yaml (push) Successful in 7s
ci / build (push) Successful in 3s
ci / lint-prettier (push) Successful in 11s
ci / lint-dockerfiles (push) Successful in 4s
ci / validate (push) Successful in 5s
Keep the existing Redis PVC and data while migrating the edu-master workload from Deployment to StatefulSet.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-09-10 23:35:59 +02:00
forust
85f05c26cb
feat(edu): activate k8s management for edu-master
2026-09-10 00:55:22 +02:00
forust
68630eb773
fix(edu): read diary event times directly from DOM, drop 25 AJAX clicks
...
ci / lint-prettier (push) Successful in 9s
ci / lint-ruff (push) Successful in 6s
ci / lint-yaml (push) Successful in 10s
ci / lint-dockerfiles (push) Successful in 7s
ci / validate (push) Successful in 6s
ci / build (push) Has been skipped
ci / deploy-userbot-panel (push) Has been skipped
_collect_event_times re-clicked every a.event-link and waited ~3s per
event for a visible span.data, but the calendar embeds all times in
div.event-full-info[data-event-full-info-id] span.data already. The old
loop took ~109s for 25 events and collected 0 (original divs stay
sf-hidden), effectively hanging /diary. Now a single evaluate reads all
times (~3.7s), parsing HH:MM from p.date span.data.
2026-09-10 00:31:04 +02:00
forust
dad9cf2104
feat(edu): parse event times in /diary and drop weekend days
...
ci / lint-prettier (push) Successful in 9s
ci / lint-ruff (push) Successful in 4s
ci / lint-yaml (push) Successful in 6s
ci / lint-dockerfiles (push) Successful in 5s
ci / validate (push) Successful in 6s
ci / build (push) Has been skipped
ci / deploy-userbot-panel (push) Has been skipped
- fetch each event's time via Playwright (click event-link, read span.data, close fancybox) and render as 'title (HH:MM)'
- '08:00' placeholder renders as localized 'unknown' (time_unknown key in ru/uk/en)
- diary week view shows Mon-Fri only (title ends at Friday)
- diary month view skips Sat/Sun by weekday_idx with name-based fallback
- schedule keyboard drops Sat/Sun day buttons
2026-09-10 00:05:56 +02:00
forust
60886e8be2
style(edu): ruff-format webinar-checker/checker.py
ci / lint-prettier (push) Successful in 13s
ci / lint-ruff (push) Successful in 4s
ci / lint-yaml (push) Successful in 7s
ci / lint-dockerfiles (push) Successful in 5s
ci / validate (push) Successful in 6s
ci / build (push) Has been skipped
ci / deploy-userbot-panel (push) Has been skipped
2026-09-09 23:47:04 +02:00
forust
4528321225
fix(edu): add TZ to .env.example
2026-09-09 11:46:35 +02:00
forust
b246a3dea1
fix(edu): review findings for checker.py i18n — group chat language via resolve_lang/chat: keys (default uk), weekday normalization with _norm_day + logging, drop dead translation keys, html.escape, single lang lookup, distinct whitelist emoji
2026-09-09 11:44:17 +02:00
forust and assistant
4c59a2d2fe
lang(edu): translate k8s manifest comments to English only
...
- restore-seed-job.yaml.example: translate runbook to English
- secrets.yaml.example: translate section headers to English
- webinar-checker.yaml: translate initContainer dependency-order comments to English
Co-authored-by: assistant
2026-09-09 10:46:36 +02:00
forust
30e6f05584
fix(edu_master): satisfy ruff in schedule scraper
...
- rename ambiguous loop var, merge nested if (E741, SIM102)
- use tempfile.gettempdir() for debug dump (S108)
- drop unused total_lessons assignment (F841)
2026-09-06 20:37:18 +02:00
forust
bc8d74fd28
feat(schedule): per-user class picker, parser fixes
...
ci / lint-prettier (push) Successful in 8s
ci / lint-ruff (push) Failing after 5s
ci / lint-yaml (push) Successful in 7s
ci / lint-dockerfiles (push) Successful in 4s
ci / validate (push) Successful in 4s
ci / build (push) Has been skipped
- fix parser: capture tr attrs via finditer, strip HTML comments before
cell parse (was leaving '-->' in subject names)
- store class choice in redis: user:{id}:schedule_class (private) and
chat:{id}:schedule_class (groups, admin-only via /setclass)
- /schedule renders day for stored class, /setclass sets it directly
- drop teacher emoji, format grade as "N клас"
2026-09-06 16:17:48 +02:00
forust
d2d4efb0d7
feat: add schedule scraper for lessons table
...
ci / lint-prettier (push) Successful in 9s
ci / lint-ruff (push) Failing after 4s
ci / lint-yaml (push) Successful in 7s
ci / lint-dockerfiles (push) Successful in 6s
ci / validate (push) Successful in 7s
ci / build (push) Has been skipped
Add /schedule command to scrape edu.edu.vn.ua/lessons/table via Playwright.
Inline keyboard flow: pick weekday (with today/tomorrow shortcuts),
then pick class. Cache 5h per user. Parse subjects/notes/teachers,
multi-lesson cells (hr-separated).
2026-09-06 15:46:41 +02:00
forust
b752bf88bd
feat: add edu_master k8s manifests for k0s migration
ci / lint-prettier (push) Successful in 10s
ci / lint-ruff (push) Successful in 4s
ci / lint-yaml (push) Successful in 7s
ci / lint-dockerfiles (push) Successful in 5s
ci / validate (push) Successful in 5s
ci / build (push) Successful in 35s
2026-09-06 15:00:51 +02:00
forust
a2df8504f5
Fix DL3013: pin pip version in webinar-checker Dockerfile
lint / prettier (push) Successful in 8s
lint / ruff (push) Successful in 4s
lint / yamllint (push) Successful in 6s
lint / hadolint (push) Successful in 4s
validate / yaml (push) Successful in 6s
validate / k8s (push) Successful in 4s
2026-06-21 22:07:44 +02:00
forust
fb43306571
Fix all lint issues: Dockerfiles (DL3015/DL3013/DL4006) + Ruff (173→0 errors)
...
lint / prettier (push) Successful in 8s
lint / ruff (push) Successful in 5s
lint / yamllint (push) Successful in 7s
lint / hadolint (push) Failing after 4s
validate / yaml (push) Successful in 5s
validate / k8s (push) Successful in 5s
Dockerfile fixes:
- edu_master/phpsessid-bot: add --no-install-recommends, pin pip versions
- edu_master/webinar-checker: pin pip versions with --no-cache-dir
- userbot: add SHELL with pipefail for pipe operations
Ruff fixes (173 → 0):
- W293/W291/W292: whitespace clean via ruff format
- N806: camelCase → snake_case (anilist, safone, hearts, flux, etc.)
- ARG001/ARG002: prefix unused params with _
- SIM115: use context managers for file I/O
- SIM117: combine nested with statements
- S608: noqa on SQL f-strings (module name is validated)
- E402/N812/N817: import fixes
- B023: pass loop variable as argument
- I001: auto-sorted imports
- syntax: fixed = vs == in dtek_notif/main.py
2026-06-21 22:01:51 +02:00
forust
227e5fda27
chore: batch lint fixes across userbot and edu_master
...
- S113: Add timeout=10 to all requests calls (74 fixes)
- E722: Replace bare except: with except Exception:
- B904: Replace redundant re-raise with bare raise
- E402: Add noqa for intentional late imports after import_library()
- S102/S307/S310/S311/S603/S605/S606/S607/S108: Add noqa for intentional usage
- F601: Fix duplicate dict key in unsplash.py
- N802: Rename ReplyCheck -> reply_check with backward compat alias
- N813: Rename bs -> BS in icons.py
- B007/B020: Rename loop var _j in animations.py
- SIM102: Collapse nested if in autofwd.py
- SIM113: Use enumerate() in calculator.py
- A002: Add noqa for builtin shadowing in admlist.py
- F811: Add noqa for cohere redefinition
- edu_master: Fix ARG001, S108, S110, SIM117, apply --unsafe-fixes
- Add modules_list.txt with full module inventory
2026-06-19 15:36:25 +02:00
forust
2de6131ba7
chore: apply prettier formatting across compose files and configs
2026-06-19 12:03:11 +02:00
forust
a68c01a68f
chore: add gitea container registry compose support for localy builded apps
Deploy to Server / deploy (push) Has been cancelled
2026-06-07 14:37:57 +02:00
forust
ea286e117d
feat: add diary (/diary) command with calendar parsing via Playwright
...
Deploy to Server / deploy (push) Has been cancelled
- Parse school diary calendar HTML table for daily/weekly/monthly views
- Cache diary data with 5-minute TTL
- Inline keyboard for today/tomorrow/week/month selection
- Ukrainian month/weekday names and formatting
2026-05-27 19:39:45 +02:00
forust
d7c05fd058
fix: use webinar links to detect duplicates, supress logspam from telegram bot
2026-01-19 17:01:23 +01:00
forust
81592b6142
feat: add group support for webinar notifier
2026-01-13 00:24:04 +01:00
forust
9480576966
fix: update bots' code to match .env keys
2026-01-12 15:33:42 +01:00
forust
6cb49be951
chore: update gitignore, add translations
2025-11-27 18:58:17 +01:00
forust
3bcabcce4b
feat: notify on new webinar, storing N last webinars in redis
2025-11-27 16:33:15 +01:00
forust
a54b7b000f
fix: add timeout for playwright to load page and debug response saving
2025-11-27 15:50:12 +01:00
forust
380288d103
fix: port conflicts
2025-11-26 22:55:16 +01:00
forust
8fae8bf75d
feat: add admin commands to manage whitelist, extended webinar reporting
2025-11-26 22:25:47 +01:00
forust
d4e0e7f37a
feat: telegram webianr checker bot
2025-11-26 22:12:03 +01:00
forust
cb92bff0c5
feat: basic webinar checker bot
2025-11-26 21:08:43 +01:00
forust
bfbe841154
feat: redis integration
2025-11-26 20:53:53 +01:00
forust
7cbc5bf4f3
feat: edu phpsessid updater bot
2025-11-26 17:00:44 +01:00
forust
fd3d2affe7
full refactor
...
edu_master
glance
n8n
nextcloud
portainer
traefik
gitignore comments
2025-11-15 13:30:51 +01:00
forust
75874a2ff3
Refactor Docker Compose files for n8n and Portainer: update volume paths and network configurations; remove deprecated n8n configuration file.
2025-11-13 03:38:48 +01:00
forust
0403524992
Remove deprecated Docker Compose files and configurations for various services including edu_master, glance, homer, and traefik. Introduce new Docker Compose files for dockmon, glance, homer, and traefik with updated configurations and environment variables. Ensure all services are integrated with Traefik for routing and TLS management.
2025-11-11 01:32:14 +01:00
forust
32aac89fdf
init, .gitignore
2025-11-11 00:02:49 +01:00