Revisions of ampache
Eric Schirra (ecsos)
accepted
request 1219951
from
Eric Schirra (ecsos)
(revision 130)
- Update to 7.0.1 * Added - Translations 2024-10-30 - Album query sort album_artist_title (Sort by artist name then album title) - Validate URL input on Custom url preferences - custom_favicon (Custom URL - Favicon) - custom_login_background (Custom URL - Login page background) - custom_login_logo (Custom URL - Login page logo) - custom_logo (Custom URL - Logo) - custom_blankalbum (Custom blank album default image) - custom_blankmovie (Custom blank video default image) - Database 701002 - Add preference id and name indexes to the user_preference table -Convert custom_text_footer into a system preference * Changed - Fail preference insert if the new id isn't a valid int - Ensure URL preferences are input as a valid URL - Remove access to custom_text_footer preference for users - Update Composer requirements - Move JS for the sidebar back into the PHP template. (For now) * Removed - Stop rebuilding preferences all the time. (This is now fixed up on insert/delete) * Fixed - Action buttons using songs for other media types in recently played all - Clear session preferences when installing plugins so they appear right away - Extra closing div on shout home plugin - Garbage collect invalid user preferences (0 preference id) - Stats module checking for place names when the data is missing - Respect geolocation setting in stats calls and only check valid data - Align 'Post Shout' and 'Graphs' text on artist page - Missing 'default' string for album_sort (Should match on default but be explicit) - Double / in JS url - Sidebar cookie, JavaScript and visual state were a bit of a disaster - Look for the expanded class in the sidebar before toggling collapse # API - NO CHANGE
Eric Schirra (ecsos)
accepted
request 1217359
from
Eric Schirra (ecsos)
(revision 129)
- Update to 7.0.0 * Added - New release structure type (client) based on the public release type. (Allow using an API client in the root Ampache folder) - Translations 2024-10 - npm java package management - Convert most theme icons to use Google Material Symbols & Icons - Restore composer.lock - Added rated songs to user Wrapped pages - Show ratings on live_stream pages - User option to show dashboard links on the index instead of browse links - Use number for preference input text boxes when the preference value is numeric - Check the user is admin when deleting activities - Verify http_referer before delete actions - Add option to clear update notifications which will also reset the check timer - Allow hiding licenses like genres - Show a warning on upload license selection - Show Bandcamp search icon on object pages - Garbage collect inactive users after 30 days - Remove validation token on user activation - Show error on user add/update when the website is invalid (empty values are ignored) - Added a get_web_path function to allow easier squash and client structure management - Hide SQL debug errors on queries that check status/backwards compatibility functions - Plugins - Home Dashboard: show album dashboard sections on the index - Preferences for sorting display_home plugins using CSS order - Browse - Sort by play count (total_count) for podcast, podcast_episode and video - Add country and active sort to label - Add rating sort to live_stream and video - Add id browse to all types - Search - Added waveform to song search. (Must not enable album_art_store_disk to return data) - Subonic - Add openSubsonic extensions ampache.org - CLI - New command bin/cli admin:updateConfigFile (Update the config file to the latest version if available) - New command bin/cli admin:updatePlugins (Update any plugins that need an update) - Update for missing preferences after CLI DB updates - New command bin/cli admin:updatePreferenceAccessLevel force preference access level ('default', 'guest', 'user', 'content_manager', 'manager', 'admin') - New command bin/cli admin:listUsers list all the active users for your site username (id) - New command bin/cli admin:resetPreferences Reset preference values for users ('system', 'default', 'minimalist', 'community') - Config version 75 - Add npm_binary_path - Remove OpenID config - Add database_engine to allow you to change from InnoDB if you want to - Add composer_no_dev which allows you to remove --no-dev from the composer commands - Enable user_create_streamtoken by default - Add option waveform_drawflat that was previously hardcoded - Add webplayer_level allow setting a minimum permission level for the webplayer (default user) - Database 700029 - Add user preferences to show/hide menus in the sidebar and the switcher arrows - Add Indexes to object_count, object_count_idx_count_type_date_id and object_count_idx_count_type_id - Convert the remaining MyISAM tables to InnoDB - Drop and recreate tmp_browse to allow InnoDB conversion - Add a last_count to playlist table to speed up access requests - Add collaborate to the playlist table to allow other users to add songs to the list - Create user_playlist_map table to allow browse access to playlists with collaborators - Convert system preference upload_catalog into a user preference - Convert clip, tvshow, movie and personal_video catalogs to video - Remove clip,movie, personal_video, tvshow, tvshow_episode and tvshow_season tables - Add user preference Custom URL - Use your avatar for header logo this allows you to override custom header logos with your avatar - Add action column to ip_history table - Add name to user_preference table - Add user Preference index_dashboard_form (Use Dashboard links for the index page header) - Put sidebar preferences into their own category - Add user preferences to order menu sections in the sidebar - Add UI option api_always_download Force API streams to download. (Enable scrobble in your client to record stats) - Require unique preference names per-user in user_preference table' - Add order column to license table to allow sorting and hiding licenses - Add options to allow hiding different search links - Remove tvshow, tvshowseason from object_type enums * Changed - Prefer the name of the artist provided by MusicBrainz plugin - Use PHP functions for php8.2+ - Update rector minimum to php8.2 and extend rector source directories - Default to InnoDB on new installs - Change URL for user avatar links - Move JavaScript out of PHP where possible - Convert string access names and int user access levels to enums - Update the upload file browser - Update gettext/gettext to v5 - Default to RandomAction on stream.php - Reborn theme CSS updates after switching to Material icons - Update code style to convert long form arrays (array()) to short form ([]) - Pull prettyphoto from GitHub (lachlan-00/prettyphoto) using npm instead of merging into the project - Only allow Video catalogs instead of the different subtypes - Use preference names for lookups instead of guessing ID's - Skip empty sections when showing a Dashboard (mashup) page - Put each plugin class into extended interfaces to ensure functions meet expected requirements - Changed CSS logo to HTML - Skip stat recording on cache=1 instead of reclassifying as a download - Convert catalog row actions to a form to fix client branch - When updating artist from MusicBrainz use begin area name and fall back to current area instead of using both - Don't show track sort on non track pages - Validate URLs on save - Block users creating a user called System (including translation into site language) - Don't show query errors on check queries. (these can be annoying and are useless) * Removed - Support for PHP greater than 8.2 - Unused stream actions - Old composer files - Unused PNG icons - CSS for sidebar order. Use the new preferences instead - Non-music Video features have been removed. You can no longer add catalogs for these video types - Movies - TV Shows - Personal Videos - Plugins - Omdb (Movie Database lookup) - Tvdb (TV Database lookup) * Fixed - Enforce sidebar_light when enabled, ignoring cookie if set - Don't create missing tables when they haven't been created for your database version - Don't put empty artists into artist links - Opensearch not being added for sites with auth - Opensearch URL parameters didn't work - VLC localplay volume division number incorrect for total volume - Latitude and longitude column names in stats page - Cookie disclaimer missing closing " on div id - UpdateUser action didn't send you back with a valid user on error - Don't show HTML errors in cli - Don't show duplicate items in upload_catalog select when you don't have a music catalog - User config presets didn't do anything, now they match the cli admin:resetPreferences command - Don't show Visualizer related buttons in the webplayer until it's turned on - Make sure preference read and insert is supported on all Ampache versions - Ampache6 changed spells category correctly. (Migration600051) - Ampache7 adds the preference name to the user_preference table. (Migration700020) # API 6.6.4 Merge update from Ampache7. This update has counting updates to allow faster responses on larger results * Added + API6 - Use set_count function on data classes to speed up counting response totals - Validate website for user_edit - Use split search for search methods - advanced_search / search - search_songs - user_update - playlist_generate + API5 - Use split search for search methods - advanced_search - search_songs - user_update - playlist_generate + API4 - Use split search for search methods - advanced_search - search_songs - user_update - playlist_generate + API3 - Use split search for search methods - advanced_search - search_songs
Eric Schirra (ecsos)
accepted
request 1216640
from
Eric Schirra (ecsos)
(revision 128)
- Update to 6.6.4 Ampache6 will now go into a semi frozen state and will only be updated to match API changes in Ampache7. * Added - Delete all additional Ampache7 preferences on database update - Backport Ampache7 Search class to handle API updates * Fixed - Don't show track number header when not displaying song track numbers - User validation wasn't cleared after activation - Localplay preference displayed as bool types - Found some missing preferences for validation - Error on site_title and api_always_download insert when missing - Validate website on User update and create functions - Validate website on Label update - Validate website on Podcast update - Added checks for some file handles to make sure they're valid first - Fix up docstrings in a few areas # API 6.6.4 Merge update from Ampache7. This update has counting updates to allow faster responses on larger results * Added + API6 - Use set_count function on data classes to speed up counting response totals - Validate website for user_edit - Use split search for search methods - advanced_search / search - search_songs - user_update - playlist_generate + API5 - Use split search for search methods - advanced_search - search_songs - user_update - playlist_generate + API4 - Use split search for search methods - advanced_search - search_songs - user_update - playlist_generate + API3 - Use split search for search methods - advanced_search - search_songs * Changed - Rename API-CHANGELOG.md => CHANGELOG-API.md
Eric Schirra (ecsos)
accepted
request 1205064
from
Eric Schirra (ecsos)
(revision 127)
- Update to 6.6.3 * Fixed - Translating incorrect values for default preferences + User uploads - Don't delete the album_artist from the post array when updating - Update process not updating album version or release_status - Order of catalog verify by update_time may ruin the order when updating - Changes from 6.6.2 * Added - Check the user is admin when deleting activities - Verify http_referer before delete actions + Database 600076 - Add ui option ('api_always_download') Force API streams to download. (Enable scrobble in your client to record stats) - Ad more downgrades for Ampache7 users looking to roll back + CLI - admin:updateDatabase: set and fix up preferences on update + Browse - Podcast sort by total_count - Label sort by active status * Changed - Play URLs cache=1 will bypass stat recording instead of converting to download - When updating artist data from MusicBrainz use begin-area name and fallback to area - Allow guest users access to the webplayer - Allow upload user to edit mbid fields on objects they own * Fixed - Browse trim for sort could leave a , - Song has_info had extra select columns - Some tests were broken - Missing close on cookie disclaimer div id - content-length calculation for transcode - Admin creating a user with a duplicate email wasn't notified - Remove mixed parameter typing so we don't break php7.4 - Upload owner could not use update_from_tags - Upload owner was not sending item values to the update functions # API 6.6.2 * Added + API6 - Add stats parameter to stream and download methods (If false disable stat recording when playing the object) - Respect api_always_download in stream and download methods - Add sorting to stats calls - add user object to playlist responses (owner of the playlist) * Fixed + ALL - index: Artist index not showing albums
Eric Schirra (ecsos)
accepted
request 1198058
from
Eric Schirra (ecsos)
(revision 126)
- Update to 6.6.1 * Fixed - Wanted items were not being added to the DB correctly - RSS Feeds were not including other users - Ambiguous column in Rating::get_highest_sql() - Wanted / Song_Preview items were very broken and badly sorted results - Don't cache additional columns for songs causing dynamic properties - Delete label confirmation missing ID - Transcoding and not transcoding with downsample_remote enabled - Set default value for transcode on get ('default') + Browse - Not restoring QueryType on reload of saved browse - Sorting users by invalid sort type - Dupe select in some areas (always overwrite instead of adding) - Highest rating SQL had ambiguous column in select + Plugins - Don't show that catalog favorites header if there isn't anything to show + Search - Stripslashes on input to fix Don't becoming Don\'t in the SQL + Subsonic - Always include cover art in search results + webplayer - Missing variable playlist_before in shuffle function # API 6.6.1 This release keeps parity between Ampache7 releases by backporting the updated code. * Added + API6 - Add maximum ID properties to handshake and ping (with auth) responses for media types - max_song, max_album, max_artist, max_video, max_podcast, max_podcast_episode - flag: add date as a parameter (set the time for your flag)
Eric Schirra (ecsos)
accepted
request 1189019
from
Eric Schirra (ecsos)
(revision 125)
- Update to 6.6.0 * Added - Add maxlength to the user data fields on the registration and edit pages - Use autocomplete="new-password" to stop trying to autocomplete on edit pages - Default theme fallback to 'Dark' color scheme - Add users as a playlist collaborator (These users can add and remove songs from a playlist) - Expand user IP History to show user Agent string + Database 600075 - Add collaborate to the playlist table to allow other users to add songs to the list - Create user_playlist_map to allow browse access to playlists with collaborate access + CLI - admin:updateDatabase: allow downgrading database from Ampache7 databases * Changed - Split out API change documentation from CHANGELOG.md to API-CHANGELOG.md - Simplify and speed up playlist access checks by sending the user object - User IP history will always group duplicates values - Don't notify that items are added in the WebUI when nothing was added - Users will see additional playlists if they are added as a collaborator - Don't notify that items are added to a playlist in the WebUI when nothing happened * Removed - Don't track user IP from stream URL access * Fixed - AutoUpdate preferences were not being saved, respected or updated - Total table counts for artists didn't include all artists - Check valid playlist / search on random actions - Autoupdate version check tweak for empty latest version - XSS scenarios that a user could create (and some admin ones as well) - URL encode name parameters for links - User IP history page didn't show what you expected and was very confusing - Edit search and playlist pages not reloading the user list - Missing table check for database update 500006 - Over-escaped playlist name when saving from smartplaylist - Skip caching missing files - Browse albums by name_year not splitting columns for sorting # API 6.6.0 * Added + ALL - Track user IP on handshake and ping calls - playlist_edit: separate error when the playlist doesn't exist + API6 - New Method: playlist_hash (Get the MD5 hash of the playlist without getting the whole object) - Add md5 to responses. (Hash objects in the response before slicing and limiting) - Add md5 property to playlist objects. (Hash of song objects in the response) - Add username property to handshake and ping (with auth) responses to workaround missing usernames in token auth - Add has_access property to playlist objects. (Can edit the playlist if true) - Add has_collaborate property to playlist objects. (Can add and remove songs to the playlist if true) - Add last_update property to playlist objects. (Time a playlist changed. Smartplaylists do not change based on returned songs) - Add object_type and object_id property to shout objects * Changed + API6 - playlist_edit: Add songs if you're a collaborator and ignore edit parameters if you fail has_access check - catalog_add: Do not return an object. (We return a single item) - bookmark_create: Do not return an object. (We return a single item) * Fixed + ALL - User preferences were not initiated and the server preferences would overwrite differences - Api::set_user_id function sending an int instead of a user - Some responses that include users not checking the user is valid + API6 - JSON: Send empty array for missing single item methods - lost_password: function name incorrect - flag: id smartplaylists correctly - rate: id smartplaylists correctly - albums: Browse user may not be set - podcast_episodes: Browse user may not be set
Eric Schirra (ecsos)
accepted
request 1179684
from
Eric Schirra (ecsos)
(revision 124)
- 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
Eric Schirra (ecsos)
accepted
request 1171747
from
Eric Schirra (ecsos)
(revision 123)
- 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
Eric Schirra (ecsos)
accepted
request 1160957
from
Eric Schirra (ecsos)
(revision 122)
- 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.)
Eric Schirra (ecsos)
accepted
request 1157654
from
Eric Schirra (ecsos)
(revision 121)
- 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)
Eric Schirra (ecsos)
accepted
request 1150802
from
Eric Schirra (ecsos)
(revision 120)
- Adjustments patch macro for rpm 4.20.
Eric Schirra (ecsos)
accepted
request 1137709
from
Eric Schirra (ecsos)
(revision 119)
- 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
Eric Schirra (ecsos)
accepted
request 1134615
from
Eric Schirra (ecsos)
(revision 118)
- 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
Eric Schirra (ecsos)
accepted
request 1123219
from
Eric Schirra (ecsos)
(revision 117)
- 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
Eric Schirra (ecsos)
accepted
request 1114401
from
Eric Schirra (ecsos)
(revision 116)
- 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
Eric Schirra (ecsos)
accepted
request 1108340
from
Eric Schirra (ecsos)
(revision 115)
- 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
Eric Schirra (ecsos)
accepted
request 1108017
from
Eric Schirra (ecsos)
(revision 114)
- 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
Eric Schirra (ecsos)
accepted
request 1106235
from
Eric Schirra (ecsos)
(revision 113)
- 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
Eric Schirra (ecsos)
accepted
request 1099027
from
Eric Schirra (ecsos)
(revision 112)
- 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
Eric Schirra (ecsos)
accepted
request 1087793
from
Eric Schirra (ecsos)
(revision 111)
- 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
Displaying revisions 1 - 20 of 130