Commit graph

4 commits

Author SHA1 Message Date
shu
7f2572cec3 Update Aoi dashboard and cover proxy 2026-05-07 15:07:19 +03:00
shu
49503a78c4 Notify Matrix for liked library albums 2026-05-02 04:05:00 +03:00
8f2b349ed9 Gate discovery-playlist notifications on Navidrome availability
Aoi was sending Matrix cards as soon as a playlist row appeared in the
discovery-playlist SQLite, before Navidrome had scanned and indexed it.
That produced 'ready' notifications for playlists that were not yet
playable.

The gate now requires the matching playlist (exact name match,
case-insensitive) to be visible in Navidrome via getPlaylists with at
least N entries (default 1, knob 'polling.discovery_min_tracks_in_navidrome')
before the notification fires. If a playlist stays missing from
Navidrome past 'polling.discovery_stale_after_hours' (default 48h), it
is marked sent without notification so we don't loop forever.

Refactored navidrome_playlist_cover into navidrome_find_playlist (name
match) and navidrome_playlist_cover_for (cover for an already-resolved
playlist), so the gate and the cover lookup share a single Navidrome
roundtrip.
2026-04-28 21:25:35 +03:00
5fa857b9cc Initial commit: Aoi (Аой-тян) — Matrix notifier for Navidrome and discovery-playlist
- aoi.py: poller for Navidrome (main + anime libraries), discovery playlists, release watch for liked/rated artists
- Last.fm enrichment (bio, tags); Bandcamp search links
- config.example.json: safe template; config.json gitignored
- deploy/aoi.service: systemd unit (production)
- assets/banner.png + aoi-avatar.png: persona banner + bot avatar
- Russian README in line with sibling bots (rada/watcher)
2026-04-28 20:15:50 +03:00