Commit Graph
61 Commits
Author SHA1 Message Date
Diane 6c106032bc Fix radio downloads: ship EJS solver scripts and allow runtime refresh
yt-dlp now solves YouTube JS challenges via external EJS scripts (yt-dlp-ejs package). A bare yt-dlp from PyPI does not include them, and remote fetching is disabled by default, so images built after the EJS migration download nothing and fail with HTTP 403 while metadata and playlists keep working. Pin yt-dlp[default] so yt-dlp-ejs ships in the image, and pass --remote-components ejs:github so solver scripts refresh at runtime when YouTube rotates challenges.
2026-09-03 13:28:04 +00:00
Diane 026698cba2 Fix AzuraCast integration against verified API behavior
Fix AzuraCast integration against verified API behavior

Verified against AzuraCast source (Files\BatchAction, FlowUploadAction,
Files\ListAction, Paginator, StationPlaylistMediaRepository):

- Rotation read a nonexistent 'mtime' key; the files API returns
  'timestamp' (unix epoch). Age buckets now work, so tracks actually
  migrate Currents -> Recurrents -> Gold as intended.
- Rotation now filters on type == 'media' (dirs are 'directory', not
  'dir') and skips rows without a path/timestamp.
- Follow ?page= pagination on /files: the default (no params) response
  is an unpaginated JSON array, but any paginated response is now
  traversed instead of only page 1 being visible.
- POST /files/upload returns only {success, message}; it never returns
  unique_id/path, and the file lands at the uploaded filename. Removed
  the dead unique_id search; playlist+queue now use the known path.
- Added success/error checks for batch ops (playlist/queue) instead of
  discarding responses, and queue no longer runs when playlist assign
  or Currents lookup failed.
- Replaced curl subprocess shelling with aiohttp (already a matrix-nio
  dependency): single helper for API calls, real multipart upload,
  timeouts everywhere, no temp JSON/pickle files in DATA_DIR.

Functional test (mock AzuraCast mirroring verified API shapes):
15/15 checks pass - upload contract, pagination, batch ops, and age
bucketing (fresh/6d/10d/30d -> Currents/Currents/Recurrents/Gold,
directories and non-media excluded).
2026-09-03 13:09:27 +00:00
afk ad828c3605 Fix radio.
Signed-off-by: Abdulkadir Furkan Şanlı <me@afk.pm>
2026-07-19 22:53:22 +02:00
afk fac762c84d Time limit for radio.
Signed-off-by: Abdulkadir Furkan Şanlı <me@afk.pm>
2026-07-19 15:30:31 +02:00
afk 5c990752fb Add deps and enable cache dir.
Signed-off-by: Abdulkadir Furkan Şanlı <me@afk.pm>
2026-07-19 15:30:10 +02:00
afk b946f649e0 Try to fix playlist assignment and increase rotation freq.
Signed-off-by: Abdulkadir Furkan Şanlı <me@afk.pm>
2026-07-19 02:25:49 +02:00
afk 5515690416 Fix search and add JS runtime. 2026-07-16 22:13:30 +02:00
afk 1a6a0c4382 Oops 2026-07-16 21:23:59 +02:00
afk 6b12874de6 Radio album art. 2026-07-16 20:30:02 +02:00
afk ac973ba32a Fix queueing 2026-07-16 20:21:48 +02:00
afk 0a35e40e25 Playlist rotation automation, fingers crossed. 2026-07-16 20:07:02 +02:00
afk 594d619e2e Add metadata to radio 2026-07-16 19:54:04 +02:00
afk dba420ca3a Correct endpoint 2026-07-16 19:48:15 +02:00
afk 5941909646 Fix radio 2026-07-16 19:42:12 +02:00
afk 6648cfc848 Revert and debug 2026-07-16 19:29:00 +02:00
afk 13f8c962e3 Debug 2026-07-16 19:21:47 +02:00
afk f7c2e014f9 Update radio upload. 1.3.1 2026-07-16 19:04:54 +02:00
afk 92781e4291 Radio station track uploads. 1.3.0 2026-07-16 18:43:01 +02:00
afk f98f83d5df revert 512275a8b8
revert Switch to synchronous Python.

Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2026-04-20 11:49:08 +02:00
Abdulkadir Furkan Şanlı 611a9551df Update README.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
1.2.4
2026-04-20 11:42:59 +02:00
Abdulkadir Furkan Şanlı 512275a8b8 Switch to synchronous Python.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2026-04-19 19:47:28 +02:00
Abdulkadir Furkan Şanlı 3abc37bb3c Pin versions and use uv for speed.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2026-04-19 19:37:26 +02:00
Abdulkadir Furkan Şanlı 9c1f18fbee Remove gay emoji 1.2.3 2026-04-16 12:12:41 +02:00
Abdulkadir Furkan Şanlı 98e2683b80 Fix 1.2.2 2026-04-16 12:09:40 +02:00
Abdulkadir Furkan Şanlı cba7a701bf Color 1.2.1 2026-04-16 12:06:58 +02:00
Abdulkadir Furkan Şanlı 884f1c6dd2 Channel name 1.2.0 2026-04-16 11:56:00 +02:00
Abdulkadir Furkan Şanlı 84c245b948 Titles. 1.1.1 1.1.0 2026-04-16 11:39:44 +02:00
Abdulkadir Furkan Şanlı be5271372c Add restart to compose file.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
1.0.0
2024-08-15 22:19:35 +02:00
abdulkadir 122622b442 Fix wrong duplicate function 2024-01-25 18:32:54 +01:00
Abdulkadir Furkan Şanlı f84b214ab0 Add all-time playlist
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-25 17:57:05 +01:00
Abdulkadir Furkan Şanlı 5a3ace4297 Refactor, save video_id in playlist_tracks and use it to detect existance.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-24 22:16:31 +01:00
Abdulkadir Furkan Şanlı e834867bab Stabilize matrix-nio version, this is pre-release software.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-23 22:00:10 +01:00
Abdulkadir Furkan Şanlı ad13e5d69f Add entertainment category and fix incorrect variable name.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-23 18:53:53 +01:00
Abdulkadir Furkan Şanlı 734362014c Give up on ficing GIF upload.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-23 18:38:31 +01:00
Abdulkadir Furkan Şanlı 242c0ba362 Fix GIF upload again.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-23 18:19:54 +01:00
Abdulkadir Furkan Şanlı 580a89c86f Don't restart in the compose.yml.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-23 18:15:59 +01:00
Abdulkadir Furkan Şanlı 86e0ab031d Fix GIF upload.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-23 18:15:41 +01:00
Abdulkadir Furkan Şanlı f7f5857ef1 Fix datetime shit again^2.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-23 18:09:03 +01:00
Abdulkadir Furkan Şanlı 821ed5ab08 Fix datetime shit again.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-23 18:06:23 +01:00
Abdulkadir Furkan Şanlı 6917c1cc6a Fix datetime shit.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-23 18:03:48 +01:00
Abdulkadir Furkan Şanlı 8192db563d Fix Dockerfile.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-23 17:59:49 +01:00
Abdulkadir Furkan Şanlı 438cb3e415 Make introduction visual.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-23 17:58:22 +01:00
Abdulkadir Furkan Şanlı 77a1275431 Add introduction command !parkerbot
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-23 17:46:39 +01:00
Abdulkadir Furkan Şanlı bd976a2cd5 Replace deprecated datetime functions.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-23 17:37:41 +01:00
Abdulkadir Furkan Şanlı 0af5be57ac Add backfill (DANGER), ensure message timestamp's Monday is used, only respond to recent !pow command.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-23 17:13:01 +01:00
Abdulkadir Furkan Şanlı 2193e11c3b Update README.md
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-22 00:15:13 +01:00
Abdulkadir Furkan Şanlı ab05a87705 compose.yml: restart unless stopped.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-22 00:11:25 +01:00
Abdulkadir Furkan Şanlı a2cb80c377 Dockerfile: run as user 1000 by default.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-22 00:10:29 +01:00
Abdulkadir Furkan Şanlı de13265915 Fix YouTube shortlink incompatibility, remove 'graceful' SIGTERM.
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-21 12:29:34 +01:00
Abdulkadir Furkan Şanlı a181660836 Update README.md
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
2024-01-21 10:48:27 +01:00