Commit Graph

700 Commits

Author SHA1 Message Date
Buster Neece 1c290a9d05
Implement common rate limit on public downloads of media. 2024-04-28 14:21:24 -05:00
Buster Neece e9255d2cbe
Fixes #7030 -- Fix new migrations not extending from abstract class that overrides transactionality. 2024-03-28 12:37:04 -05:00
Buster Neece b144860d63
#7009 -- Make RSS feed use API generator, add extension to download for iTunes. 2024-03-21 09:27:52 -05:00
Buster Neece df401b5468
Switch back to common Doctrine Entity Normalizer library. 2024-03-20 12:55:01 -05:00
Buster Neece e376d4014c
Remove type annotations from old DBAL version; remove custom Carbon Immutable format. 2024-03-19 06:53:36 -05:00
Buster Neece 4324f94cb2
Send timestamp along with individual SSE NP events, avoiding separate `global:time` channel. 2024-03-19 05:27:42 -05:00
Buster Neece 24c56345df
Set up sync task for podcast playlists. 2024-03-03 16:21:52 -06:00
Buster Neece 8fa8ab7e26
Merge commit '466f03674d90d65c3d20411b87930c43572ae0a9' into feature/playlist-driven-podcasts 2024-03-03 13:03:12 -06:00
Buster Neece 466f03674d
Update Doctrine ORM to 3.0, DBAL to 4.0 and surrounding dependencies. 2024-03-03 12:44:11 -06:00
Buster Neece e3dfe85653
Add "Source" tab to Podcast modal and wire up select API request. 2024-02-22 15:59:31 -06:00
Buster Neece fba050a463
Move station index and admin index to root to avoid the single file in the folder. 2024-02-16 09:00:14 -06:00
Buster Neece a4d45b6260
Clean up Podcast API endpoints, add "is_published" to podcast and episodes, make Podcast pages in the UI properly routed with VueRouter so browser history works. 2024-01-26 19:33:32 -06:00
Buster Neece f379464937
Podcast controller overhaul:
- Make public-facing podcast API endpoints separate from the CRUD API used by station operators
 - Make Podcast a request attribute (like stations) to simplify several controllers
  - Move API generation for podcasts and episodes into an ApiGenerator class.
2024-01-25 16:54:31 -06:00
Buster Neece 6deffe0ca2
Podcast Pages Overhaul
- Move the Podcasts pages from individual PHP templates into a Vue mini-SPA
 - Podcasts and episodes are paginated, sortable and searchable
 - The full podcast page is embeddable in external pages
 - The podcast player is our standard seekable inline player and persists as you're navigating around the podcasts page
2024-01-20 17:05:54 -06:00
Buster Neece 89b1d913a1
Type fixes relating to DI phpstan stubs. 2024-01-14 13:51:04 -06:00
Buster Neece bbf8d56b46
More type fixes! 2024-01-14 13:20:01 -06:00
Buster Neece 0bfd947f9c
Don't use Redis logical databases 2024-01-12 03:40:39 -06:00
Buster Neece 3b8c7e9e00
#6845 -- Fix routing on /api/station/(id)/nowplaying 2024-01-09 04:24:43 -06:00
Buster Neece 7008e06b4a
Take advantage of new bug fix in Symfony/Messenger. 2024-01-01 01:43:35 -06:00
Buster Neece 328af6d915
Fixes #6828 -- Make non-station-specific public nowplaying work again. 2023-12-29 19:16:14 -06:00
Buster Neece 222676e45a
Public static asset cache overhaul:
- Make all public static assets (album art, streamer art, podcast/episode art, etc) serve with no sessions or other user-specific information
 - Make "timestamp" an explicit URL parameter and avoid weird parsing of IDs mixed with timestamps
 - Make static caching a universal middleware for uniform results across controllers
 - Update public art URL paths to reference station short names instead of numeric IDs
2023-12-28 14:07:55 -06:00
Buster Neece 01dfadb351
Revert weird way of doing dd() in favor of using PHP-FPM on dev. 2023-12-24 20:33:40 -06:00
Buster Neece 56da2a3969
Move dumpdie to only be included in dev. 2023-12-23 18:28:50 -06:00
Buster Neece 0f651a3dc5
Add new "dumpdie" function that uses an exception to write to the PSR response and thus still works with RoadRunner. 2023-12-23 18:10:32 -06:00
Buster Neece e890106010
Implement Roadrunner PHP application server for high-performance PHP and Centrifugo event hooks. 2023-12-22 22:00:40 -06:00
Buster Neece c90b217e73
Fixes #6804 -- Clean up exceptions:
- Make more exceptions translated
 - Consolidate duplicate exception classes
 - Make public-facing exceptions friendlier (don't show "Exception on File LXX" except in console log)
2023-12-17 10:33:17 -06:00
Buster Neece fc2373fe26
Update Centrifugo to send initial NP/time payload. 2023-12-14 05:51:20 -06:00
Buster Neece 4285561eda
#6796 -- Revert to Centrifugo for high-performance NP updates. 2023-12-13 09:57:51 -06:00
Buster Neece 7ae8a48341
#6771 -- Update high-performance now playing system. 2023-12-06 10:26:31 -06:00
Buster Neece 6fbb9b0165
Update PHP dependencies (including several Symfony libraries to 7.x).
Changelogs summary:

 - symfony/filesystem updated from v6.4.0 to v7.0.0 major
   See changes: https://github.com/symfony/filesystem/compare/v6.4.0...v7.0.0
   Release notes: https://github.com/symfony/filesystem/releases/tag/v7.0.0

 - symfony/intl updated from v6.4.0 to v7.0.0 major
   See changes: https://github.com/symfony/intl/compare/v6.4.0...v7.0.0
   Release notes: https://github.com/symfony/intl/releases/tag/v7.0.0

 - symfony/lock updated from v6.4.0 to v7.0.0 major
   See changes: https://github.com/symfony/lock/compare/v6.4.0...v7.0.0
   Release notes: https://github.com/symfony/lock/releases/tag/v7.0.0

 - symfony/mailer updated from v6.4.0 to v7.0.0 major
   See changes: https://github.com/symfony/mailer/compare/v6.4.0...v7.0.0
   Release notes: https://github.com/symfony/mailer/releases/tag/v7.0.0

 - symfony/property-access updated from v6.4.0 to v7.0.0 major
   See changes: https://github.com/symfony/property-access/compare/v6.4.0...v7.0.0
   Release notes: https://github.com/symfony/property-access/releases/tag/v7.0.0

 - symfony/rate-limiter updated from v6.4.0 to v7.0.0 major
   See changes: https://github.com/symfony/rate-limiter/compare/v6.4.0...v7.0.0
   Release notes: https://github.com/symfony/rate-limiter/releases/tag/v7.0.0

 - symfony/messenger updated from v6.4.0 to v7.0.0 major
   See changes: https://github.com/symfony/messenger/compare/v6.4.0...v7.0.0
   Release notes: https://github.com/symfony/messenger/releases/tag/v7.0.0

 - symfony/redis-messenger updated from v6.4.0 to v7.0.0 major
   See changes: https://github.com/symfony/redis-messenger/compare/v6.4.0...v7.0.0
   Release notes: https://github.com/symfony/redis-messenger/releases/tag/v7.0.0

 - symfony/serializer updated from v6.4.0 to v7.0.0 major
   See changes: https://github.com/symfony/serializer/compare/v6.4.0...v7.0.0
   Release notes: https://github.com/symfony/serializer/releases/tag/v7.0.0

 - symfony/validator updated from v6.4.0 to v7.0.0 major
   See changes: https://github.com/symfony/validator/compare/v6.4.0...v7.0.0
   Release notes: https://github.com/symfony/validator/releases/tag/v7.0.0

No security vulnerability advisories found.
2023-12-01 00:38:16 -06:00
Buster Neece fc45e38095
Fixes #6646 -- Pass settings to Redis transport, which manually reconnects using them. 2023-11-29 19:25:47 -06:00
Buster Neece ee9b7d88d4
Merge commit '98b31298b086a00a47efa35c3e2b81a0cb8b3f37' 2023-11-26 02:52:21 -06:00
Buster Neece c0c10f8949
Add periodic donate notifications to dashboard. 2023-11-07 09:44:59 -06:00
Buster Neece 32cb16038e
Implement built-in docs, update settings and URLs across the app. 2023-10-10 15:51:18 -05:00
Buster Neece 7706457322
Add a "azuracast:setup:rollback" CLI command to roll back to the DB migration associated with a given stable release. 2023-09-03 12:10:40 -05:00
Buster Neece 48c437a84e
Fixes #6561 -- Auto-reload sync tasks and queue totals and add reload buttons for both. 2023-08-26 06:32:09 -05:00
Buster Neece 90f9129480
Fixes #6519 -- Show advanced settings on Mount Points. 2023-08-19 12:16:18 -05:00
Buster Neece cbf4cb651f
Rework Fallback/StereoTool pages to not need remote props. 2023-08-18 00:19:17 -05:00
Buster Neece f71a9b5d83
Rework LiquidsoapConfig page to use a single API back-and-forth. 2023-08-17 21:12:29 -05:00
Buster Neece 7db69e3505
#6498 -- Add "Empty Playlist" button. 2023-08-13 21:52:43 -05:00
Buster Neece 01a80bcdcb
Switch to Vue-Router HTML5 routing mode so URLs match existing ones. 2023-08-12 10:52:41 -05:00
Buster Neece 6b3d2b2095
Support custom "Station Offline" and "Live Broadcast" text per-station. 2023-08-11 14:20:59 -05:00
Buster Neece cf169b423c
Merge commit 'bcf7d575ac18c8e8123c483364add72a84aec901' 2023-08-10 09:41:07 -05:00
Buster Neece 631dda96d8
Migrate the Administration panel to its own Mini-SPA. 2023-08-08 12:23:01 -05:00
Buster Neece 85214e6d2d
Merge commit '752d8d679f8cf075ed2d8608071dad654c293f93' 2023-08-07 05:10:49 -05:00
Buster Neece 1404779b1a
Properly check permissions on stats endpoint. 2023-07-30 21:11:51 -05:00
Buster Neece a4ed413065
Add non-active-instance notification. 2023-07-30 01:13:44 -05:00
Buster Neece 06e745e6ff
Fixes #6354, Fixes #6393 --Add StereoTool plugin version support. 2023-07-23 23:04:25 -05:00
Buster Neece 996b6b390d
Add initial oEmbed support. 2023-07-22 03:24:56 -05:00
Buster Neece 072b861d94
Implement Bootstrap 5 and Vue 3, Remove BootstrapVue, jQuery and Other Libraries 2023-07-08 20:01:24 -05:00