|
|
|
|
Changelog for ampache-lang-6.5.0-1.1.noarch.rpm :
* Mon Jun 10 2024 ecsos - Update to 6.5.0 * Added - Translations 2024-06 - Add playlist_search as a browse type. (combined playlists and smartlists) - Allow sorting playlists by type, rating and item count - Allow sorting searches by type, limit, rating and random status - Ensure catalog is available on media browses - Add many missing database columns to browse sorts and filters on all browses - Show ratings on smartplaylist objects in the WebUI - Add a permalink in the search form to allow people to share or bookmark a search + Database 600073 - Add indexes to object_count - Drop and recreate tmp_browse to allow InnoDB conversion - Add last_count to the playlist table - Use InnoDb for all tables by default on new installs * Changed - Extract the Query class into individual classes - Album browse artist was only selecting album_artist - Check a session exists before trying to insert it - Check theme with glob instead of reading file paths using opendir + Subsonic - Convert getPlaylists process to a browse * Removed - Remove disk sort from album browse - Remove album sort from artist browse - Remove call_sign and frequency from live_stream browses (whatever they were) * Fixed - Fixed search rule JS showing the wrong lists id\'s in select items - catalog browses using incorrect column - artist browse by song_artist wasn\'t in the valid list - Missing video browse filters on clip, movie, personal_video, tvshow, tvshow_season and tvshow_episode browses - Random (rand) was missing from a lot of query types as a valid option - For searches, random sort was random sorting the sql and ignoring the random column (use rand for random result sorting) - Icon text spacing was out of alignment on some object pages - Sort before any other browse action in case you delete the joins - phpmailer error info parameter is a property - Stream::delete_now_playing query didn\'t work - Transcode format checks were overwriting bitrate and format parameters - Playlist::get_media_count() was ignoring other media types - Don\'t show an update notification when the latest version is missing or matches - Check for valid numeric numbers on tags for rating during import + Subsonic - Chat messages couldn\'t be added to the public chat + CLI - Check catalog path is readable on updateCatalog actions - Don\'t try to clean a file if it wasn\'t valid media - Runtime error when importing new genre tags [#] API 6.5.0 * Added + API6 - Add songartists to all album data responses. (In an album artists=album_artists, songartists=song_artists) - artist_albums: add album_artist as an optional parameter - get_indexes: add catalog, album_artist and song_artist as possible type values - list: add catalog and song_artist as possible type values * Changed - Reset any existing browse when calling Api::getBrowse() - Filter duplicate search names outside of the data classes and filter on browses + API6 methods converted to Browse - artist_albums - artist_songs - browse (catalog types) - catalogs - followers - genre_albums - genre_artists - genre_songs - get_indexes (catalog and playlist types) - index (catalog and playlist types) - label_artists - license_songs - list (playlist types) - playlists - podcast_episodes - stats (random playlist types) - user_playlists - user_smartlists + API5 methods converted to Browse - get_indexes (playlist types) - playlists - stats (random playlist types) + API4 methods converted to Browse - get_indexes (playlist types) - playlists * Fixed + ALL - html_entity_decode include, items and tracks parameter for applicable methods - Rating and flag data for smartlists was using incorrect id - playlist_edit: track insert broken by removing table constraint - playlist_edit: workaround sending owner username instead of ID - playlist_add_song: When using unique_playlist don\'t grab the whole playlist + API6 - list: sorting was by id instead of name - browse: sorting was by id instead of name - download: The API can use searches as playlists so check for the smart_ prefix - stream: The API can use searches as playlists so check for the smart_ prefix - Respect album sort preferences in all album object responses - Add cond and sort parameters to browse methods - album_songs - albums - artist_albums - artist_songs - artists - browse - catalogs - followers - genre_albums - genre_artists - genre_songs - genres - get_indexes - index - label_artists - labels - license_songs - licenses - list - live_streams - playlists - podcasts - podcast_episodes - shares - songs - user_playlists - user_smartlists * Fri May 03 2024 ecsos - Update to 6.4.0 This update has became quite large and work to make sure this branch stays stable for the long term will continue. * Check your config file encode_args First up there is some manual work for you if you\'ve enabled for transcoding. Double check your config and remove the K from %BITRATE%K. Transcoding commands are sent in bytes so adding a K to the command multiplies it by 1000! * Added - Translations 2024-05 - rtrim slashes on some config variables in case you ignore the warning + Database 600070 - Allow signed user column for broadcast, player_control, session_stream, share, user_activity, user_follower and user_vote tables - Revert unique constraint playlist_track_UN on playlist_data table - Extend generator column on podcast table to 128 characters - Convert object_type to an enum on playlist_data table + Config version 71 - Fix up bitrate encode_args - Add api_debug_handler run api commands without exception handling (At your own risk!) - Wrap default string config options in quotes - Add a note about using a secure cookie prefix * Changed - Stream Random action default fallback to song - Allow using tmp_dir_path for Dropbox catalog + Subsonic - Song file path is now always the original full file path - This was a relative path that was changed with transcoding meaning the path never existed. + Random search (random.php?action=advanced) artist and album actions have been changed to use their object rules - The returned results are still song objects but the searches are done using their rule set * Fixed - Always get the current file size when downloading the raw file - AlbumDisk errors on unknown items - Album names being overwritten with artist names when missing tags - Regenerate playlist track numbers correctly for the full list - Also check the bitrate when transcoding instead of just formats - Don\'t use cached files if the bitrate doesn\'t match transcode_rate - Default config encode_args are putting bitrates into millions - URL links generated with & that were causing errors - Song license display - Check Stream_Playlist::media_to_url() to ensure valid media - File naming fixes to stop matching year on 1080p - ObjectTypeToClassNameMapper missing tvshow class - Allow composer stan to run on Windows - Filter Random and Trending sections for catalog filters on dashboards - MusicBrainz lookups on Wanted files - Don\'t try to get playlist items when it\'s not a valid list - Send a 416 HTTP response when trying to stream past the end of a song - Stream_playlist columns could be inconsistent with different media types in a list - Compare Ampache version string is actually higher using version_compare() instead a not equals comparison + webplayer - Send the Song time to the player to stop all these wild numbers + Subsonic - Sending a User as an array instead of Users [#] API 6.4.0 There is a new config option called api_debug_handler. This will instruct the server to run api commands without exception handling. Very useful for API devs and not recommended for anyone else. * Added + API6 - Downgrade any API7 calls to API6 wiki - New Method: player (Inform the server about the state of your client player) - Returns now_playing state on completion - download: add bitrate parameter - playlists: add include parameter (note this can be massive and slow when searches are included) * Changed + API6 - Do not translate API errorMessage strings ampache.org * Fixed + ALL - Download method format parameter didn\'t have a fallback value + API4 - playlist: error check for missing/deleted playlists - playlist_songs: error check for missing/deleted playlists + API6 - Playlists objects would not return duplicates items if allowed - has_art property missing from songs and albums - playlist_add: couldn\'t add a single item * Sat Mar 23 2024 ecsos - Update to 6.3.1 * Added - Added an option to clean a folder path on the Show Catalogs page * Changed - Show full playlist names on the personal favorite plugins (missing username) - Block direct stream for shared file when share is disabled * Removed - Config options write_id3 and write_id3_art don\'t do anything so remove them * Fixed - Add missing album name through browser Media Session API - Fixed PHP caching false values when expecint an int - Typo for disabled song display - Show the count of returned art in the log - Don\'t show private playlists on browse or direct link if you don\'t have access - Refresh Democratic playlist on vote removal, and clear the votes on clear all - Preference text box possible XSS + Search - Added some documented aliases for rules that were missed - Fixed NOT SOUNDS LIKE responses - Don\'t scrub search input in the SQL (parameters are sanitized) - Rule input XSS in JS + Subsonic - Array not set on some items in JSON responses * API 6.3.1 + Added - API6 - New Method: now_playing (Get what is currently being played by all users.) * Wed Mar 13 2024 ecsos - Update to 6.3.0 * Added - Translations 2024-03 - Lots more static typing on missing function returns - Dynamic properties on the Captcha classes - Add opml import (and export) for podcasts + Database 600060 - Update Last.FM plugin preferences that could be incorrect - Spell category and subcategory correctly - Add unique constraint playlist_track_UN on playlist_data table - Remove Flattr plugin (Service has been discontinued) - Convert object_type to an enum on image, rating, user_flag, user_activity, object_count, share, cache_object_count tables * Changed - Split database updates into small migration classes - Change usage of State in podcast_episode pages for Status - Song additional metadata classes have been updated - When searching art limit results per-plugin instead of total results - Extend valid Share objects - Update composer scripts and checks - Don\'t send a cached file that does not match a requested target format * Removed - Flattr service has shut down, so remove the plugin - php cs-sniffer from the project root and scrutinizer * Fixed - Catalog Filters could not be edited after creating - Catalogs were not cleaned up from the catalog_filter_group_map table - Wanted errors on an empty global user - Public users can not cache playlist browses - Last.FM plugin errors with preferences and linking accounts - Fix up localplay commands for Kodi/XBMC clients - Playlists were sorting by object type - User::get_user_data was not putting the default return in correctly - Unable to use bin/cli export:playlist undefined method - Playlist had some issues adding songs - Localplay and jukebox mode improvements (VLC and XBMC) - Don\'t search for wanted albums on an invalid artist - Browse filtering for album artist and song artist in certain situations - Don\'t send an empty query to the database - Remove stray span and use valid lang value on installer pages - Updating array preferences - Showing favicon - Publication date of RSS feeds + Search - Rule inputs were being json encoded twice - Genre search joining catalogs when they\'re not needed + Static typing errors - Updating album data when original_year is missing - Template show_recently_played with a non-database song - Use isNew() to check for valid objects to avoid type errors - Check for valid media before zip operations + Subsonic - Data for starred results was not always an array - Send correct art respecting show_song_art again * API 6.3.0 + Added - API6 - New Method: search_group (return multiple object types from a single set of search rules) - New Method: search (alias for advanced_search) - New Method: user_playlists (return user playlists and does not include smartlists) - New Method: user_smartlists (return user smartlists (searches) and does not include playlists) - New Method: playlist_add (add songs to a playlist, allowing different song parent types) - New Method: index (replaces get_indexes with a simpler list of id\'s. children can be included) - Add has_art parameter to any object with an art url - Add avatar url to user objects + Changed - API6 - playlist_add_song: depreciated and will be removed in API7 (Use playlist_add) - share_create: add more valid types (\'playlist\', \'podcast\', \'podcast_episode\', \'video\') - user: make username optional + Fixed - ALL - Userflag wasn\'t sending bool when cached in the database - Admin would always get everyones playlists when filtering - Stream methods would not send the bitrate correctly - API4 - playlists method not respecting like for smartlists - API5 - playlists method not respecting like for smartlists - API6 - playlists method not respecting like for smartlists - playlist_edit method will decode html , separators * Pull requests this release - Split the Update.php class into small migration classes (#3767) - Correct some type issues (#3770) - subsonic: do not send a different cover id for each song of the same album (#3768) - Use \"Status\" string rather than \"State\" which can be confused by Country (#3769) - Add opml import for podcasts #3737 (#3772) - Correct/Update some type hints related to recent stan errors (#3773) - Remove some unused code (#3774) - Fix #3778 (#3780) - Remove Flattr support (#3782) - Correct song metadata creation (#3777) - XBMC localplay improvements (#3783) - Correct doubled array index (#3784) - Solve an annoying api related type issue (#3785) - Remove unused imports (#3786) - Remove MetadataFieldRepository::findAll (#3787) - Correct some type issues due to the recent phpstan update (#3788) - Remove usages of Podcast::update() (#3789) - Try to bring back the scrutinizer code coverage (#3790) - Set scrutinizer memory-limit to indefinite (#3791) - Localplay and jukebox mode improvements ( Vlc and Xbmc ) (#3794) - Extract playlist import from Catalog_local (#3795) - Re-arrange the tag-count retrieval query (#3797) - Add ShareRepository and begin migrating some static methods (#3796) - Move podcast episode download limit retrieval into PodcastSyncer (#3799) - Perform some changes related to qa (#3798) - Remove php cs-sniffer from scrutinizer, too (#3800) - Vlc localplay improvements (#3802) - Rework the LicenseRepository (#3801) - Dont try to search for recommendations for invalid artists (#3805) - Update rector to 0.19 (#3803) - Replace License loading by repo-method (#3806) - Allow the user api method to return the current user info (#3807) - Replace the metadata-repositories (#3804) - Split up podcast-related repositories (#3808) - Replace all remaining usages of Core::verify_form by RequestParser (#3810) - Start reworking the PrivateMessageRepository (#3811) - Refactor Wanted- and LiveStreamRepository (#3809) - scrub_in all the search inputs (#3825) - Upgrade rector to its first major version (#3818) - Cleanup/Optimize some qa-related settings (#3821) - Correct a bunch of type issues (#3822) - Start replacing podcast-episode properties with getters (#3823) - Define defaults for democratic playlist properties (#3826) - Start the implementation of a BaseRepository and a generic ModelInterface (#3819) - Add tests for BookmarkRepository (#3820) - Add ImageRepository (#3824) - Prepare the WantedRepository to extend BaseRepository (#3828) - Extract missing-artist retrieval from Wanted (#3829) - Align Catalog properties types to the database columns (#3832) - don\'t query an empty query (#3835) - Extract cleanup methods from Art-class (#3827) - Add tests for LabelRepository (#3831) - Really show default favicon by default (#3842) - Replace the f_file and f_full_title properties by a method (#3836) - Extract more wanted-logic into separate classes (#3837) - Move database-related methods from Share into ShareRepo (#3838) - Extract the creation of new share-items (#3840) - Move some more methods from Artist/Album into their repos (#3843) - Remove stray span and use valid lang value on installer pages (#3849) - Fix the publication date of RSS feeds. (#3861) - Remove genre and stream from useractivity deletion (#3866) * Mon Feb 26 2024 ecsos - Adjustments patch macro for rpm 4.20. * Tue Jan 09 2024 ecsos - Update to 6.2.1 * Added - Translations 2024-01 - Add podcast opml export to the podcasts page - Advertise WebPlayer song info via MediaSession API / MPRIS * Changed - Replace all remaining occurrences of FILTER_SANITIZE_STRING - Enable user_no_email_confirm to disable email requirements for user registration. (When mail_enable is false registration was blocked) - Verify catalog by song instead of album - Catalog verify will now use the config option catalog_verify_by_time and only check songs not updated since the last full verify - Don\'t update counts and collect garbage after updating individual songs - PlayAction stream_select will now block until there is data * Fixed - Skipping non-songs would create a runtime error - db update_600005 shouldn\'t use $album->get_fullname which changed in update_600027 - Upload page showing non-uploads - Showing extra title for podcasts - Captcha image generation - Registration check logic - Search error loading empty rules - Add from path on the catalog admin page - Reading tags on bad files would load the bad tags - Stop trying to read bad files before loading tags - Catalog update dates were set when the process was finished which negates update_time checks - Song update_time wasn\'t allowed to update - Check update_time in Catalog::count_table sql so you only verify what you need to - Transcode can\'t use range in headers - Empty result error on Stats::get_object_count + Subsonic - Search2 and Search3 ignored musicFolderId * API 6.2.1 - NO CHANGE * Fri Dec 22 2023 ecsos - Update to 6.2.0 * Added - Translations 2023-12 - Allow translations for plugin names - GitHub action to lint master and develop branches for php7.4 - Lots of code test coverage - Allow sharing podcast_episode objects - Add refresh button to the rightbar and some of the ajax index modules - Hide the filterbox when your browse can\'t use it + Database 600049 - Set correct preference type for use_play2 - Add user preference jp_volume, Default webplayer volume - Add system preference perpetual_api_session, endless api sessions. (AT YOUR OWN RISK) - Add column last_update and date to search table - Add user preference home_recently_played_all, Show everything in the now playing box - Add user preference show_wrapped, Access your personal \"Spotify Wrapped\" from your user page - Add date column to rating table - Update link for FMPL license * Changed - Upgrade phpunit to version 10 - Updated codestyle rules to PSR12 - Update php_codesniffer to 3.8 - Static typing to all database fields - Update composer for ampache/ampacheapi-php dev-master - Allow range header on transcode streams - 404 error on invalid media streams - Use curl instead of fopen for podcast episode downloads - Track the date of ratings in user_activity table - Add a confirmation to the Clear Stats button on the catalog page * Removed - Duplicate show_playlist UI actions * Fixed - Empty global error on index page - Check the file/url before importing with import_playlist - Large docstring cleanup: remove unneeded tags and trim names - Correct ip history rendering in case of a invalid user - Make sure something is also unplayed when total_count is 0 - Thousands of phpstan code issues - Can\'t uninstall catalog modules - Database updates tested from ampache-3.9.0 -> develop - Missing AND in play_count update SQL - Undefined variable and query spacing in SQL for get_uploads - Share options not checked correctly when creating a share - Dynamic properties on Tmp_Playlist and Captcha - Lots of checks for valid and invalid objects - Do not fail on plugin reinstall (just install missing preferences) - Failures on nullable valuse with static typing - Errors on user_data checks that didn\'t exist yet - Use your default album sort on browses and set it correctly - Filterbox bugs with playlists and labels - Update from tags didn\'t respect your tag order - Remote catalogs couldn\'t import song data correctly - Podcast episode downloads would be blocked from some redirects - get_recently_played SQL was really slow + Bitly plugin updated to v4 API - Requires a Bitly account - Generate a token at [(https://app.bitly.com/settings/api)] - Get your group_guid from https://app.bitly.com/{GROUP_GUID} or Account Settings > Groups (the GUID is in the URL) - Add missing properties on public users. (-1) + Subsonic - Url protocol checks not compared correctly for setServer * API 6.2.0 * Added - API: Allow non-expiring user sessions when using a header token - Allow endless api sessions. (You should start using http header auth to hide these) * Changed - Set default API version to 6 (was 5) - Allow raising and lowering response version on ping to any version + API6 - Return error on handshake version failure * Fixed - ALL - UrlToSong couldn\'t handle encoded urls - API3 - Video data would get an incorrect stream url - API5 - bookmark_create: type is mandatory - API6 - bookmark_create: type is mandatory * Fri Nov 03 2023 ecsos - Update to 6.1.0 * Added - Translations 2023-10 - Read more tag frames for disksubtitle + Database 600042 - Index label column on the label_asso table - Add user preference bookmark_latest, Only keep the latest media bookmark + Config version 69 - Add user_create_streamtoken (Add a streamtoken to the account when a new user is created) + Browse - Sort artist by time - Sort album by disk, time, version - Sort podcast, podcast_episode, playlist and search by rating - Sort song by album_disk - Added album_disk sorting * Changed - Restore album sort links again when split by group - Default visibility for new playlists is public - Garbage collect empty labels. (Keep user-generated labels) + CLI - -t|--garbage don\'t collect garbage for each catalog, just do it at the end + Subsonic - Updated Apache .htaccess.dist to support Subsonic clients that don\'t use *.view for calls - createplaylist: Default visibility for new lists is public * Fixed - Header auth with a Bearer token would always fail - Song rows were showing album links instead of album_disk - Null artist time\'s not updating - Rating album_disk objects would not refresh the value - Creating a newalbum_disk inserting the song id instead of the album id - SQL generation for browse sorting with comma and space in the text - album_disk disk_count wasn\'t updated - AutoUpdate notifications - Fix a lot of code Runtime Errors - Handle GatherSpotify exceptions and empty results - Catalog was not garbage collecting the bookmarks table + Browse - Massive code quality updates to the browse/query class - Don\'t overwrite a browse box title if set - Sorting and filtering on works correctly - Genre browse page HTML div name using bad names - album_disk was sorting album + Search - Respect limits for subsearches again - search_user_id fallback for searches without a user + Subsonic - Runtime Errors when you have not done things before * API 6.1.0 Two new methods have been added The bookmark methods have had a bit of a rework as they were not very useful Finally the issues with setting your auth token in the http header have been fixed * Added * API6 - New Method: bookmark (Get single bookmark by bookmark_id) - New Method: lost_password (Allows a non-admin user to reset their password) - bookmark_create: Add include parameter (if true include the object in the bookmark) - bookmark_edit: Add include parameter (if true include the object in the bookmark) + get_bookmark - Add include parameter (if true include the object in the bookmark) - Add all parameter (if true include every bookmark for the object) + bookmarks - Add parameter client to filter by specific groups of bookmarks - Add include parameter (if true include the object in the bookmark) * Changed * API5 - bookmark_edit: show error on missing bookmark instead of empty object - bookmark_delete: show error on missing bookmark instead of empty object * API6 + get_bookmark - add bookmark as a valid object_type - Don\'t return single JSON bookmarks as an object - bookmark_create: Remove client parameter default value (\'AmpacheAPI\') + bookmark_edit - Remove client parameter default value (\'AmpacheAPI\') - show error on missing bookmark instead of empty object - add bookmark as a valid object_type - Don\'t return single JSON bookmarks as an object + bookmark_delete - Remove client parameter default value (\'AmpacheAPI\') - show error on missing bookmark instead of empty object - add bookmark as a valid object_type * Fixed * ALL - Some JSON methods with empty results would not show total_count in results - handshake: auth failure with header token - playlist_generate: Don\'t error when optional mode and format are not set - advanced_search: runtime error on empty data type * API4 - Fix lots of Runtime Error\'s on missing optional data * API5 - Fix lots of Runtime Error\'s on missing optional data - video: error type was song instead of filter - genre_artists, genre_albums, genre_songs: Parameter filter runtime errors - download: random search/playlist didn\'t use the id parameter - stream: random search/playlist didn\'t use the id parameter + bookmark_edit - Missing user id in data array - Not able to edit all bookmarks * API6 - Fix lots of Runtime Error\'s on missing optional data - video: error type was song instead of filter - catalog_folder didn\'t get the group of items correctly - genre_artists, genre_albums, genre_songs: Parameter filter runtime errors - download: random search/playlist didn\'t use the id parameter - stream: random search/playlist didn\'t use the id parameter + bookmark_edit - Missing user id in data array - Not able to edit all bookmarks * Fri Sep 29 2023 ecsos - Update to 6.0.3 * Added - Translations 2023-09 - Added refresh button on smartlists so you don\'t have to overwrite the rules each time * CLI - New cli command bin/cli run:addCatalog (Create a local catalog) * Database 600040 - Add custom_timezone as a user preference - Add disksubtitle to song_data and album_disk table * Config version 68 - Add date_timezone (Allow custom timezone for date formatting) * Changed - Lyrist plugin regex be a bit looser with user input and regex /api/ on the end of api_host - Don\'t try and load preferences page without a user to load - Check for downsample_remote conditions on song play_url generation - Don\'t downsample songs during a stream (play_url should catch this before you stream) - Sort album browse pages based on your album_sort preference * Fixed - Error checking user temp playlist could give you a blank index page - Runtime errors with missing data - Missing translations for language list - Select uploaded artists using the artist instead of song - Missing column in Search::get_searches SQL - Updating artist_map too much - Last.fm lookup url was missing an & for albums - Don\'t try to load an album_disk that doesn\'t have an album - Restore sorting on album lists and browses that aren\'t grouped by release_type - Catch Spotify runtime error on retry as well as initial attempt * API 6.0.3 * Added - API5::playlist_songs: Add random to get random objects filtered by limit * Fixed * ALL - handshake: runtime errors with bad username - handshake: Don\'t error on empty data counts - ping: Don\'t error on empty data counts * Api6 - list: searches were missing from playlists - browse: XML returned a list instead of a browse object * Thu Aug 31 2023 ecsos - Update to 6.0.2 * Added * Plugins - Lyrist Lyrics (https://github.com/asrvd/lyrist) * Changed - Don\'t require catalog access to upload songs. (Ignore catalog_filter for upload actions) * Fixed - Correct stream get_base_url - Database 600037 missing interactor check for the web updater - Avoid Orphan album artist when song has empty albumartist tag - Various runtime errors with missing data during session timeouts - Admin page \'browse uploads\' didn\'t need to be so strict - Show album edit button on uploads correctly - get_uploads_sql for artists could miss mapped artists - Only show user playlists on user page (public only if you aren\'t an admin) - Don\'t show admin user page (-1) * Search - ArtistSearch: Joins for songrating and albumrating were missing * API 6.0.2 - NO CHANGE * Tue Aug 29 2023 ecsos - Update to 6.0.1 * Fixed - Check for duplicate ports in stream URL\'s - Songs and podcast_episodes with ABR being overwritten with VBR * API 6.0.1 * Changed * API6 XML - get_similar: return song objects to match json * Fixed * API6 - user_preference: returned array instead of object - system_preference: returned array instead of object - preference_create: returned array instead of object - preference_edit: returned array instead of object * Mon Aug 28 2023 ecsos - Update to 6.0.0 There are too many changes to list here. Please see her: https://github.com/ampache/ampache/releases/tag/6.0.0- Copy composer_old.json to composer.json in get-source.sh, because composer.json only supports php 8.2 * Mon Jul 17 2023 ecsos - Update to 5.6.2 * Added - Fork https://github.com/scaron/prettyphoto and update for jquery3 + CLI - New cli command bin/cli show:version (Print the Ampache version number) * Removed - Replace scaron/prettyphoto with fork to allow updates * Fixed - Checking for git updates without a forced branch - Update webplayer to fix a longstanding Google Chrome issue with playing flac - Being unable to view all your catalogs in the filter box - Prettyphoto would rewrite your link when clicking on pictures - Don\'t show an empty filter box if there are no valid filters - Some dynamic class properties - Beets catalog actions - Remote catalog and Subsonic catalog streaming * API 5.6.2 + Fixed - ALL - Require and set a valid version for api_force_version * Thu May 18 2023 ecsos - Update to 5.6.1 * Added - Simplified transcode settings checks * Changed - Clean up the PlayAction class to make it a bit less complicated - Encode URL\'s with a + for segmented play urls * Removed - Soundcloud catalogs * Fixed - mptre/php-soundcloud has been removed from github - Podcast Episode download link - Filtering passwords in some places before hashing - Catalog caches delete and add immediately when changed * API 5.6.1 - NO CHANGE * Tue Mar 28 2023 ecsos - Update to 5.6.0 * Added + Subsonic - Add type and serverVersion to objects * Changed - Enforce raw format parameter on download links when not set - Set song channels to null instead of 0 when missing * Fixed - Config had a : instead of a ; for a newline - Webplayer missing semi colons, next / back keys in the playlist js - Duckduckgo search links - Register action missing catalog_filter_group - LDAP DN lookup for group membership - Identify object names correctly for localplay playlist items - Parse URLs for democratic and random correctly in localplay playlist items - Make sure the webplayer identies non-media stream types as valid - Possibly unset Artist name in lyrics lookup - Allow access to public smartlists in Random - Share expiry date needed some reworking + Search - Use artist_map table for rating searches to find all related artists + Subsonic - Error\'s were not returning valid responses * API 5.6.0 + Fixed - ALL - share_create and share_edit methods broken when setting expiry days - advanced_search methods were breaking with various offset and limits - playlists methods parameter \'exact\' always ending up false - Api5 - update_art hardcoded url to artist - Typo in song bitrate xml * Thu Feb 16 2023 ecsos - Update to 5.5.7 * Fixed - Stop filtering items beginning with a \".\" during catalog import - Don\'t show the filter box if there aren\'t any filters for the page - Fix up a lot of issues upgrading from really old servers - Don\'t add Album maps for null Album Artist\'s - Filter actions on the alphabet form and the graph pages correctly - session_set_cookie_params options array - Check for statistical_graph settings - Fetch Seafile cover art - Album might get sent to the temp playlist and screw up on insert - A couple of issues with now_playing.php when enabled - RSS user lookup on now_playing + webplayer - n for next, b for back - Missing semi-colons + Subsonic - Allow empty search queries * API 5.5.7 + Changed - Keep the original mime and bitrate on song objects instead of the transcoded value * Mon Feb 13 2023 ecsos - Let php8 use also. * Fri Dec 16 2022 ecsos - Update to 5.5.6 * Changed - Scrutinizer moved to php8.1 * Fixed - Spotify art collector (AGAIN) - get_now_playing has_access check - Malformed HTML for regular users in preferences sidebar - Missing translation on preferences sidebar - Default catalog_filter group could be missing on a new install - Gather genre tags when not an array - Display webp images - Check for a valid image extensions when uploading art - Templates for squashed branch with a default path * API 5.5.6 Fix various runtime errors and incorrect parameters for responses. + Changed - API browses all point to the Api class - Use FILTER_VALIDATE_IP on ping calls + Fixed + Api5 - songs set_filter call without browse parameter may have lost info - get_indexes set album_artist filter correctly - artists set album_artist filter correctly - share_create undefined filter check + Api4 - songs set_filter call without browse parameter may have lost info - get_indexes set album_artist filter correctly - timeline incorrect JSON attribute data instead of date - catalogs JSON had incorrect data for last_add and missing enabled - albums return an empty response with a bad artist id - download url parameter order matching \"client, action, cache\" - catalogs undefined filter check - podcast undefined filter check - podcast_edit undefined filter check - podcasts undefined filter check - share_create undefined filter check - share_edit undefined filter check + Api3 - album_songs return an empty response with a bad album id - artist_albums return an empty response with a bad artist id - Calls to songs with user ID instead of user object * Wed Nov 23 2022 ecsos - Update to 5.5.5 * Fixed - Set etag for image cache - Spotify art collector - Double scrub string in catalog search rules * API 5.5.5 - NO CHANGE * Mon Nov 21 2022 ecsos - Update to 5.5.4 * Added + Database 550005 - Add song_artist and album_artist maps to catalog_map * Changed - Update catalog map tables based on the catalog action - Force b and n for back, next in webplayer (was overwritten with [ and ]) * Fixed - Missing db tables on a fresh install - Not filtering song_artist on album_artist browses - Don\'t use catalog_filter and rating_filter without a valid user - Uploaded/Manual Album Artist maps on tag update - Delete artist\'s from the catalog_map that don\'t have a song or album for that catalog - Set correct transcode bitrate and mime for songs on play_url calls - Save Track Order when viewing all the items - Use cache_target for cached song cleanup (was hardcoded to mp3) + Subsonic - Art for artist index arrays was missing + Search - SQL for Artist catalog searches - Make sure saved rules match the correct names on load + CLI - Don\'t try to update a database when the connection fails * API 5.5.4 + Fixed - User count in Api::ping and Api::handshake was doubled - Api3::stats method had incorrect recent parameters - Ensure the output bitrate and mime are set for song objects - RSS Feed generation with bad characters - Don\'t spam the artist description for each song - Show better Trending Dashboard section * Mon Oct 17 2022 ecsos - Update to 5.5.3 * Changed - Update copyright year in footer.inc.php - Localplay status and instance_fields function cleanup - Update some docker files to match current images - Allow adding streams to playlists (including rightbar) + webplayer - Another code rework, remove the old \'original\' list - Shuffle is an action instead of a state of the playlist * Fixed - Hidden Genres shouldn\'t have a catalog - Streaming with certain parameters could not identify a session/user - Should be counting podcast objects in stats - Null artist->id on wanted pages + Search - Album \'other_user\' favorite searches + SubSonic - Error if you didn\'t have data when using get_user_data - Response data might fall back to mp3 and not match the output format + webplayer - Reordering the list could lose track of items - Remove single item from list could create a weird list - Remove the final track when it\'s finished playing (if you\'ve set that option) * API 5.5.3 - NO CHANGE * Fri Sep 16 2022 ecsos - Update to 5.5.2 * Added - Check for upload_catalog before showing upload pages + search - Class rework and many additional aliases, check the docs for advanced_search - Add song_artist as a search type (uses artist rules) - Add album_artist as a search type (uses artist rules) - Add song_genre, mbid_artist, mbid_song to album search - Add song_genre, mbid_album, mbid_song to artist search - Add possible_duplicate_album to song search + webplayer - Code cleanup and attempt to make it a bit less confusing * Changed - Do not overwrite a custom Artist/Album when updating from tags - Ignore case when comparing Genre - Show an error on share create failures - Pull some function back into the search class - When searching without rules treat it like a browse and return results unfiltered * Fixed - Tmp_Playlist::get_items may not order by the playlist id - Fix album time update when time is NULL - Transcoding format could be ignored (encode_player_webplayer_target) - Set the file extension based on expected transcode / download format - Don\'t look at the transcode cache when downloading a raw file - If you are transcoding redirect to the transcoded file - Download stats for song, video, podcast_episode - Set the file extension for urls on generation - Don\'t overwrite artist art when searching for album art - Retrieve song art from tags the same way they are found (\'invalid\' art) - Searching from the search bar did not pickup up the rules for the search page - Upload artist, album and license selection - Don\'t show hidden Genres on object rows - Video needs get_f_link function - Playlists need to be in catalog_map table - Insert Podcasts more often in catalog_map - Subsonic basic auth may get filtered - Don\'t filter auth in the PlayAction if sent + search - Correctly identify alias rule types - Bad SQL on 0 rating query for album/artist search + webplayer - Desired transcode format not being respected - Video types missing from supported types - Playlist sorting issues * API 5.5.2 + Added + advanced_search - Add song_artist as a search type (uses artist rules) - Add album_artist as a search type (uses artist rules) - Add song_genre, mbid_artist, mbid_song to album search - Add song_genre, mbid_album, mbid_song to artist search - Add possible_duplicate_album to song search + Fixed + advanced_search - unable to retrieve song_artist or album_artist results * Wed Aug 24 2022 ecsos - Update to 5.5.1 * Added - Translation Updates August 2022 - Grouping for label search items * Fixed - Release version string is incorrect and will tell you you have updates if you use the release files - Missing comma between label links on song pages * API 5.5.1 NO CHANGE * Tue Aug 23 2022 ecsos - Update to 5.5.0 * Added - Update Copyright notice to 2022 - Added a new option \'Random Play\' (shuffle) to playlists and smartlists - Add \'Recently Skipped\' to user pages - Add Podcast Episodes to the browse pages and sidebar - Translate podcast episode state and some other missing ones - Allow using a smartplaylist in Democratic play - Allow podcast_episode table sort by time and state - Allow podcast table sort by website and episodes + Database 550004 - Add system preference demo_use_search, Use smartlists for base playlist in Democratic play - Add tables catalog_filter_group and catalog_filter_group_map for catalog filtering by groups - Add column catalog_filter_group to user table to assign a filter group - Migrate catalog filter_user settings to the catalog_filter_group table - Assign all public catalogs to the DEFAULT group - Drop table user_catalog - Remove filter_user from the catalog table + Search - Added more missing groups to search type lists - Added missing song (was song_title) to album searches + Add podcast as a search type - Add rule title - Add rule podcast_episode (Search by podcast episode name) - Add rule time (Episode length in minutes) - Add rule state (Completed, Pending Skipped) - Add rule file - Add rule added - Add rule pubdate (Episode Publication Date) + Add podcast_episode as a search type - Add rule title - Add rule podcast (Search by podcast name) - Add rule time (Length in minutes) - Add rule state (Completed, Pending Skipped) - Add rule file - Add rule added - Add rule pubdate (Publication Date) + Add genre as a search type - Add rule title + CLI - Add verify for podcast catalogs (fix time and size from tags) * Changed - Private catalogs have been migrated into Catalog filters - Interface cookies for the sidebar state have new names matching their page and group - Made getID function required for library_item\'s - Update codeql-analysis.yml to v2 - When streaming a Democratic or Random item, redirect to the result - Hide \'is_true\' boxes on search rows (you can\'t change it so why show it?) - Hide action buttons from random and demo webplayer lists * Fixed - The cookies for the interface sidebar had multiple issues holding and restoring status - Removed A LOT of FILTER_SANITIZE_STRING from code for PHP8.1 - Errors on empty values when loading the UI rows - Lots of docstring and code issues - Fixed up deleting plays (and now skips) on the user pages - Sorting playlist, user and smartlist names in search rows - SQL in get_tags when catalog_filter is disabled - A lot of browse filters were missing for certain object types - Don\'t try to load the playlist dialog from the webplayer when you can\'t add things - When using random/Democratic play send the additional parameters to the actual media - Respect play urls with transcode_to instead of format - Updated example docs/examples/inotifywait.sh - Podcast_episode browse may sent a camel case argument - Null max_upload_size could still be counted as a limit + Search - SQL might have connected AND and OR incorrectly - Metadata search might have badly parsed input - Added aliases for some of the confusing search types + SubSonic - Checking parameters might return the error AND the empty response * API 5.5.0 This will likely be the last 5.x API release. API6 will be a continuation of API5 and not be a significant change like the 4->5 transition. * Added - Api::stream add new types playlist and search (Streams a random object from these lists) - Api::download add new types playlist and search + advanced_search + Add podcast as a search type - Add rule title - Add rule podcast_episode (Search by podcast episode name) - Add rule time (Episode length in minutes) - Add rule state (Completed, Pending Skipped) - Add rule file - Add rule added - Add rule pubdate (Episode Publication Date) + Add podcast_episode as a search type - Add rule title - Add rule podcast (Search by podcast name) - Add rule time (Length in minutes) - Add rule state (Completed, Pending Skipped) - Add rule file - Add rule added - Add rule pubdate (Publication Date) + Add genre as a search type - Add rule title * Fixed - API4::get_indexes podcast_episode was encoding into the API5 object - API4::share_create was unable to share when using lowercase types + advanced_search - Added missing song (was song_title) to album searches * Mon Aug 01 2022 ecsos - Update to 5.4.1 * Added - Put next (n) and back (b) shortcuts in the web_player - Allow _ and % wildcards for hiding playlists (api_hidden_playlists) - Missing translations on CLI strings + Config version 62 - Added webplayer_debug (was previously undocumented/hidden) + Search - Add track to song search - Add summary to artist search + CLI - New argument for cleanup:sortSongs -w|--windows Replace windows-incompatible strings with _ - Add a table check function to admin:updateDatabase. This will repair missing tables/details * Changed - Only enforce subsonic_always_download for song objects - Always insert podcast source urls. But mark them as skipped if out of date - When adding a podcast feed, sync everything - Don\'t trim search input (e.g. allow single spaces for search) * Fixed - web_player being unable to play different formats in some cases - Playlist download button missing ID - Truncate long podcast episode author lengths - Incorrect link on the albums page - Section on the information sidebar looking for the wrong cookie - Bad verify mod time check - SongSorter would get caught with % in your strings - Rating Match plugin may overwrite album rating - Artist getRandom using the wrong sql column name - Pocast episode time regex * API 5.4.1 * Added - Include lyrics in Song objects + advanced_search - Add file to album and artist search - Add track to song search - Add summary to artist search * Thu May 19 2022 ecsos - Update to 5.4.0 * Added - Translation Updates May 2022 + Search - Add file to album and artist search + CLI - New argument for run:updateCatalog -f|--find Find missing files and print a list of filenames - New argument for cleanup:sortSongs -f|--files Rename files and keep them in the current folder - New argument for cleanup:sortSongs -l|--limit Limit how many moves to allow before stopping - New argument for cleanup:sortSongs [catalogName] Name of Catalog (optional) + Database 540002: - Index title with enabled on song table to speed up searching - Index album table columns; catalog, album_artist, original_year, release_type, release_status, mbid, mbid_group - Index object_type with date in object_count table * Changed - Moved to php-cs-fixer 3 - Update from tags now shows an \'Error\' status if there was an issues reading the file * Fixed - SQL for random artist with mapping - SQL for servers < 5.0.0 might try to insert into a missing table - Respect grouping for song_count searches - Autoplay in xbmc localplay and conform to localplay api - Ungrouped albums were forced into groups - Artists array should overwrite artist_mbid arrays that are smaller - Some empty globals relating to user - More work on the forked Jplayer playlist code when using play last - DAAP play urls - Single disk download links on group pages + CLI - cleanup:sortSongs was broken (It actually works again) - cleanup:sortSongs removes incomplete copied files after failure * API 5.4.0 * Added + advanced_search - Add file to album and artist search * Mon May 09 2022 ecsos - Update to 5.3.3 * Added - Remove duplicates and order largest to smallest for art search - Allow update_from_tags for a single Song from it\'s page + Search - Add song_title to album search - Add album_title and song_title to artist search - Add orphaned_album to song search * Changed - Default art_search_limit raised to 15 + web_player shuffle improvements - Current selected track will become the first track and everything else shuffled below it - Playlist isn\'t automatically played so if a song was playing, it will continue to play * Fixed - Speed up stream_playlist generation by chunking into blocks - Make sure there is an object_id to fill in update_530006 - Remove song mapping on delete - Make sure podcast descriptions don\'t overfill the column - Clean dead total wasn\'t returned on completion - Searching for albums with \'# Played\' with grouping enabled with album_map - Adding a new xbmc localplay - Catalog type filter in get_top_sql + SubSonic - Fixed the query searches (Again) based on the wildcards different clients may send - Song discNumber was sending the MAX disk instead of the actual disk - getPlayQueue doesn\'t change back to miliseconds from seconds * API 5.3.3 * Added + advanced_search - Add song_title to album search - Add album_title and song_title to artist search - Add orphaned_album to song search * Fixed - Api4::record_play had the user as mandatory again - After catalog actions; verify songs with an orphaned album which you won\'t be able to find in the ui * Fri Apr 29 2022 ecsos - Update to 5.3.2 * Added - Look for orphaned maps to delete. - Get server timezone for get_datetime (date_default_timezone_get()) - Allow deleting played activity from the ui and count using a function (Require: 100) * Changed - Updated the translation gathering process a little - Organized the play/skip counting into it\'s own function - Update artist from tags needs to update albums first + SubSonic - Only search for song title instead of everything - Add starred to directory elements * Fixed - Format on an empty album would complain in the log - Update from tags might not remove the old song artist - Migrating to a new album would leave old album maps - Artist search query with mapping was very slow - Database column check not included in 5.3.1 correctly + SubSonic - Get recently played - Fixed up search queries using \"\" (wrapping in quotes means exact search) * API 5.3.1 - NO CHANGE * Sun Apr 24 2022 ecsos - Update to 5.3.1 * Added - Docker compose files to help create a local dev environment (read docker/README.md for more info) - Added php8.1 to composer (still considered unstable) * Changed - Began rework of Subsonic modules * Fixed - Database missing rsstoken column in the user table - gather-messages.sh was finding lots more strings than it needed - Query sql with ambiguous ID - New song import might not map all the artists - Catalog query missing a comma * API 5.3.1 - NO CHANGE- Changes from 5.3.0 * Added - Additional xhtml templates added - Parse lots more WMA (ASF) file tags - Add play next and play last to radio station rows - Additional option for artist pages \'Show Artist Songs\' - Add some missing tag options for mpc files - Allow manually syncing Artist name, year formed and place formed from musicbrainz (if it has an mbid) - Notify and allow updating Plugins when updates are available + You can now unhide a tag from the \'Hidden\' page for Genres - This will delete previous merges but it will not retag your songs (update from tags to fix that) + Config version 61 - Add disable_xframe_sameorigin (allow disabling \"X-Frame-Options: SAMEORIGIN\") - Disable catalog_verify_by_time by default + Database 530016: - Create artist_map table and fill it with data - Create album_map table and fill it with data - Use song_count & artist_count using album_map - Drop id column from catalog_map table and alter object_type charset and collation - Alter album_map table charset and engine to MyISAM if engine set - Alter artist_map table charset and engine to MyISAM if engine set - Make sure object_count table has all the correct primary artist/album rows - Convert basic text columns into utf8 to reduce index sizes - Remove user_activity columns that are useless - Delete duplicate rows on object_count - Compact mbid columns back to 36 characters - Compact some user columns - enum object_count.count_type - Index data on object_count - Use a unique index on object_count - Compact cache_object_count, cache_object_count_run columns - Add show_album_artist and show_artist preferences to show/hide Sidebar Browse menu links + search: - Add songrating to album search (My Rating (Song)) - Add songrating (My Rating (Song)) and albumrating (My Rating (Album)) to artist search - Allow empty/null searches for all mbid searches - Allow empty/null searches for label searches - Add song_count to album and artist search - Add album_count to artist search - Add myplayedartist (Played by Me (Artist)) to album search - Add song_artist to album search - Add alias album_artist to album search for artist searches - Add recent_added to album search * Changed - Clean up artists with a duplicate MBID (Use the lowest artist id) - Delete cached recommendations instead of trying to update (Really slow) - Artist::check uses MBID on lookups as well as name - update_from_tags: Only update counts, tags and garbage collect after changes found - Use albums instead of songs for catalog verify actions - Expand search sidebar menu and collapse information without cookies - Moved all the extended functions into the forked jplayer module - Instead of skipping duplicate songs on import, disable them + jPlayer (Webplayer): - Shuffle now follows the currently playing track (If playing) - Shuffle also does not track the old playlist so you can\'t undo a shuffle + Subsonic: - Check for art instead of always sending an art attribute * Removed + search: - removed mbid group sql from possible_duplicate and possible_duplicate_album * Fixed - VaInfo time for size/playtime_seconds - Tag arrays for Mbid and Artists lookup - Deleted item tables would not record some deletions - Updating the artist name would always migrate data when not required - Artist::check would always create and artist object with readonly set - Genres would not update the parent (Song->Album->Artist) whan using update from tags - Random sql that uses search rules - Use configured Ampache temp directory in Seafile catalog - Prepare media before update from tags (Seafile needs to download the file first) - Seafile catalog checks for a local file before downloading it again - Delete custom_metadata when removed from the object - Artist Garbage Collection was way too slow - Album and Artist count value sql - Don\'t remove Genre tags when they have been merged (hidden) into a different tag - Don\'t delete merged (hidden) Genres from the tag table - Album song_artist_count not calculated correctly - Grouping with mbid_group was missing making some albums not possible to view - Display and hide of artist columns in some pages based on count - Clean and verify would count totals based on all items instead of item type - Missing strings from xhtml templates - Album grouping for getAlbumSuite with null values - Set ratings for all album disks (if grouping enabled) for ratings and flags - Issues when you don\'t have an album artist tag - Correctly set null values on library_item edits - Search for song art might have sent a Song object - Fix missing preference on musicbrainz plugin - Disable/enable catalog + jPlayer (Webplayer): - Fixed moving items in the playlist - Fixed adding after the current playing track - Fixed logic behind the index and order between the HTML and the JS lists + Search: - played search for album and artist was including your user in the results - other_user artist search sql + Subsonic: - Artist was missing starred status * API 5.3.0 - Added + advanced_search: - Add songrating to album search (My Rating (Song)) - Add songrating (My Rating (Song)) and albumrating (My Rating (Album)) to artist search - Allow empty/null searches for all mbid searches - Allow empty/null searches for label searches - Add song_count to album and artist search - Add album_count to artist search - Add myplayedartist (Played by Me (Artist)) to album search - Add song_artist to album search - Add alias album_artist to album search for artist searches - Add recent_added to album search- Rebase ampache-confpath.patch.- Rebase ampache-systemd.patch. * Fri Feb 11 2022 ecsos - Update to 5.2.1 * Added - Translation Updates Jan 2022 - Count tables on create and delete actions - Set allow-plugins in composer.json - Improve description of rss feed to make each play more unique - Wait 30 minutes between catalog updates before running update_counts - On database connection failure, go to test.php - Search: - Added no_tag as a possible search item (song, album, artist) - Document the alias names of search rules (docs/API-advanced-search.md) - Add playlist and playlist_name search to artist types * Changed - AmpachePersonalFavorites: double the playlist title height - Move get_f_link from playlist/search into playlist_object - Make some functions that do the same thing use the same variable names - Don\'t optimize tables when doing full_service catalog updates - Use parameters in search queries instead of printing them into the query - Logout action requires a session id now to log out - Update mapping more often after catalog actions - Album check function added mbid_group to lookup - Support database upgrades from version 350008 (Ampache 3.5.4) - Remove additional \'Details\' string from song/video and radio pages - Tag value is being extra filtered in the edit screen - Hide the login link when using simple_user_mode and no auth is set note this does not stop you logging in with /login.php - When not using auth, keep recording stats for system user plays - Hide username column from Recently Played when not authed as a user * Fixed - Lowercase package names in composer - CLI add user - Demo Systemd timer files WantedBy - Some missing garbage collection for some tables - Phantom html table row in show_catalogs page - Grouping albums with special characters - Searching albums with special characters - Lots more PHP8 runtime errors - SQL for artists in catalog_map - Typo in url for update_all_file_tags - SQL error in database update 500013 (Not fatal) - Don\'t garbage_collect tags after merging - Create art URLs correctly when using rewrite rules and no auth - Respect sidebar_light preference when no cookie is present - Don\'t try to create users that already exist - Add/Edit catalogs in the UI missing filter_user - Search: - possible_duplicate was grouping too much together - Subsonic: - Jukeboxcontrol didn\'t send an index to the client * API 5.2.1 - Added + API5 - The docs for errors have been extended for the type when returned - Changed + API5 - Return the xml total_count of playlists based on hide_search preference - Fixed + API5 - Some errors were returning the value and not the parameter on error + API4 - update_from_tags: type case error - rate: Object type to class mapping - flag: Object type to class mapping - update_art: Object type to class mapping and type case check - update_from_tags: Object type to class mapping - genre and tag function compatibility + API3 - stats: incorrect getRandom call - rate: Object type to class mapping - playlist: bad escaping on the playlist id * Fri Dec 17 2021 ecsos - Update to 5.2.0 * Added - Get image from more tag types - Translation Updates Nov 2021 - Added the ability to play random songs from a playlist with a play url - Update AmpacheRatingMatch.php to allow writing ratings to file tags - Enable \'Save ratings to file tags when changed\' on the plugin page - write_tags must be enabled in the config file - Config version 59 - Removed overwrite_tags (It doesn\'t do anything) - playlist_art now true by default - Database 5.2.0 Build 5: - Make sure preference names are always unique - Add ui options (\'api_enable_3\', \'api_enable_4\', \'api_enable_5\') to enable/disable specific API versions - Add ui option (\'api_force_version\') to to force a specific API response (even if that version is disabled) - Add ui option (\'show_playlist_username\') Show playlist owner username in titles - Add ui option (\'api_hidden_playlists\') Hide playlists in Subsonic and API clients that start with this string - Add ui option (\'api_hide_dupe_searches\') Hide searchs in Subsonic and API clients with the same name as playlists (and both owned by you) * Changed - Don\'t try to return objects that aren\'t there sometimes - Update catalog counts before returning API data - Fix preferences for system and users after each update - Light theme hover color for sidebar - Changed some cookie from Strict to Lax to fix some bugs - Check ldap group by username instead of DN - Allow gathering random art from playlist contents instead of generating on page load * Removed - Remove AssestCache class and functions (unreliable) - When recording stats don\'t ignore based on a hardcoded gap * Fixed - test_image function would fail without php-gd (which is optional) - Searching for images in files could not return the files you found - Get rid of that annoying space on api key text in the WebUI - Catalog map for artist tables - ratingmatch_stars value 5 wasn\'t setting itself - filter_has_var is returning false in FCGI enabled PHP - Allow catalog manager to manage a catalog in the WebUI - When using custom metadata don\'t overwrite managed values - Missing (and duplicate) preferences for users and system - Size 0 when reading file tags - Disk and totaldisks for wma files - Genre for quicktime/m4a files - Last.fm login impossible with strict cookies - Some double scrubs of text in image links - Updating playlist user would only update the name and not the ID - garbage collection for playlist images - Stats when skipping songs with 0 plays - More PHP8 runtime errors - Fixed single song random playback using a play url - Make sure we error if php_intl module isn\'t found * API 5.2.0 Check out the docs for multi API support at ampache.org note JSON didn\'t exist for API3 so all json requests from API3 calls will revert to API5 - Added - Support for API3, API4 and API5 responses including PHP8 support (keeps original tag calls) - API5 - playlists: sql for searches wasn\'t filtering - playlists: add parameter \'show_all\' if true ignore \'api_hide_dupe_searches\' setting - get_art: add parameter fallback if true return default art (\'blankalbum.png\') instead of an error - API4 - playlists: add parameter \'show_all\' if true ignore \'api_hide_dupe_searches\' setting - API3 - Added genre calls as an alias to tag functions to match API4 and API5 - Fixed - Session and user id identification and errors from that - API5 - playlists: sql for searches wasn\'t filtering - Art URL for searches was malformed - API4 - Art URL for searches was malformed - API3 - democratic: This method was broken in API3 and never worked correctly * Fri Nov 12 2021 ecsos - Update to 5.1.1 * Added - Clean cache files that aren\'t in the database - Translate random and democratic in the webplayer - Add transcode_flv to config - Add playlist, playlist_name to album searches - Send the user to an error page when the config wasn\'t written - Config version 58 - Removed subsonic_stream_scrobble - Database 5.1.0 Build 5: - Add subsonic_always_download to preferences * Changed - Rebuild aurora.js modules from source - Perform waveform and cache on disk the same way - Move song waveforms on load if in the wrong folder - Make genre searches faster with a join instead of select in - Send a flat file path for zips when using browse/playlist * Removed - Podcast links on the dashboard removed (There is no link for them to go to) - Remove subsonic_stream_scrobble from config and make it per user (subsonic_always_download) * Fixed - Use addslashes for translations in html5 player - Send the generic client name for localplay again - Use the set permission level for localplay access - Webplayer playlists would become out of order after moving/adding - Cache process could cache the wrong song - Missing user id in search - Grouping sql in search when not grouping albums - Setting Localplay instance would not update the preference - Advanced search (Random) wasn\'t working in php8 - Fixed returning the correct objects for advanced search (Random) - Some objects would add transcode_to to their play url - Set system prefs for mb and tadb plugins - Updating a channel in php8 - Get tmp_playlist by session (could get confused and never retrieve items) - Setting cookies and session details on remember_me sessions - Set the catalog parameters for seafile catalogs - Database updates for php8 - Remember me session cookie error when recreating a new session - ampache.sql script had AUTO_INCREMENT data it didn\'t need - Subsonic - Get the artists for a single catalog correctly - Browse highest used the sql differently to the UI * API 5.1.1 + Fixed - Access to podcast_episode_delete - stats calls with an offest and limit - advanced_search calls with an offset and limit- Rebase ampache-confpath.patch. * Mon Oct 25 2021 ecsos - Update to 5.1.0 * Added - Split search items in WebUI into optgroup categories - Add en_AU as a locale - Require confirmation on enable/disable user links - Add f_size to video parameters - Record plays for live_streams and playlists in object_count - Add podcast to the object_count table and add missing rows - Store playlist art in the database - Show the art on the main playlist page - Allow reset and change of playlist art - Pick a random art item on reset and store - Add a simple continue button for these dialogs - Fix up display of image showaction - Subsonic art looks for the playlist art the same as UI - Check for ? in a query before trying to use parameters - Add the current php version to the debug page - Cache bust some frequently updated assets - Clear asset cache during AutoUpdate - Gather Artist recommendations on play/Stat insert - Add Top Tracks and Similar Songs to Artist pages - Extend run:updateCatalog --update to update artist name matching mbid - Add duplicate_mbid_group to album searches - Restored missing artist search to the header searchbar - Press enter on the list header to allow changing page number - Translation Update October 2021 - Config version 57 - NEW config options - allow_upload_scripts: Allow or disallow upload scripts on the server - Database 5.1.0 Build 4: - Add podcast to object_count table - Add podcast to cache_object_count table - Add live_stream to the rating table - Add waveforms for podcast episodes - PHP8 Support - Use array_key_exists to skip runtime errors - Fix undefined variables in templates - Errors with wanted/missing lookups and templates - Ajax handler updates and fixes - Set default and fallback values more often to avoid errors - Query errors would kill the whole page - Stop trying to read unreadable files - Explode key pairs when there is something to explode - Don\'t try to update preferences that don\'t exist - Errors when not logged in trying to load a session - NEW files - Test scripts: codecoverage.sh, stan.sh, tests.sh * Changed - Always update time when updating songs and videos from tags - Merge config \'ratings\' and \'userflags\' checks into ratings. (drop userflags) - Split search items into groups to help make it a bit clearer - Rearranged the list of search items - Simplify PlayAction code a bit and use filter_input - Speed up update_counts for missing object_counts - Enable Podcasts on new installs - Delete composer.lock - bin/cli run:updateCatalog with no options now does clean, Add, Verify and gather for all catalogs - Make category headers a bit nicer - Check for valid browse types before loading nothing - Browsing Genre defaults to artist - Skip albums that match the exact title in wanted search - Translate all database description strings on updates - Hi-res blankalbum/placeholder image (1400x1400) - Allow larger artist summary with a scroll. linebreak place, year formed - During garbage collection clean up empty strings with NULL - Subsonic - Disable stat recording on stream calls (disable subsonic_stream_scrobble in config to enable) * Removed - object_cnt: use total_count and total_skip instead of calculated properties - f_title: use f_name - Scrub CSS with Autorprefixer * Fixed - SQL query error for Random Album in certain config setups - Album suite needed even without grouping - Stop scrubbing the podcast title so hard (so many &\'s) - Use total_count and total_skip columns for searches (Fixes searching with 0) - Can\'t change view limit on Android - Localplay instance could be 1 - Missing add_type variable on ACL pages - Light theme follow button color - Missing CSS on list headers - Templates with missing variables - Fix Stream_Playlist::_add_urls to stop mismatched query values - Fix stream.php downloads not sending their url parameters to PlayAction - Garbage collect object_count for the possible items - Do not drop catalog in table podcast_episode when it doesn\'t exist yet - AAC codec from itunes doesn\'t provide a bitrate_mode (assume vbr) - bin/cli ExportPlaylistCommand had out of order args - bin/cli Allow database updates when out of date - Fix computeCache for playlists - Logic of SQL query to get random albums - Simplify the join code for some queries - Don\'t force random for smartlists when you turn it off - Empty release_date when updating videos - Chrome errors where Content-Disposition has a comma (,) - Remove subtitle in stream_playlist if empty - Fix options and bitrate selection for stream.php requests - Scrobbles from Song::can_scrobble - Default preference list - MusicBrainz Artist Id could have been replaced with the Album Id - Artists being duplicated when feat. another artist - Don\'t let a non-critical update fail DB update - Search for \'played\' albums and artists - Commands loading plugins from cli might not have a user - Dashboard links to podcast episodes and art - Lots of issues in the webplayer which only supported song links - Clean up deleted user date from all tables - Waveforms for podcast episodes - Subsonic - Trim quotes (\") for Subsonic searches (some clients add them) - Support exact (lucene) searching when using quotes (\") - Browse by folder is fixed - Faster browse queries for all types - Fix catalog browsing and loading library * API 5.1.0 + Added - NEW API functions - Api::live_stream (get a radio stream by id) - Api::live_streams - Api::stream Added type \'podcast_episode\' (\'podcast\' to be removed in Ampache 6) - Add \'time\' and \'size\' to all podcast_episode responses + Changed - live_stream objects added \'catalog\' and \'site_url\' - stats: additional type values: \'video\', \'playlist\', \'podcast\', \'podcast_episode\' + Fixed - get_indexes: JSON didn\'t think live_streams was valid (it is) - record_play: user is optional - Bad xml tags in deleted functions - scrobble: Add song_mbid, artist_mbid, album_mbid (docs have no \'_\' so support both)- Rebase ampache-config.patch. * Wed Sep 22 2021 ecsos - Update to 5.0.0 IMPORTANT ampache-5.0.0_squashed.zip is a version where the new /public web root has been moved and back into the project root. This version isn\'t a supported release method but will be tested and made available for situations where using ./public isn\'t possible IMPORTANT instead of using date() we are now using IntlDateFormatter and your locale to identify formats. This means that \'custom_datetime\' based on the date() format is incorrect and will look weird. Look here for the code to change your \'custom_datetime\' string [(http://userguide.icu-project.org/formatparse/datetime)] IMPORTANT For new installs default database charset/collation and table engine have changed Engine MyISAM => InnoDB Charset utf8 => utf8mb4 Collation utf8_unicode_ci => utf8mb4_unicode_ci If you want to keep utf8 make sure you set it before running updates. To keep the current collation/charset update your config file Set database_charset = \"utf8\" Set database_collation = \"utf8_unicode_ci\" For a full changelog see: https://github.com/ampache/ampache/releases/tag/5.0.0- Drop ampache-playlist-bug.patch, because source does no more exist.- Rebase ampache-confpath.patch.- Rebase ampache-systemd.patch. * Sat Jun 05 2021 ecsos - Update to 4.4.3 * Added - Catalog::update_counts to manage catalog changes - Gather more art files from your tags - Allow RatingMatch plugin to rate Album->Artist (Originally Song->Album->Artist) * Changed - Calculate MP3 stream length on transcode to avoid cutting it off early * Removed - Don\'t apply an album artist when it isn\'t distinct * Fixed - CVE-2021-32644 - Identifying a distinct album_artist query wasn\'t great - Don\'t return duplicate art while searching file tags - SQL query in random::advanced_sql was ambiguous - Filtering random and search page type element - NowPlaying stats would be overwritten when they didn\'t need to be - SubSonic: - getNowPlaying was unable to return playing media or the correct time - createShare would not set the object_id correctly and ignored expires value * API 4.4.3 - NO CHANGE * Wed May 05 2021 ecsos - Update to 4.4.2 * Added - Larger artist images when you don\'t have a text summary available - Expanded artist, album and podcast thumbnails to reduce blank space - Update album tags first when you update artist tags * Changed - Simplify flagging/rating multi-disk albums - SubSonic - just send getmusicfolders music folders - When calling createPlaylist, assume that the list needs to be empty first * Fixed - Require a valid database hostname instead of assuming localhost - A valid transcode_cmd is required to transcode media - SubSonic - Clients might send you a file path of Artist art instead of the id - Strings don\'t need json conversion checks - Send the cover art id for playlists - Check for artist and podcast prefixes on art id\'s - Bugs when converting between SubSonic id and Ampache id - Assign roles based on preferences (fixes jukebox, podcast and share roles) - CreateUser could overwrite admin access level - UpdateUser didn\'t write the access level - don\'t return null Genre counts - fix getting artist indexes for large libraries - Don\'t get null playlist objects from the DB - Using \'Save Track Order\' would not apply the offset - Vorbis/Ogg comments use \'organization\' for publisher and \'track_number\' for track - Automated Label creation when updating from tags - Grouped album downloads and rightbar actions - Preference::get_by_user was caching into a single value - A user who owned a playlist was unable to reorder (but could still save the order) - When creating shares, don\'t allow secret to be longer than database limit (20) - Album full name wasn\'t being used in some places - Tag::get_tag_objects was not grouping albums - Return integers for tag counts - rmccue/requests CVE: CVE-2021-29476 - PHPMailer/PHPMailer CVE: CVE-2020-36326 * API 4.4.2 - Fixed - API::indexes Artist albums were being added incorrectly for XML - Send back the full album name in responses * Fri Mar 26 2021 ecsos - Update to 4.4.1 * Added - If you have an MBID in your artist, use that for last.fm queries * Changed - Updated composer dependencies * Removed - Delete \'concerts_limit_past\' and \'concerts_limit_future\' database settings. * Fixed - Grid View shouldn\'t change the artist image - Catalog Update -u (gather last.fm info) wasn\'t getting an ID list correctly - Album::get_random_songs not returning id\'s - Bookmark::get_bookmarks typo for get_bookmark_ids - Sorting album browses by artist name could fail with mysql - SubSonic: getPlaylists should always send a user - Album browsing SQL didn\'t include Artist name in grouping - CVE-2021-21399: Unauthenticated SubSonic backend access in Ampache * API 4.4.1 * Fixed - API::stats would not offset recent calls * Wed Mar 03 2021 ecsos - Update to 4.4.0 * Added - Write metadata to mp3, flac and ogg files. Requires metaflac and vorbiscomment installed on Linux. - Write images to mp3 and flac files. Also requires metaflac on linux. - File tags can be updated from catalog management page. - Configurable settings for \"Gather Art\". - Configurable art search limit. - User selectable artist and year filter for Spotify album searches - User selectable limit for art searches. - Generate rsstokens for each user allowing unique feed URLs - Allow setting custom database collation and charset without overwriting your changes - rsstoken: Identify users by token when generating RSS feeds - Run garbage collection after catalog_update.inc \'clean\' or \'verify\' - Add duration to the table headers when browsing playlists and smartlists - Add time and duration to albums, artists instead of calculating from songs each time - Allow setting a custom background on the login page - Musicbrainz search icon on Artist, Album and Song pages - Update missing album artists on catalog add - Add R128 Gain adjustments - Persist replaygain setting as a cookie - Support for image per song - Format XML output using DOMDocument - SubSonic - shift the current track start time when you pause/resume - Config version 49 - NEW config options - hide_ampache_messages: We sometimes need to talk and will show a warning to admin users. Allow hiding this - NEW search options (also available in Api::advanced_search) - last_skip (artist, album, song) - last_play_or_skip (artist, album, song) - played_or_skipped_times (song) * Changed - Stop logging auth/passphrase strings vAdd Y scrolling to the current playlist box (rightbar) * Fixed - Escape filepaths when removing from database - Regex in config for additional_genre_delimiters - Grid View option was backwards - Replaygain issues in the webplayer - Per disk actions for grouped albums (e.g. play just that disk) - Catalog removal needs to run garbage collection - Recognize opus when reading tags - Regex in config for additional_genre_delimiters - SQL query for smartlists not joining the OR correctly - Searching with bad rules will return no results instead of everything - Check the \'unique_playlist\' option in more places - When you haven\'t set an active localplay nothing was picked - Set time for artists that are only albums - Don\'t hide rss generation when you haven\'t got a key - Podcast episode durations that use seconds were converting into crazy lengths - Playlist and Smartlist check sql simplified - SubSonic - Json clients need their playlist entry to always array (single item lists) * API 4.4.0 * Added - NEW API functions - Api::users (ID and Username of the site users) - Api::localplay added new options to \'command\' (\'pause\', \'add\', \'volume_up\', \'volume_down\', \'volume_mute\', \'delete_all\', \'skip\') - Api::localplay added parameters: - \'oid\' (integer) object_id to add //optional - \'type\' (string) Default: \'Song\' (\'Song\', \'Video\', \'Podcast_Episode\', \'Channel\', \'Broadcast\', \'Democratic\', \'Live_Stream\') //optional - \'clear\' (integer) 0|1 clear the current playlist on add //optional - Api::playlist_edit added new parameter \'sort\': (0,1) sort the playlist by \'Artist, Album, Song\' //optional - Api::get_indexes - New type options: \'album_artist\', \'podcast\', \'podcast_episode\', \'share\', \'video\' - Added parameter \'include\': (0,1) (add the extra songs details if a playlist or podcast_episodes if a podcast) - Api::rate - Added types \'playlist\', \'podcast\', \'podcast_episode\', \'video\', \'tvshow\', \'tvshow_season\' - Api::flag - Added types \'podcast\', \'podcast_episode\', \'video\', \'tvshow\', \'tvshow_season\' - Add time to artist and album objects. (total time of all songs in seconds) - Add songcount, albumcount to artist objects. (time in seconds) - Add songcount to album objects. (time in seconds) - Add type (release_type) to album objects - Add disk to song objects - Add time to video objects. (time in seconds) - Add title, mime, catalog to podcast_episodes - Api::advanced_search Add \'playlist\', \'user\' and \'video\' to search types - Api::handshake added extra total counts to the response - users, tags, podcasts, podcast_episodes, shares, licenses, live_streams, labels - Api::ping match the handshake response (excluding the auth token) * Changed - get_indexes: \'playlist\' now requires include=1 for xml calls if you want the tracks - Make filter optional in shares - Api::podcast_episodes - \"url\" is now a play url (instead of a link to the episode) - \"public_url\" is now the old episode link * Fixed - Api::podcast_edit wasn\'t able to edit a podcast... - Api::democratic was using action from localplay in the return responses - get_indexes for XML didn\'t include podcast indexes vSet OUTDATED_DATABASE_OK on image.php, play/index.php and share.php to stop blocking requests - Don\'t limit sub items when using a limit (e.g return all podcast episodes when selecting a podcast) * Deprecated - Dropped in API 5.0.0 - Api::get_indexes; stop including playlist track and id in xml by default - Album objects: \"tracks\" will only include track details. Use \"songcount\" - Artist objects: \"albums\", \"songs\" will only include track details Use \"albumcount\" and \"songcount\" * Fri Feb 05 2021 ecsos - Update to 4.3.0 This version of Ampache seeks to bring in some of the great changes going on in develop while we work on v5. There also a few API changes to enable a bit better control for older clients. * Added - Check limits on democratic playlists (> 0 && < 3000000000) - Show an error for out of range democratic cooldowns - SubSonic - Force a default format (xml) instead of none - Added back the agent string in recently played (for admins) - Replace \'Admin\' icon with padlock in sidebar when access check fails. (Hide this new icon with \'simple_user_mode\') - Disable API/Subsonic password resets in \'simple_user_mode\' - New option -m \'move_catalog\' added to catalog_update.inc - More default preferences to the refill/check functions - More functions to search (album artist, mbid) - Config version 46 - NEW config options - hide_search: If true do not include searches/smartlists in playlist results for Api::get_indexes, Api::playlists - NEW plugin: - \'Personal Favorites\'. Show a shortcut to a favorite smartlist or playlist on the homepage - \'RatingMatch\'. Raise the minimum star rating (and song loves) of artists and albums when you rate/love the song * Changed - Scrobble plugins fire after stat recording - Split art search by 5 instead of 4 - Increase autoupdate check time and don\'t force it on each logon - Updated CSS and separated mashup covers from other types - Don\'t use mail_enabled for registration checks - WebUI - Browse by album_artist instead of single artists - Better sorting for playlists using sort_tracks - Don\'t allow duplicate podcast feeds - Updated the gather art process - Searches will order by file/name instead of id (unless random) - Updated amapche.sql - Updated composer requirements - Default false config option text changed to true (no more typing, just uncomment!) - Compressed PNG and JPG images * Removed Disabled the jPlayer fullscreen shortcut (ctrl + f) Remove system preferences from the user that aren\'t classified as a system preference Stop setting open_basedir from fs.ajax Concert/Event pages (dead Last.fm API) Don\'t run reset_db_charset on DB updates Disabled browse_filter for new user accounts * Fixed Speed up the playlist dialog boxes (Add to playlist) Fix SQL query for Stats::get_newest_sql Session cookie creation Multiple auth attempts in the same second would not return a session Mail auth was not checked correctly Gather art correctly for update_file.inc set bitrate correctly if using a maxbitrate in play/index MP3\'s would not get a waveform without editing the config Recently played respects your privacy settings Graph class sql grouping MAJOR UPnP fixes Upload catalog rename logic * API 4.3.0 Changed + Api::record_play - Make \'user\' parameter optional - Allow \'user\' to the be user_id or the username string - Add \'date\' parameter (optional) - Require 100 (Admin) permission to record plays for other users + Api::get_indexes - Add \'hide_search\' parameter (optional) + Api::playlists - Add \'hide_search\' parameter (optional)- Add get-source.sh to include vendor and components packages.- Rebase rpmlintrc.- Rebase ampache-confpath.patch and ampache-systemd.patch. * Tue Jan 19 2021 ecsos - Update to 4.2.6 * Changed - Ignore ALL tagged releases (e.g. 4.2.6-preview 4.2.6-beta) - Don\'t check the times in save_mediaplay plugins - Plugins should only have 1 category - Update Composer requirements * Removed - Some system preferences were added as user preferences * Fixed - Search original_year query - Replaygain was missing from the webplayer - Check albumartist in get_album_suite queries - Recently played queries check for privacy options - Headphones plugin fix for missing mbid\'s - Duplicate downloads recorded in play/index - Subsonic video HLS stream and json values - Block more password resets when using simple_user_mode * API 4.2.6 - NO CHANGE
|
|
|