Commit Graph

2675 Commits

Author SHA1 Message Date
Buster Neece 6316df6106
Fix CarbonImmutable checks. 2024-03-19 05:41:43 -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 ed4227c1b5
Fixes #6998 -- Explicitly set all migrations as non-transactional to work around a Migrations issue. 2024-03-07 17:51:43 -06:00
Stefan Körfgen 76fc4e8ac0
Fix for issues #6918 and #6956 (#6991)
* Fix for issues #6918 and #6956

* formatting
2024-03-04 14:15:52 -06:00
Buster Neece fa73cd82dc
Set explicit flag on new episodes. 2024-03-03 17:32:27 -06:00
Buster Neece 2f14540477
Configure all mutual toOne relationships explicitly. 2024-03-03 16:59:59 -06:00
Buster Neece 24c56345df
Set up sync task for podcast playlists. 2024-03-03 16:21:52 -06:00
Buster Neece 09d186d506
Update API interface and wire up Podcast Episodes for playlist-synced podcasts. 2024-03-03 13:32:08 -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 0a17a77379
Merge commit 'cfb190ba1390bb3ce41ca989354ac3f906771a4e' into feature/playlist-driven-podcasts 2024-03-02 18:05:45 -06:00
Buster Neece 17bf52612b
Fixes #6951 -- Fix type issue on InstallCommand. 2024-03-02 15:35:33 -06:00
Buster Neece 2e169b9499
Fixes #6963 -- Escape cache keys for Now Playing so special characters don't cause problems. 2024-03-02 15:29:33 -06:00
Buster Neece b83d54bf50
Fixes #6936 -- Fix WebDJ URL. 2024-03-02 14:56:41 -06:00
Buster Neece df3f9c5b85
Fix bug with playlist mapping. 2024-02-22 18:33:00 -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 b0ab0916ae
Rewire public controllers to support playlist sourced media. 2024-02-22 14:51:29 -06:00
Buster Neece d08235a8da
Add source to podcast, add related DB records and API responses. 2024-02-22 14:27:56 -06:00
Buster Neece 0b54c7e307
Version bump to 0.19.5. 2024-02-20 04:44:29 -06:00
Buster Neece 3a202ca729
Enable sorting on podcast episode controller side. 2024-02-16 12:03:09 -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 a8acfa2600
Explicitly specify a type that's mis-annotated on Carbon. 2024-02-12 08:41:06 -06:00
Buster Neece 23a8bad004
Add "NGINX_CLIENT_MAX_BODY_SIZE" environment variable to customize request body size (this isn't applicable for inside AzuraCast, as we automatically split uploads up into smaller chunks, but is useful if submitting large requests via APIs). 2024-01-29 02:38:31 -06:00
Buster Neece 6b511b0803
Add station IANA timezone to NowPlaying/Station public responses. 2024-01-29 00:54:37 -06:00
Buster Neece cb020a3e62
Remove PHPStan error ignores that are fixed in PHPStan now. 2024-01-27 14:17:58 -06:00
Buster Neece 8e6c601087
Fix route names in podcast RSS. 2024-01-27 03:33:57 -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 a614af165f
Remove redundant type cast. 2024-01-25 23:28:17 -06:00
Buster Neece 1c9d9fb5f7
Simplify and clean up exception handling. 2024-01-25 19:28:57 -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 85f89d13ba
Correct docs on Station middleware. 2024-01-25 16:52:27 -06:00
Buster Neece 851de76f30
Fixes #6879 -- Fix base URI and Podcast RSS feed. 2024-01-20 21:07:09 -06:00
Buster Neece d7b8c59ff9
Add "Podcasts" to the Embed Widgets modal dialog in the station profile. 2024-01-20 17:19:34 -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 8c4a4b8a76
Add common isEmbeddable trait for public pages. 2024-01-20 17:03:14 -06:00
Buster Neece ad15c6ef7c
Move WebDJ template render internally. 2024-01-20 10:36:59 -06:00
Buster Neece 675d53f85b
Add optional "path" argument to media reprocess CLI command. 2024-01-17 12:09:31 -06:00
Buster Neece 84378369c7
Make dashboard paginated, searchable and sortable. 2024-01-15 17:07:28 -06:00
Buster Neece 4ccce52705
Use common trait for searching across controllers; add type strictness to several $request->getParam calls on controllers. 2024-01-15 11:24:27 -06:00
Buster Neece 688fa77834
Fixes #6866 -- Fix type strictness on installer. 2024-01-14 18:16:30 -06:00
Buster Neece ad30aaecfd
More level 9 type fixes. 2024-01-14 16:01:19 -06:00
Buster Neece 7a55ed9a94
Type fixes for the installer command. 2024-01-14 15:20:36 -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 c2f352c115
Some type fixes. 2024-01-14 05:53:46 -06:00
Buster Neece f865271996
Remove cue_cuts to align with newest LS rolling release. 2024-01-13 15:29:55 -06:00
Buster Neece 77bbcbad4f
Set API types on Listener. 2024-01-13 03:04:08 -06:00
Buster Neece 0bfd947f9c
Don't use Redis logical databases 2024-01-12 03:40:39 -06:00
Buster Neece 5cee0b666b
Fixes #6844 -- Better handling of empty strings on homepage redirect URL. 2024-01-10 02:14:35 -06:00
Buster Neece b1cd507b50
Fixes #6586 -- Re-set body class on login Vue component. 2024-01-09 11:49:04 -06:00
Buster Neece 8d455f1c9b
Tag stable version 0.19.4. 2024-01-04 19:06:18 -06:00
Buster Neece 2f080e4560
Make update checks use a custom cron schedule and lengthen the time between update checks. 2024-01-03 23:58:55 -06:00
Buster Neece 5664759ff3
Fixes #6838 -- Fix album art POST URL on media manager. 2024-01-03 16:10:27 -06:00
Buster Neece 7008e06b4a
Take advantage of new bug fix in Symfony/Messenger. 2024-01-01 01:43:35 -06:00
Buster Neece 5de23588f5
Avoid int coercion on media length. 2023-12-28 19:33:21 -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 cc7183c933
Use nginx to temp cache album art to further reduce load on PHP. 2023-12-26 19:21:47 -06:00
Buster Neece 4ab8fe667b
Use PHP-FPM for local dev while still using RoadRunner in production. 2023-12-24 20:35:28 -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 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 f4b54c3eb6
Build app for CLI too. 2023-12-22 21:38:51 -06:00
Buster Neece 4e669ab20f
Update AppFactory and HttpFactory to support long-running services like Roadrunner. 2023-12-22 16:21:10 -06:00
Buster Neece 96100922ed
Remove extraneous prop. 2023-12-20 08:54:11 -06:00
Buster Neece c8bcee0ad8
Fixes #6712 -- Add "hls_is_default" to NP station API endpoint and use it on player frontend. 2023-12-19 19:55:20 -06:00
Buster Neece f85d91aade
Closes #6589 -- Allow a LUFS target of 0 (disables LUFS target). 2023-12-19 17:45:29 -06:00
Buster Neece 18de449cdc
Fixes #6532 -- Make errors in batch actions display as errors, show the error reason, and avoid further processing of files that errored out. 2023-12-19 12:35:15 -06:00
Buster Neece eefadf7b43
#6702 -- Turn off timeout and memory limit for the clone action. 2023-12-18 13:36:12 -06:00
Buster Neece 74fb8b6aa7
#6685 -- If end date is specified just as date, assume time is end of day, not midnight. 2023-12-17 18:04:50 -06:00
Buster Neece 3776085005
Make what happens when you specify *only* a start or end date more intuitive (the missing date becomes today, and then the dates get sorted appropriately if end > start). 2023-12-17 15:15:49 -06:00
Buster Neece 471dde2cd2
#6685 -- Fix issue where passing the same date as start/end returns the default range. 2023-12-17 15:09:04 -06:00
Buster Neece dfd2ad8873
Fixes #6534 -- Only prevent uploading files if a quota is set and it will be exceeded. 2023-12-17 12:01:13 -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 afc1f2fde9
Make media annotation (fade/cue/etc) values clearable. 2023-12-16 12:19:27 -06:00
Buster Neece 5a389bb55a
Update intervention/image.
Changelogs summary:

 - intervention/gif installed in version 3.0.0
   Release notes: https://github.com/Intervention/gif/releases/tag/3.0.0

 - intervention/image updated from 2.7.2 to 3.0.2 major
   See changes: https://github.com/Intervention/image/compare/2.7.2...3.0.2
   Release notes: https://github.com/Intervention/image/releases/tag/3.0.2

No security vulnerability advisories found.
2023-12-15 07:26:14 -06:00
Buster Neece c68b87825d
Ensure Centrifugo initial URLs don't use the browser URL. 2023-12-14 10:40:08 -06:00
Buster Neece 92d4dad9b6
Resolve URLs in initial Centrifugo response. 2023-12-14 09:44:13 -06:00
Buster Neece fc2373fe26
Update Centrifugo to send initial NP/time payload. 2023-12-14 05:51:20 -06:00
Buster Neece f499a13397
Fixes #6792 -- Fix asc/desc order detection on sorting results in datatables. 2023-12-13 12:15:08 -06:00
Buster Neece 4285561eda
#6796 -- Revert to Centrifugo for high-performance NP updates. 2023-12-13 09:57:51 -06:00
Buster Neece 6b2cfef113
Fixes #6787 -- Proper type coercion on amplify/fade/etc. values. 2023-12-08 10:49:35 -06:00
Buster Neece 183e136983
Fix demo auto-login. 2023-12-07 23:25:31 -06:00
Buster Neece 37eeebfc2c
Fixes #6773 -- Fix type warning on installer. 2023-12-07 21:40:29 -06:00
Buster Neece b444cda03b
HPNP fixes, support multiple stations at once. 2023-12-07 08:44:29 -06:00
Buster Neece 34e66e4f46
Fix HPNP unused function. 2023-12-06 10:29:53 -06:00
Buster Neece 7ae8a48341
#6771 -- Update high-performance now playing system. 2023-12-06 10:26:31 -06:00
Buster Neece 38d9be3c65
Fix typing error with chart stat metrics. 2023-12-04 03:13:40 -06:00
Buster Neece 6bac14ea81
Fix ACL issue preventing Liquidsoap commands from working. 2023-12-04 03:13:30 -06:00
Buster Neece 9fe90b1d3c
Merge commit '8ea5b1b85e9477cd6f1bbff475839b4e88986be5' 2023-12-04 00:48:40 -06:00
Buster Neece 5004f54b96
Fix or individually ignore the errors in the PHPstan baseline. 2023-12-01 01:18:57 -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 7b3eafbb99
Avoid unnecessary connections with "lazy" flag. 2023-11-29 19:35:55 -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 1657f2271e
Fixes #6757 -- Improve readability of process error with audiowaveform. 2023-11-28 22:11:46 -06:00
Buster Neece 9557e4ba99
Fixes #6756 -- Accept 0/0.0 as valid fade/cue/etc. advanced values. 2023-11-28 16:45:06 -06:00
Buster Neece 9d5fc86f66
#6761 -- Update MariaDB command names. 2023-11-28 15:05:45 -06:00
Buster Neece bbaea5905b
Update manifest path for Vite 5. 2023-11-27 05:06:18 -06:00
Buster Neece ece0442322
Improve UX and security of Webauthn. 2023-11-27 04:55:38 -06:00
Buster Neece ee9b7d88d4
Merge commit '98b31298b086a00a47efa35c3e2b81a0cb8b3f37' 2023-11-26 02:52:21 -06:00
Buster Neece e2bea751ad
#6748 -- Immediately add uploaded media to a playlist if the folder it's being uploaded to is set to auto-assign to one. 2023-11-20 19:50:37 -06:00