Commit Graph

59 Commits

Author SHA1 Message Date
Buster "Silver Eagle" Neece ef7989fcfd
Implement PHP Docker Installer (#4377) 2021-07-08 15:03:54 -05:00
Buster "Silver Eagle" Neece b805f6c0c6
More tests and fixing minor issues with station spinup/down. 2021-06-13 23:49:17 -05:00
Buster "Silver Eagle" Neece 3f23efa076
PHP code style fixes. 2021-06-08 01:40:49 -05:00
Vaalyn 1a04f9791f
Implement Podcasting Support
Co-authored-by: Buster "Silver Eagle" Neece <buster@busterneece.com>
Co-authored-by: Mitch <Mitchellfrith1996@gmail.com>
2021-05-24 23:29:07 -05:00
Buster "Silver Eagle" Neece e893a93981
Routine PHP 8 code inspection sweep
- Removing explicit calls to default values
 - Add strict parameter arguments
 - Use PHP8 built-in functions when possible
2021-04-23 17:12:47 -05:00
Buster "Silver Eagle" Neece f117644649
Apply PHP8-specific improvements. 2021-04-23 00:24:12 -05:00
Buster "Silver Eagle" Neece e6cb02ea94
Fix password and playlist provisioning for newly created stations. 2021-01-22 16:34:06 -06:00
Buster "Silver Eagle" Neece 937be1ab21
Refine adapter changes for compatibility. 2021-01-19 15:16:32 -06:00
Buster "Silver Eagle" Neece 4ccddeb5f3
Refactor adapters; move some static functions to be non-static and implement a better change tracking system. 2021-01-19 11:52:45 -06:00
Buster "Silver Eagle" Neece 1b499a0ed1
Minor spacing fix. 2020-12-14 12:09:20 -06:00
Buster "Silver Eagle" Neece fc97e39d0a
Update composer deps; handle logging at Supervisor library level. 2020-12-14 12:03:50 -06:00
Buster "Silver Eagle" Neece c5390ead91
#3562 -- Improve error-hardiness of config writing. 2020-12-14 10:48:44 -06:00
Buster "Silver Eagle" Neece b3efbe8494
Make Environment in charge of more env vars and simplify initialization. 2020-12-05 09:18:44 -06:00
Buster "Silver Eagle" Neece 5727f12b6f
Settings refactor part 1: Rename App\Settings to App\Environment.
Previously AzuraCast had two very similar `$settings` variables, one that was from environment and the other from the database. This refactor distinguishes the two much more clearly.
2020-12-02 22:18:06 -06:00
Buster "Silver Eagle" Neece 731f16a494
Update raw DQL queries across the system to improve readability. 2020-12-01 18:36:09 -06:00
Buster "Silver Eagle" Neece 6de636f475
Unified Filesystem Overhaul (#3341)
This migration adds "Storage Locations", managed via a new System Administration panel, that can hold Station Media data, live broadcast recordings, and backups. These storage locations can be local (as they are by default) or remote via any S3-compatible service.
2020-11-09 21:06:48 -06:00
Vaalyn 9a94e6a178
Add PHPCS for code style checks (#3273) 2020-10-14 17:19:31 -05:00
Buster "Silver Eagle" Neece 23f2172488
Scheduler/StationQueue Rework (#3087)
Create a new "StationQueue" entity that contains the upcoming song queue, and split the important AutoDJ functionality across multiple classes (Annotations, Queue and Scheduler).
2020-08-16 09:54:01 -05:00
Buster "Silver Eagle" Neece 4bcfad3eb5
Updates preparing for Doctrine 3.0
- Switch to EntityManagerInterface for EM uses
 - Wrap EntityManager in close-resilient wrapper
 - Close/clear/reopen EM with every request
 - Rework tests to be em->clear() resilient.
2020-06-26 15:22:53 -05:00
Buster "Silver Eagle" Neece 85991b7546
Preemptive changes to prepare for Doctrine ORM 3.0. 2020-06-25 13:44:26 -05:00
Buster "Silver Eagle" Neece 769de19d00
Big Visual Waveform Editor Overhaul
- Refactor Flysystem to use constants instead of magic strings for URL prefixes
 - Add audiowaveform installation to both Docker and Ansible installations
 - Use audiowaveform to generate waveforms saved to disk for every track
 - Load these waveforms when visiting the visual waveform editor page instead of using the browser to calculate them
 - Add volume control and use app-wide storage of default volume
 - Remove "beta" tag from waveform editor header
2020-05-11 19:32:41 -05:00
Buster "Silver Eagle" Neece 4804e2f710
Make Backend and Frontend config collections, avoiding "magic strings". 2020-05-02 02:58:59 -05:00
Buster "Silver Eagle" Neece a4ada9777a
Force stopping stations when deleted to help ensure port clearance. 2020-04-21 23:53:09 -05:00
Buster "Silver Eagle" Neece f0c5432b6e
Remove supervisord stopasgroup/killasgroup as its behavior changed. 2020-04-19 14:20:42 -05:00
Buster "Silver Eagle" Neece 4d4d75ad4d
Reunify AzuraCore and AzuraCast repositories. 2020-02-05 20:35:13 -06:00
Buster "Silver Eagle" Neece ca9c5db39d
New feature: Track broadcasts and record them. (#2353)
* Add form entries and LS config writing for live stream recording.

* Create new Broadcast entity; implement new djon/djoff handling.

* Rework record command procedure and add Station relation to Broadcast.

* Run code reformat on JS to add semicolons back.

* Properly save recording path on entity.

* Initial commit of new streamers Vue component.

* Finish frontend Vue dev and add necessary API endpoints.

* Add loader to Datatable; update npm deps; polish on components.
2020-01-28 20:23:55 -06:00
Buster "Silver Eagle" Neece 8e08b7b798
Remove now-redundant PHPDoc blocks that don't add context. 2019-12-07 17:42:23 -06:00
Buster "Silver Eagle" Neece 1a6d1d620d
Add PHP 7.4 type hinting everywhere except Entities. 2019-12-07 06:19:49 -06:00
Buster "Silver Eagle" Neece bd42b64de0
Add spaces to phpdoc blocks and optimize imports. 2019-09-20 11:44:38 -05:00
Buster "Silver Eagle" Neece daf78fa738
Move Settings and Logging to static system-wide functions. 2019-09-12 00:31:01 -05:00
Buster "Silver Eagle" Neece 513d04f7d2
Code cleanup! 2019-09-04 13:00:51 -05:00
Buster Neece 2f8ab5544a
Switch back to Request/Response decorators. 2019-08-09 10:00:21 -05:00
Buster "Silver Eagle" Neece 639dddf989
Slim PHP Framework 4 Update (#1822)
Implement an upgrade of the codebase to use Slim Framework version 4, which includes the following changes:
 - Updating to Slim version 4 and the corresponding AzuraCore updates.
 - Making all objects PSR-7 Request/Response agnostic (and creating RequestHelper and ResponseHelper objects to interact with the PSR-7 Req/Resp objects).
 - Moving to PHP-DI as a DI container and implementing its autowiring support.
2019-08-06 23:33:55 -05:00
Buster Neece f06a6e2b66
#1799 -- Fix port checker conditional. 2019-07-30 09:19:45 -05:00
Buster Neece 5d003c0d18
#1784 -- Switch to getenv for auto assign port var detection. 2019-07-28 18:08:12 -05:00
Buster Neece f3e411beb9
Abstract error logging and ignore some errors when deleting stations. 2019-07-10 18:34:45 -05:00
Buster Neece 9727e07b76
Fixes #841 -- Include proper stations in available port calculations. 2019-07-03 10:26:36 -05:00
Buster Neece 318eb39475
#1674 -- Various changes to hopefully improve port clearance after deletion. 2019-06-18 19:47:10 -05:00
Buster Neece b8be1fbb9a
Make the port auto-assignment range customizable. 2019-06-18 14:41:14 -05:00
Buster "Silver Eagle" Neece 16fc2c54bc
Implement zero-downtime backups + nightly backups (#1574)
* Create new backup and restore commands allowing live backups.
* Switch migrate script to use new backup method.
* Avoid loading fixtures, ensure directories exist when restarting stations.
* Include album art in media backup.
* First portion of automated backup management code.
* Further backup page work; add download/delete functionality.
* Implement automatic backups and "manual run" page.
* Switch automatic backup filename to match text.
* Add new locales.
* Add restore instructions and ability to view latest backup log.
2019-05-23 10:29:22 -05:00
Buster Neece 54c9e52259
#1524 -- Always clear ports before reassigning for cloned stations. 2019-05-19 10:30:44 -05:00
Buster Neece 48427d46a3
Make timezone Station-specific and remove now-unused offset code. 2019-05-13 16:25:36 -05:00
Buster Neece 0f3ae50a5b
#1488 -- Add port+1 to reserved port check. 2019-04-29 19:09:58 -05:00
Vaalyn a57cdf48c3 Fix usage of wrong variable and add validation for n+1 port 2019-04-29 12:37:16 +02:00
Buster Neece 3554d65c75
Move port checker to Validation; create StationCloneForm, etc. 2019-04-09 04:06:44 -05:00
Buster Neece d60b2fc0fe
Refactor all Doctrine queries to support PHPStorm's DQL highlighting. 2019-03-23 16:43:22 -05:00
Buster Neece b9e821debd Switch logging to be managed/rotated by Supervisord.
Rationale: under the current system, Supervisord simply pipes its per-process logs out to stdout/stderr on Docker, meaning it has no ability to read back those logs in the case of an error, leading to cryptic error messages like "SPAWN_ERROR" instead of the actual problem. This refactors the logging to be handled by Supervisord, which also is itself capable of log rotation (removing the need for AzuraCast to rotate radio software logs).
2019-03-07 20:01:51 -06:00
Buster "Silver Eagle" Neece 1899410766 #1070 -- Disable the station watcher on Docker instances. 2019-02-20 12:07:45 -06:00
Vaalyn 251fbfa26b Fix issues found with PHPStan (#1127)
* Fix access to an undefined property

* Fix usage of undefined variable

* Fix undefined class Throwable error

* Fix undefined class Throwable error

* Fix undefined class Throwable error

* Fix class not found error and remove unused class import

* Remove usage and instantiation of non-existent controller

* Remove implicit declaration of property that is not used
2019-01-30 13:30:47 -06:00
Buster "Silver Eagle" Neece d61dd12859 Consolidate station form handling and prevent erroneous local broadcast attempts. 2019-01-26 14:38:36 -06:00