Commit Graph

629 Commits

Author SHA1 Message Date
Buster "Silver Eagle" Neece 5a5bc0e367
Update NowPlaying library. 2021-04-11 17:33:51 -05:00
Buster "Silver Eagle" Neece b2ae1da573
#3963 -- Allow disabling remote ISRC fetching. 2021-04-06 14:36:07 -05:00
Mitch 168327fdc8
Update backup_run.php (#3976) 2021-04-05 20:02:01 -05:00
Buster "Silver Eagle" Neece 3419e58d83
Make daily average/unique listeners start zoomed in (and then be pannable for older data). 2021-03-31 00:36:35 -05:00
Buster "Silver Eagle" Neece 08ba636bbe
Add Libravatar, make avatar services configurable. 2021-03-24 22:21:53 -05:00
Buster "Silver Eagle" Neece da50621f91
Revert font changes; implement play/stop change in old Material font. 2021-03-21 10:26:23 -05:00
Buster "Silver Eagle" Neece 06384b7f4a
Create `/api/frontend/account/me` endpoints. 2021-03-21 03:30:48 -05:00
Buster "Silver Eagle" Neece 68b971a571
Icon changes
- Switch to two-tone Material icon library
 - Implement shared Vue common icon component
 - Switch instances of "pause" to "stop"
2021-03-19 08:30:50 -05:00
Buster "Silver Eagle" Neece d7c51ea00f
Add history embed and simplify vue rendering in templates. 2021-03-17 02:20:12 -05:00
Buster "Silver Eagle" Neece a79e00c1c4
Vue component reorganization
Put components into folders related to their section of the site (with the same paths as the controllers/route names).
2021-03-16 07:25:29 -05:00
Buster "Silver Eagle" Neece 91c73de176
Add API endpoint and frontend modal to view playlist's AutoDJ queue. 2021-03-08 07:20:54 -06:00
Buster "Silver Eagle" Neece f0c91ba563
Split playlist actions into standalone files. 2021-03-07 02:00:37 -06:00
Buster "Silver Eagle" Neece ace826dae5
Add e-mail webhook. 2021-03-06 03:27:55 -06:00
Buster "Silver Eagle" Neece 34b075ba50
Add new webhook and API response for online/offline stations. 2021-02-28 17:28:17 -06:00
Buster "Silver Eagle" Neece 489511ba4a
Improve usability of zxcvbn password strength meter. 2021-02-27 21:27:40 -06:00
Buster "Silver Eagle" Neece c24f5dfc69
Implement SMTP Mail Delivery and Self-Service Password Reset (#3848) 2021-02-27 20:50:45 -06:00
Buster "Silver Eagle" Neece 72cc75b8c6
Improve verbosity of sync task logging. 2021-02-21 22:19:02 -06:00
Buster "Silver Eagle" Neece ec2ec899d8
Update links across application to point to new documentation. 2021-02-15 15:36:34 -06:00
Buster "Silver Eagle" Neece 85e9905af8
Make Station Queue view a Vue component. 2021-02-09 13:57:25 -06:00
Buster "Silver Eagle" Neece 0c390bd13d
#3733 -- Simplify webhook dispatch and add rate-limiting. 2021-02-04 15:47:08 -06:00
Buster "Silver Eagle" Neece cabeeb5cc0
Move "Enable Advanced Settings" to DB and make it actually work. 2021-02-02 22:17:57 -06:00
Buster "Silver Eagle" Neece f134d45cf0
Listener tracking improvements
- Add the mount/remote that a listener is connected to, and show it in reports
 - Create a new Google Analytics webhook that will post live listeners to GA using the measurement protocol.
2021-01-27 11:42:54 -06:00
Buster "Silver Eagle" Neece 64423a7097
Unify env var names on Ansible installs with their Docker counterparts. 2021-01-21 13:32:47 -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 686f480d7c
Add Support for Remote Album Art on APIs and Media Uploads (#3680) 2021-01-18 23:44:15 -06:00
Buster "Silver Eagle" Neece db6a9043f9
Add new "azuracast:debug:optimize-tables" CLI command. 2021-01-13 02:00:39 -06:00
Buster "Silver Eagle" Neece 8f4ba82c58
Add fancybox back to media manager. 2021-01-11 20:57:03 -06:00
Buster "Silver Eagle" Neece 7441d13472
Refactor Acl to be part of the request lifecycle. 2021-01-11 05:08:06 -06:00
Buster "Silver Eagle" Neece 7862c6d515
Dashboard Overhaul (#3651) 2021-01-10 20:41:58 -06:00
Buster "Silver Eagle" Neece 991465d14c
Allow customization of Redis env vars for advanced configurations. 2021-01-05 05:02:00 -06:00
Buster "Silver Eagle" Neece 0e6910ba17
Allow hiding the "Download" button on "On-Demand" media page. 2021-01-05 00:43:01 -06:00
Buster "Silver Eagle" Neece a88b9c6688
Media Manager Improvements
- Fold "Duplicates" report into the main media manager, allowing it to see custom fields, album art, etc.
 - Create a new "Unprocessable media" report that also uses the main media browser
 - Add a new "Reprocess" batch option that can be run on any media directly from the web UI
 - Improve how hashes are detected in the media manager
2021-01-03 00:23:07 -06:00
Mitch 93215a0275
Change wording to include listener metadata (#3619) 2021-01-02 13:59:53 -06:00
Buster "Silver Eagle" Neece e4c887fd3a
Improve logging on sync tasks. 2020-12-22 19:52:50 -06:00
Buster "Silver Eagle" Neece bdc6dcc22d
Make unprocessable media downloadable and show processing errors. 2020-12-22 15:40:33 -06:00
Buster "Silver Eagle" Neece a12b655cb4
Log console exceptions and nonzero exit codes. 2020-12-18 23:07:28 -06:00
Buster "Silver Eagle" Neece 44a3ef15e6
Use Intervention image manager for images. 2020-12-18 20:39:47 -06:00
Buster "Silver Eagle" Neece cc067943ac
Remove external Rotate library and rotate backups for all filesystems. 2020-12-18 17:49:00 -06:00
Buster "Silver Eagle" Neece 8f29382b9e
Move log level to Environment; update changelog. 2020-12-15 07:44: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 05d5a95090
Switch to Symfony Cache for PSR-6/16 implementation. 2020-12-12 17:45:34 -06:00
Buster "Silver Eagle" Neece 4aa1902dae
#3525 -- Rework settings to be fetched on-demand to avoid collisions. 2020-12-10 16:46:03 -06:00
Buster "Silver Eagle" Neece 1604799048
#3526 -- Fix webhook Environment error. 2020-12-09 02:02:40 -06:00
Buster "Silver Eagle" Neece 788370d0c0
Switch to Doctrine explicit change tracking for performance.
(We've been writing code for years as though this setting were enabled, and yet it's not the default setting, so we were losing performance on large operations for no good reason.)
2020-12-06 14:06:15 -06:00
Buster "Silver Eagle" Neece 97e1fab14e
Add message queue length and per-queue clear buttons to Debugger page. 2020-12-06 11:23:40 -06:00
Buster "Silver Eagle" Neece 0a8c41542d
Make environment immutable and strictly use function calls. 2020-12-06 05:57:39 -06:00
Buster "Silver Eagle" Neece bf1e4f2591
Simplify Environment class and dependencies. 2020-12-06 01:55:25 -06:00
Buster "Silver Eagle" Neece 2eac4d3cb4
Make sync tasks a long-running logged process like backups. 2020-12-05 13:34:13 -06:00
Buster "Silver Eagle" Neece e7fee785a0
Entity Manager cleanup tasks.
- Make the "refresh" method of the decorated EM a part of a new Reloadable interface and add "refreshAsReference"
 - Make all classes use the "IDENTITY" generatedvalue strategy and have nullable IDs
2020-12-05 01:39:05 -06:00
Buster "Silver Eagle" Neece 969789aa05
Code style fixes. 2020-12-04 06:42:15 -06:00
Buster "Silver Eagle" Neece 9e011647c3
More "settings" to "environment" renames. 2020-12-04 06:33:52 -06:00
Buster "Silver Eagle" Neece aed854a17c
Settings overhaul, part 2
Make Settings a controlled entity.
2020-12-04 02:41:55 -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 7c268f3a88
#3215 -- Implement "remember me" checkbox on login. 2020-11-30 05:32:52 -06:00
Buster "Silver Eagle" Neece a0528ce71c
Refactor sync task class names. 2020-11-30 03:55:30 -06:00
Buster "Silver Eagle" Neece 9f8c808859
#2981 -- Make playlist export path have a period for legacy purposes. 2020-11-28 19:27:37 -06:00
Buster "Silver Eagle" Neece 08f948e96b
Add support for Simplified Chinese. 2020-11-25 02:00:20 -06:00
Buster "Silver Eagle" Neece 13b66eca7e
Fix "Advanced" saying "Undefined", make it translatable too. 2020-11-17 20:28:44 -06:00
Buster "Silver Eagle" Neece 8c730b3d41
Remove Chosen JS library, replace with Select2. 2020-11-17 19:13:08 -06:00
Buster "Silver Eagle" Neece 8ee4d3864b
Improve lock management and always clear locks when manually running sync. 2020-11-14 20:47:38 -06:00
Buster "Silver Eagle" Neece 62ed3aa51d
Supply individual worker names for each queue worker. 2020-11-14 18:06:34 -06:00
Buster "Silver Eagle" Neece 76a14ba638
Move API keys to other admin menu. 2020-11-14 15:45:39 -06:00
Buster "Silver Eagle" Neece 582b8faef9
Warn about sync tasks not having been run recently.
Also includes a minor rewrite of the EventDispatcher, and a restructure of notification checks into standalone classes.
2020-11-12 15:30:02 -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
Buster "Silver Eagle" Neece f4ee44199c
Revert commit and set environment to "Testing". 2020-10-25 05:58:06 -05:00
Buster "Silver Eagle" Neece 6711feeeee
Move lazy-loading of cache interface to downstream services. 2020-10-25 05:48:50 -05:00
Buster "Silver Eagle" Neece 600988be4f
Lazy-load the Redis cache because locale commands are called via regular PHP. 2020-10-25 05:31:47 -05:00
Buster "Silver Eagle" Neece 37c54e4937
Cache/Config changes for testing. 2020-10-25 04:53:52 -05:00
Buster "Silver Eagle" Neece b4698ec833
Disable session cache on CLI commands too. 2020-10-25 02:28:21 -05:00
Buster "Silver Eagle" Neece 4c7fe5c1ce
#3298 -- Properly flush Redis cache during SFTP upload. 2020-10-25 01:46:41 -05:00
Buster "Silver Eagle" Neece 6c69e6fe52
Better line update channels up with update notifications. 2020-10-24 10:26:55 -05:00
Buster "Silver Eagle" Neece bc7773a2f1
#3312 -- Remove the "Administer Users"/"Permissions" permissions. 2020-10-22 06:16:19 -05:00
Vaalyn 7fa7ca781d
Make ACL permissions extendable by plugins via event dispatching (#3309) 2020-10-22 02:18:05 -05:00
Buster "Silver Eagle" Neece 80192a31d5
Code style fixes for metadata manager adapter. 2020-10-21 05:36:51 -05:00
Buster "Silver Eagle" Neece 9e4bc0e51d
Implement abstract Metadata read/write interfaces. 2020-10-21 05:04:58 -05:00
Nick Robillard 06808d01f8
Remove "difficult to map" options from custom fields auto assignable id3v2 fields select (#3293) 2020-10-19 06:00:00 -05:00
Vaalyn 415c24ca8f
Add possibility to register message queue message handlers for plugins (#3288) 2020-10-18 00:56:44 -05:00
Buster "Silver Eagle" Neece 909ea2b786
Make the Station Profile a standalone compiled Vue component. 2020-10-16 04:08:58 -05:00
Buster "Silver Eagle" Neece fb4f7de2df
Make the public radio player a Vue component. 2020-10-15 05:01:32 -05:00
Buster "Silver Eagle" Neece f822d83cda
Remove non-functional Timezone utility class. 2020-10-09 16:31:48 -05:00
Buster "Silver Eagle" Neece c65e686798
Add initial support for Greek and Swedish localizations. 2020-10-09 04:38:17 -05:00
Buster "Silver Eagle" Neece 6458ac4953
#3219 -- Add dark theme for sweetalerts. 2020-10-07 22:35:54 -05:00
Buster "Silver Eagle" Neece a6ec36b21c
Analytics Overhaul and InfluxDB Removal (#3243)
- Make the Analytics table in the database the primary one for handling statistics for all stations, removing the InfluxDB dependency entirely
 - Expand the Analytics table to also track unique listeners per hour and day
 - Properly clean up the Listeners table according to each installation's history retention settings
 - Implement a cute new animated "waiting for services" startup message that avoids previous wait messages that looked more like errors
2020-10-07 18:50:30 -05:00
Limon Monte daf6e09bb9
Switch from SweetAlert to SweetAlert2 (#3239) 2020-10-07 03:09:01 -05:00
Buster "Silver Eagle" Neece 1a1ef5f013
Revert service configuration change. 2020-10-05 02:07:36 -05:00
Buster "Silver Eagle" Neece c81ff62b5c
Remove the `Song` entity and restructure dependent tables accordingly (#3231)
* Song database and entity overhaul, part 1.
* Remove Songs table from a number of qeries and reports.
* Fix references to Songs table; rewrite StationMedia processing.
* Remove song reference in queue page.
* Allow custom log level via environment variable.
2020-10-04 17:35:41 -05:00
Vaalyn adec893a93
Add possibility to add migrations from plugins via event dispatcher (#3168)
* Add possibility to add migrations from plugins via event dispatcher

* Add possibility to add Doctrine mapping classes paths from plugins via event dispatcher
2020-09-30 10:39:22 -05:00
Buster "Silver Eagle" Neece 7e4d572060
#3220 -- Bump log level for production instances. 2020-09-29 22:57:49 -05:00
Buster "Silver Eagle" Neece 949ac7940a
#3203 -- Clean up album art and waveforms (with an added sync check). 2020-09-29 11:45:50 -05:00
Buster "Silver Eagle" Neece a2c0637386
Overhaul MessageQueue and switch back to Redis. 2020-09-26 18:05:33 -05:00
Buster "Silver Eagle" Neece 7bac35b2ff
Switch to new Symfony Lock component for our mutex locks. 2020-09-26 12:50:47 -05:00
Buster "Silver Eagle" Neece ca38bea82b
Add clear-cache and clear-queue commands to debugger. 2020-09-22 15:47:46 -05:00
Buster "Silver Eagle" Neece 60704898f2
Restructure CLI commands and add message queue management commands. 2020-09-21 09:06:24 -05:00
Buster "Silver Eagle" Neece a69c802a78
Make Sync (cron) tasks an event that plugins can attach to. 2020-09-20 07:07:09 -05:00
Buster "Silver Eagle" Neece 18daed36b0
#3042 -- Update Nowplaying library to apply fixes. 2020-09-16 06:56:25 -05:00
Buster "Silver Eagle" Neece 0de15ea673
#3096 -- Extend Doctrine redeliver timeout. 2020-09-14 19:14:13 -05:00
Buster "Silver Eagle" Neece c54836726f
#3170 -- Fix play icon switching for all files on the media manager. 2020-09-13 22:26:26 -05:00
Vaalyn 63a2aeab26
Add configurable time range for duplicate prevention (#3172)
* Add configurable time range for duplicate prevention

* Add missing belongsTo to duplicate prevention range setting

* Fix bug in calculation of least played song when duplicate can't be prevented by taking history timestamp_start into account
2020-09-13 19:03:04 -05:00
Buster "Silver Eagle" Neece 9d764ae9b5
(Ansible) set table length to avoid metadata storage error. 2020-09-06 16:46:27 -05:00
Buster "Silver Eagle" Neece a5a0149d26
Implement lazy-loading service locator for Webhook and Sync locators. 2020-08-28 05:32:33 -05:00
Buster "Silver Eagle" Neece 93ff68881f
Webhook and Sync Task Refactor
Moving service locator dependencies to their own Collections and make webhooks dispatch via MessageQueue messages.
2020-08-28 02:04:23 -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 0889916194
Better error handling through wrapping exceptions with richer requests. 2020-08-10 02:46:09 -05:00
Buster "Silver Eagle" Neece 51a2292803
Implement a custom crossfade function for live streams. 2020-08-02 12:32:55 -05:00
Buster "Silver Eagle" Neece ffa6d6b4fc
Auto-load most Vue component deps from Webpack manifest. 2020-07-15 03:00:17 -05:00
Buster "Silver Eagle" Neece 989ef42b49
Add theme class to body, update Codemirror styling. 2020-07-12 03:57:03 -05:00
Buster "Silver Eagle" Neece f3f845cf1a
#3020 -- Switch to MariaDB-based message queue. 2020-07-11 00:22:02 -05:00
Buster "Silver Eagle" Neece 6f66ff072b
Make Auth and Customization PSR-7 lifecycle friendly. 2020-07-09 23:15:27 -05:00
Buster "Silver Eagle" Neece 16ce83be51
Remove unused code. 2020-07-08 19:30:58 -05:00
Buster "Silver Eagle" Neece 2abb8bf623
Routine code cleanup. 2020-07-08 02:03:50 -05:00
Buster "Silver Eagle" Neece df7053e3f7
#3014 -- Update log level to string on GuzzleHTTP library. 2020-07-06 01:47:34 -05:00
Buster "Silver Eagle" Neece 26088a36ba
Move to Guzzle 7.x for PSR-18-compatible client. 2020-07-05 21:36:50 -05:00
Buster "Silver Eagle" Neece 62763250ca
Remove Sentry, simplify error handling.
Developer's note: the Sentry team has been very supportive of open-source and is good people! We simply don't use the library enough on our end to justify its dependencies in our codebase.
2020-07-04 11:08:53 -05:00
Buster "Silver Eagle" Neece 0adda37403
Incorporate new NowPlaying library
- Move much of AzuraCast's merging and client integration into the library itself
 - The library now uses typed properties on a return object for much more reliable hinting
 - Update both this library and SupervisorPHP to use PSR-17 and PSR-18 standardized factories
2020-07-03 15:24:04 -05:00
Buster "Silver Eagle" Neece b96d8dbaac
Update SupervisorPHP version to 4.x alpha branch. 2020-07-01 19:26:26 -05:00
Buster "Silver Eagle" Neece db2ba3f1ad
Finish migration to Symfony Messenger from Bernard. 2020-06-28 18:00:00 -05:00
Buster "Silver Eagle" Neece 9efa5a651e
Replace Bernard message queue with Symfony Messenger 5 2020-06-28 11:29:22 -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 0dea2de081
Update to Doctrine Migrations 3.x. 2020-06-25 03:47:49 -05:00
Buster "Silver Eagle" Neece 19bf99d836
Set default value for recording format. 2020-06-24 00:47:18 -05:00
Buster "Silver Eagle" Neece 3f162d484a
#2957 -- Use global "App.lang" for default translated strings. 2020-06-21 11:30:37 -05:00
Buster "Silver Eagle" Neece 903ffd7e63
Rework webpack building to be faster and reduce common load times. 2020-06-17 05:44:59 -05:00
Buster "Silver Eagle" Neece 6a335f4537
Minor refactoring; rename UploadAction to FlowUploadAction for clarity. 2020-06-16 05:43:31 -05:00
Buster "Silver Eagle" Neece 94640dbbb8
Remove "advanced" status on some essential fields. 2020-06-03 04:25:10 -05:00
Buster "Silver Eagle" Neece 0069df6d2d
Disable certain dangerous "advanced" features by default in new installs.
Some functionality of AzuraCast has always been intended for "Power Users", but seemingly no amount of warnings or labels will prevent users from discovering these features, misusing them, and either burdening our support channels or declaring AzuraCast to be "broken". With this update, new installations have some of these most dangerous settings (manual port assignments, manual directory selection, custom LS/Icecast config, etc.) disabled. They can easily be re-enabled by editing "azuracast.env" and turning them on, and will remain available for all previous users by default.
2020-05-27 02:36:30 -05:00
Buster "Silver Eagle" Neece 1c87b48bdb
#2834 -- Add CLI command to list user accounts.
Can be invoked by running CLI with "azuracast:account:list".
2020-05-26 02:38:18 -05:00
Buster "Silver Eagle" Neece f93b150d54
#2860 -- Make Queue display page share permissions of queue API calls. 2020-05-20 18:41:24 -05:00
Buster "Silver Eagle" Neece bd6d3203b1
Add On-Demand Streaming/Download Support (#2836)
This branch represents the initial earliest commit of a new option for radio stations that also want to make a portion of their media library available to the public (such as podcast episodes, royalty-free music, etc.) in an on-demand fashion.

Note: because of royalty restrictions with most radio stations, this feature is turned OFF by default on all stations, and even when enabled, station administrators must select each individual playlist that will contain on-demand available media.
2020-05-15 05:13:47 -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 9062903d6d
#2814 -- Slight refactor to address some router issues. 2020-05-08 19:40:34 -05:00
Buster "Silver Eagle" Neece 78c762ee4e
#2702 -- Use full request URI (sans path) for default base URL. 2020-05-05 20:42:14 -05:00
Buster "Silver Eagle" Neece 5203e8db08
#2654 -- Add InfluxDB debug CLI command. 2020-05-04 23:47:45 -05:00
Buster "Silver Eagle" Neece a961481e85
#2249 -- Add ability to update Now Playing metadata via API call. 2020-05-03 21:48:26 -05:00
Buster "Silver Eagle" Neece 945b4a83df
Implement per-station default album artwork. 2020-05-02 20:28:08 -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 382dbef1a1
#2707 -- Run the queue build sync task more often. 2020-04-21 01:59:15 -05:00
Buster "Silver Eagle" Neece 0fb3c8e2eb
Fix URLs in webhook tests; force HTTPS on thumbnail/image URLs. 2020-04-20 22:57:57 -05:00
Buster "Silver Eagle" Neece 2f173fca53
Restrict the permission needed to manage LS configuration. 2020-04-19 20:53:34 -05:00
Buster "Silver Eagle" Neece e82212629a
Make AutoDJ queue length per-station configurable. 2020-04-15 23:24:53 -05:00
Buster "Silver Eagle" Neece f1040f7fdd
Initial refactor to separate queue management from Now Playing process. 2020-04-15 00:23:11 -05:00
Buster "Silver Eagle" Neece 767fb5dd31
Add confirmation step to the "Restart to Apply Changes" menu items. 2020-04-13 01:49:59 -05:00
Buster "Silver Eagle" Neece 51f82d1ceb
Add back ability to import playlist file from existing M3U/PLS file. 2020-04-12 02:23:45 -05:00
Buster "Silver Eagle" Neece 135c9f21dd
Add "reshuffle playlist" button to dropdown for shuffle-type playlists. 2020-04-09 10:13:49 -05:00
Buster "Silver Eagle" Neece 66ded0a693
Move route groups to separate files to ease maintenance. 2020-04-07 23:19:24 -05:00
Buster "Silver Eagle" Neece 5903387eb9
Add button to clear all pending requests. 2020-04-06 23:54:28 -05:00
Buster "Silver Eagle" Neece 07ac05f990
Switch from Redis Mutex to a simpler local Lock mechanism. 2020-04-04 00:48:27 -05:00
Buster "Silver Eagle" Neece c59fca5933
Broaden permissions on profile API endpoint. 2020-04-02 17:13:26 -05:00
Buster "Silver Eagle" Neece f1025d52f7
Unify all station profile API calls into a single response. 2020-04-02 06:30:00 -05:00
Buster "Silver Eagle" Neece 66d55d33f1
Add an uptime wait function during the setup process. 2020-03-29 23:50:40 -05:00
Buster "Silver Eagle" Neece c851f92f27
Split Liquidsoap service control and configuration writer components. 2020-03-19 14:41:22 -05:00
Buster "Silver Eagle" Neece f5e9160b6f
Frontend package updates; add fullscreen to listener map. 2020-03-13 18:47:23 -05:00
Buster "Silver Eagle" Neece 62219946f3
Add LS Telnet commands to Debug page. 2020-03-10 17:30:02 -05:00
Buster "Silver Eagle" Neece 710c64e041
Run backups in background and show rolling log; new backup timecode check. 2020-03-08 17:49:48 -05:00
Buster "Silver Eagle" Neece 81fbf023b0
Add ability to supply a banned listener IP list via the web interface. 2020-03-01 18:03:03 -06:00
Buster "Silver Eagle" Neece 0939599532
Create new "Debug" page for testing internal functions in debug mode. 2020-03-01 10:26:49 -06:00
Buster "Silver Eagle" Neece 82b9ec685d
Create new "Edit Liquidsoap Config" page; allow editing in more places. 2020-02-23 06:58:47 -06:00
Buster "Silver Eagle" Neece 18a2089377
Formalize and define the new `/station/{id}/schedule` API endpoint. 2020-02-19 09:05:15 -06:00
Buster "Silver Eagle" Neece 33d2ed64ae
Implement Streamer Schedules, Schedule Enforcement and new Scheduled Items Panel on Profile (#2422)
* Commit new Schedule entity changes and new API endpoints.

* Fix possible cause of API POST errors.

* Fix syntax with JSON return slashes.

* Add "Schedule View" and "Enforce Schedule" settings to Streamers.

* Add "Scheduled" panel to Profile.
2020-02-17 22:32:14 -06:00
Buster "Silver Eagle" Neece dbba8e3c00
Add ability to specify admin pw and load clients for remote relays. 2020-02-12 23:37:45 -06:00
Buster "Silver Eagle" Neece 027590dc54
Cleanup and optimization relating to the recent AzuraCore merge. 2020-02-12 20:29:42 -06:00
Buster "Silver Eagle" Neece bddbab4e02
#2395 -- Fix default database name on Ansible installs. 2020-02-07 02:13:38 -06:00
Buster "Silver Eagle" Neece 4d4d75ad4d
Reunify AzuraCore and AzuraCast repositories. 2020-02-05 20:35:13 -06:00
Buster "Silver Eagle" Neece 5ccb3798dc
Add ability to delete individual broadcasts. 2020-02-03 01:15:57 -06:00
Vaalyn 4edbe6cd2a
Fix issue 2141 (#2362)
* Fix backups download route path

* Add download attribute to backup download link
2020-01-30 15:57:30 -06:00
Buster "Silver Eagle" Neece 41edc21987
Add ability to add folders to playlists and auto-assign contents. 2020-01-30 15:48:34 -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 78eb312ec7
#2326 -- Add ability to uninstall GeoLite database. 2020-01-24 14:45:45 -06:00
Buster "Silver Eagle" Neece 71a91cc12d
#2325 -- Fix settings error on Ansible installations. 2020-01-22 23:04:50 -06:00
Buster "Silver Eagle" Neece 72013d105f
Expand SFTP username length to 32. 2020-01-22 18:44:15 -06:00
Buster "Silver Eagle" Neece 31c34ebbc4
Abstract IP Geolocation services and add DBIP support. 2020-01-22 04:48:02 -06:00
Buster "Silver Eagle" Neece 2c093abfe3
Update syntax on SHOUTcast authhash form. 2020-01-21 00:26:21 -06:00
Buster "Silver Eagle" Neece feeb8b9af1
#2306 -- Partially revert removal of "Prefer Browser URL" setting. 2020-01-21 00:02:06 -06:00
Buster "Silver Eagle" Neece b6f558eb54
Always prefer browser URL and always enable SFTP server.
Both settings are no longer relevant and turning them off would cause unexpected issues, so they're being removed completely instead to ease configuration difficulty.
2020-01-15 14:52:47 -06:00
Buster "Silver Eagle" Neece 14ecffa4b7
Make WebDJ link always-HTTPS in sidebar; fix possible JS issue. 2020-01-10 23:56:45 -06:00
Buster "Silver Eagle" Neece 343a0a6e46
Move Vue, uncompiled JS, etc. files out of public web directory. 2020-01-08 20:25:38 -06:00
Buster "Silver Eagle" Neece a208c172df
Switch to "provide license, download automatically" for GeoLite DB. 2020-01-08 14:37:56 -06:00
Buster "Silver Eagle" Neece ebb6349ae1
Rename Sftp class, use new external auth support. 2020-01-08 13:24:33 -06:00
Buster "Silver Eagle" Neece e9d8775af6
Switch from FTP to SFTP on Docker installations. 2020-01-05 15:29:56 -06:00
Buster "Silver Eagle" Neece 388bcee951
#2250 -- Handle MaxMind no longer offering free public downloads.
- Remove automatic download attempt from Ansible installation process
 - Allow listener report to function without the MaxMind database present, but with error messages
 - Create new "Install GeoLite Database" page in system administration, allowing user upload of the MaxMind database, with instructions
2019-12-31 06:49:25 -06:00
Buster "Silver Eagle" Neece c72be08e99
Make the "reprocess media" command allow one station only. 2019-12-15 02:53:04 -06:00
Buster "Silver Eagle" Neece 7fea11f544
Enable "Prefer Browser URL" by default. 2019-12-02 18:46:24 -06:00
Buster "Silver Eagle" Neece 440687e93b
Settings forms code refactor, fixes #2171. 2019-11-25 21:25:29 -06:00
Buster "Silver Eagle" Neece 42d08db5a2
Add internal "get IP" command for PureFTPD. 2019-11-22 04:44:03 -06:00
Buster "Silver Eagle" Neece 19dd927189
Finish initial buildout of new playlist editor. 2019-11-06 15:19:32 -06:00
Buster "Silver Eagle" Neece 74e9154e74
Finish initial buildout of new modal Playlist form. 2019-11-06 02:57:39 -06:00
Buster "Silver Eagle" Neece 27be5deead
Style updates, form refactor for both Media and Playlists. 2019-11-05 16:55:27 -06:00
Buster "Silver Eagle" Neece 54140c4674
Update loaded assets and finish "reorder" functionality. 2019-11-04 15:59:52 -06:00
Buster "Silver Eagle" Neece a44f9fe0bb
Further dev work on new playlist manager. 2019-11-03 20:19:25 -06:00
Buster "Silver Eagle" Neece 20abb359c0
Create Vue components and move Playlist endpoints to API. 2019-11-03 00:22:00 -06:00
Buster "Silver Eagle" Neece 9fc7a6328a
DB migrations and initial API endpoint preparation. 2019-11-02 13:50:21 -05:00
Buster "Silver Eagle" Neece 80b7ca9461
Stop the task processor if the EntityManager is closed. 2019-10-31 21:52:09 -05:00
Buster "Silver Eagle" Neece 0112568041
#2068 -- Move "write playlist to disk" task to the message queue. 2019-10-29 14:49:03 -05:00
Buster "Silver Eagle" Neece d90d48bc54
Fix password field name on administration page. 2019-10-29 04:27:03 -05:00
Buster "Silver Eagle" Neece 2f03b038f7
Refactor Account/Profile sections and fix #2099 (2FA setup errors). 2019-10-26 18:35:24 -05:00
Buster "Silver Eagle" Neece cd72560032
Update Composer deps, switch to Docker image for CA cert updates. 2019-10-24 23:46:05 -05:00
Buster "Silver Eagle" Neece 7f96916a0d
#2076 -- Revamp how album art changes are handled.
- All media rows will have an "art_updated_at" field that tracks the latest time the art was changed for the file.
- If this field is set to zero (0), the system will return the default album art instead of attempting to resolve an album art URL that we know won't go anywhere.
- The timestamp of the latest update is now included in the album art image SRC, so we can maintain our very long caches without interfering with album art updates.
2019-10-24 14:37:27 -05:00
Buster "Silver Eagle" Neece 047d19e972
Protect against accidentally loading the same dir, but with a prepended slash. 2019-10-22 01:39:07 -05:00
Buster "Silver Eagle" Neece 17d306b970
Enable Web Radio Proxy by default on new installations. 2019-10-20 00:44:33 -05:00
Buster "Silver Eagle" Neece ff7d741455
Fix upload namespace on routes. 2019-10-10 20:51:55 -05:00
Buster "Silver Eagle" Neece 7f55696b47
Add new media manager album art tab. 2019-10-10 20:22:02 -05:00
Buster "Silver Eagle" Neece 1d2ed5fa55
Move file routes to API endpoints and add inline renaming. 2019-10-09 21:13:04 -05:00
Buster "Silver Eagle" Neece 4048ddcc01
Add bootstrap-vue to assets; finish initial Media Manager buildout. 2019-10-06 04:16:16 -05:00
Buster "Silver Eagle" Neece d79c19c887
#2032 -- Return to using global Vue for drop-in components. 2019-10-04 03:02:53 -05:00
Buster "Silver Eagle" Neece e0efde8612
Move Webcaster deps locally and switch Vue-i18n to Vue-gettext. 2019-10-03 22:12:15 -05:00
Buster "Silver Eagle" Neece 28765bd489
Bring Vue-i18n back until it's fully phased out. 2019-10-03 02:16:53 -05:00
Buster "Silver Eagle" Neece 8e49ea60c1
Switch to gettext method of Vue component localization. 2019-10-03 02:11:22 -05:00
Buster "Silver Eagle" Neece d207a8ae83
Add "auto_assign" to custom field. 2019-09-30 03:33:20 -05:00
Buster "Silver Eagle" Neece 9a2f837586
Pull list of ID3v2 tags and add to custom field form. 2019-09-30 03:33:20 -05:00
Buster "Silver Eagle" Neece c0d5365407
Prevent showing both "start station" and "restart station". 2019-09-29 19:01:15 -05:00
Buster "Silver Eagle" Neece 14de279bdf
Dependency-inject fixtures. 2019-09-29 16:45:05 -05:00
Buster "Silver Eagle" Neece d7819a6993
Migrate Doctrine repositories to composited, DI-friendly classes. 2019-09-29 02:50:24 -05:00
Buster "Silver Eagle" Neece 9a8b095521
Switch back to Certainty and use a less frequent, non-per-request update process. 2019-09-27 21:07:33 -05:00
Buster "Silver Eagle" Neece 55d2a17119
Change "Name" in user form to "Display Name" to confirm it isn't a username. 2019-09-24 18:19:51 -05:00
Buster "Silver Eagle" Neece a98aebb8e0
#1976 -- Add ability to restart a single station from CLI. 2019-09-18 21:31:13 -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 bf8bece9ac
#1954 -- Fix some LS commands on Ansible installs. 2019-09-11 12:58:22 -05:00
Buster "Silver Eagle" Neece fb54e4ee78
Begin refactor of CLI commands to use new Silly DI format. 2019-09-10 18:10:57 -05:00
Buster "Silver Eagle" Neece 1ae761efd8
More "station_id" rename fixes. 2019-09-09 23:13:11 -05:00
Buster "Silver Eagle" Neece a4a146673e
More fixes to allow for new PHP-DI bridge integration. 2019-09-09 23:02:08 -05:00
Buster "Silver Eagle" Neece 46fe1256cd
Transport 2FA secret via session rather than form input variable. 2019-09-04 10:25:31 -05:00
Buster Neece 457c4896f6
Add support for the FTP service notifying app of new uploads for processing. 2019-08-26 17:05:32 -05:00
Buster Neece 1a1a18dfe7
Add integrated FTP upload support. 2019-08-25 17:50:20 -05:00
Buster Neece 0953182033
Localization Overhaul
- Replace several "add %s", "remove %s", "manage %s" strings with dedicated strings for each action
- Make API responses locale-aware and translated
- Make CLI locale-aware and translated
- Add initial support for Turkish language
2019-08-21 17:34:05 -05:00
Buster Neece d4b2b22428
Reduce number of concurrent Redis connections by consolidating to one DB. 2019-08-17 20:33:44 -05:00
Buster Neece 297356a7e3
Turn the live websockets off by default, but still easily enabled. 2019-08-16 12:23:35 -05:00
Buster "Silver Eagle" Neece 37c69afe85
Implement Audit Log (#1859)
Add a new "Audit Logs" table (and corresponding administrative page) that tracks inserts, updates and deletes to important database entries, along with tracking the user who made the change.
2019-08-14 18:50:53 -05:00
Buster Neece a38d24ba43
Switch to using AC Central for IP determination; add IP to streamers page. 2019-08-10 02:45:17 -05:00
Buster Neece 2f8ab5544a
Switch back to Request/Response decorators. 2019-08-09 10:00:21 -05:00
Buster Neece fa68598fce
Remove the two un-autowireable middlewares. 2019-08-06 23:43: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 fab08ff763
Clean up SoundExchange report and remove duplicate PHP file. 2019-08-02 22:26:13 -05:00
Buster Neece 68088fbd05
Create a page showing AzuraRelay instances. 2019-07-31 22:20:06 -05:00
Buster Neece bc1c2cb871
Allow disabling of websocket updates; improve NP time counter stability. 2019-07-31 13:47:12 -05:00
Buster Neece be7459c57d
Switch to older (but more reliable) way of sending nchan messages. 2019-07-31 13:23:03 -05:00
Buster Neece bec2880f2c
Use nchan library from npm and directly import into Vue. 2019-07-26 18:51:59 -05:00
Buster Neece 83f3d407a5
Bring nchan back. 2019-07-25 23:54:25 -05:00
Buster Neece 5a9ec823e4
Make relays an internal URL and prevent :443 infinite redirects. 2019-07-23 11:51:06 -05:00
Buster Neece c9e0d8ee93
Update autocomplete on new-password/CSRF; composer update. 2019-07-20 20:31:03 -05:00
Buster Neece b5cd364402
Bring back the AzuraCast AutoDJ (and "Next Song"). 2019-07-17 16:29:21 -05:00
Buster Neece ffcf01adc8
Fix migration, add POST relay update and remote adapter. 2019-07-15 18:47:05 -05:00
Buster Neece 3a1faa3887
Add DB migration, entity and editable checks. 2019-07-14 23:47:39 -05:00
Buster Neece 419d524744
Add new relays API endpoint and fix response docs on some other endpoints. 2019-07-10 12:45:54 -05:00
Buster Neece 56e6b4c232
Unify CLI commands 2019-07-10 00:45:10 -05:00
Buster Neece fd01cf78be
Use dirrty jQuery library for more accurate "form is changed" detection. 2019-06-27 16:09:40 -05:00
Buster Neece a6fa2bbad0
Fix password-change checking the original password and confirming the new one. 2019-06-27 03:30:27 -05:00
Buster Neece eea56852eb
Consolidate documentation onto site homepage and update relevant links. 2019-06-21 18:27:18 -05:00
Buster Neece b95449064a
#1606 -- Move fonts back to local so entire UI is self-hosted. 2019-06-19 02:21:21 -05:00
Buster Neece fab95b13f7
Switch to smaller 10-year range timezone data. 2019-06-03 18:09:29 -05:00
Buster Neece 20100f0c31
Add station clock to sidebar. 2019-06-03 14:58:44 -05:00
Buster Neece 2e5b829efc
Switch to sortablejs to remove a jQuery dep and fix NPM audit reports. 2019-06-02 19:23:17 -05:00