Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:frispete:tools
ampache
ampache.changes
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ampache.changes of Package ampache
------------------------------------------------------------------- Thu Oct 31 17:31:35 UTC 2024 - ecsos <ecsos@opensuse.org> - 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 ------------------------------------------------------------------- Wed Oct 23 08:59:46 UTC 2024 - ecsos <ecsos@opensuse.org> - 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 ------------------------------------------------------------------- Mon Oct 21 05:53:10 UTC 2024 - ecsos <ecsos@opensuse.org> - 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 ------------------------------------------------------------------- Wed Oct 2 04:57:23 UTC 2024 - ecsos <ecsos@opensuse.org> - 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 ------------------------------------------------------------------- Sat Aug 31 10:21:49 UTC 2024 - ecsos <ecsos@opensuse.org> - 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) ------------------------------------------------------------------- Mon Jul 22 09:05:52 UTC 2024 - ecsos <ecsos@opensuse.org> - 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 ------------------------------------------------------------------- Mon Jun 10 08:33:24 UTC 2024 - ecsos <ecsos@opensuse.org> - 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 3 05:08:15 UTC 2024 - ecsos <ecsos@opensuse.org> - 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 13:17:21 UTC 2024 - ecsos <ecsos@opensuse.org> - 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 14:25:15 UTC 2024 - ecsos <ecsos@opensuse.org> - 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 09:44:22 UTC 2024 - ecsos <ecsos@opensuse.org> - Adjustments patch macro for rpm 4.20. ------------------------------------------------------------------- Tue Jan 9 08:49:28 UTC 2024 - ecsos <ecsos@opensuse.org> - 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 09:06:52 UTC 2023 - ecsos <ecsos@opensuse.org> - 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 3 09:31:00 UTC 2023 - ecsos <ecsos@opensuse.org> - 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 06:49:10 UTC 2023 - ecsos <ecsos@opensuse.org> - 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 14:41:21 UTC 2023 - ecsos <ecsos@opensuse.org> - 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 16:15:08 UTC 2023 - ecsos <ecsos@opensuse.org> - 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 06:44:37 UTC 2023 - ecsos <ecsos@opensuse.org> - 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 04:57:01 UTC 2023 - ecsos <ecsos@opensuse.org> - 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 06:53:41 UTC 2023 - ecsos <ecsos@opensuse.org> - 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 16:27:41 UTC 2023 - ecsos <ecsos@opensuse.org> - Update to 5.6.0 * Added + Subsonic - Add type and serverVersion to <subsonic-response> 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 15:55:29 UTC 2023 - ecsos <ecsos@opensuse.org> - 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 13:35:19 UTC 2023 - ecsos <ecsos@opensuse.org> - Let php8 use also. ------------------------------------------------------------------- Fri Dec 16 07:35:47 UTC 2022 - ecsos <ecsos@opensuse.org> - 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 08:21:12 UTC 2022 - ecsos <ecsos@opensuse.org> - 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 10:33:58 UTC 2022 - ecsos <ecsos@opensuse.org> - 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 15:11:06 UTC 2022 - ecsos <ecsos@opensuse.org> - 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 05:42:34 UTC 2022 - ecsos <ecsos@opensuse.org> - 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 08:15:54 UTC 2022 - ecsos <ecsos@opensuse.org> - 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 11:29:23 UTC 2022 - ecsos <ecsos@opensuse.org> - 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 1 05:43:09 UTC 2022 - ecsos <ecsos@opensuse.org> - 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 20:06:32 UTC 2022 - ecsos <ecsos@opensuse.org> - 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 9 05:41:09 UTC 2022 - ecsos <ecsos@opensuse.org> - 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 08:05:09 UTC 2022 - ecsos <ecsos@opensuse.org> - 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 08:40:49 UTC 2022 - ecsos <ecsos@opensuse.org> - 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 06:19:03 UTC 2022 - ecsos <ecsos@opensuse.org> - 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 07:25:02 UTC 2021 - ecsos <ecsos@opensuse.org> - 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 06:30:30 UTC 2021 - ecsos <ecsos@opensuse.org> - 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 08:46:56 UTC 2021 - ecsos <ecsos@opensuse.org> - 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 13:19:00 UTC 2021 - ecsos <ecsos@opensuse.org> - 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 5 09:10:59 UTC 2021 - ecsos <ecsos@opensuse.org> - 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 5 05:37:07 UTC 2021 - ecsos <ecsos@opensuse.org> - 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 07:00:53 UTC 2021 - ecsos <ecsos@opensuse.org> - 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 3 06:37:12 UTC 2021 - ecsos <ecsos@opensuse.org> - 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 5 09:45:20 UTC 2021 - ecsos <ecsos@opensuse.org> - 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 07:04:20 UTC 2021 - ecsos <ecsos@opensuse.org> - 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 ------------------------------------------------------------------- Sat Dec 12 12:17:33 UTC 2020 - ecsos <ecsos@opensuse.org> - Use apache-rpm-macros. - Put apache configuration files in separate subpackage. - Put language files in separate subpackage. ------------------------------------------------------------------- Fri Dec 4 06:56:45 UTC 2020 - ecsos <ecsos@opensuse.org> - Update to 4.2.5 * Added - Use _add_urls when building a stream playlist * Changed - Removed the forced random from search - Put the browse header at the top above plugins - Make the webplayer class a bit faster at deciding what to transcode * Fixed - Ampache Debug, cron.lib.php missing from init - Slow playlist creation when inserting a large amount of items - Stream_URL properties were inconsistently applied - Fix streaming when play_type is Democratic - Save your limit and random settings when creating a smartlist * API 4.2.5 - NO CHANGE ------------------------------------------------------------------- Tue Nov 3 07:51:21 UTC 2020 - ecsos <ecsos@opensuse.org> - Update to 4.2.4 * Added - Random tickbox added to search pages * Changed - Fall back to year when using original year in search * Fixed - User was being created but you were told it isn't - The search pages remember your limit correctly - PHP exception when < 7.1 - Correct Recently Added, Recently Updated searches - Check that song can be inserted before inserting the remaining rows - Logic in stat recording when skips occur - Don't query for null tag ids * API 4.2.4 - NO CHANGE ------------------------------------------------------------------- Wed Oct 7 15:21:51 UTC 2020 - ecsos <ecsos@opensuse.org> - Add ampache-cron.service and amapache-cron.timer. - Run spec-cleaner. ------------------------------------------------------------------- Tue Oct 6 15:12:35 UTC 2020 - ecsos <ecsos@opensuse.org> - Update to 4.2.3 Minor release fixing some issues found over the last month. * Added - Subsonic: Generate errors for objects missing art * Changed - Don't mark short songs as skipped - Subsonic: Stop converting strings to ints in JSON responses * Fixed - User registrations - Workaround null values for new columns in search table - Check release_type length before inserting into the database - Ensure Album Artist is set correctly on songs - Subsonic: Fix callbacks for similarSongs2 and artistInfo2 - Subsonic: getCoverArt fixes * API 4.2.3 - NO CHANGE ------------------------------------------------------------------- Wed Sep 2 08:23:25 UTC 2020 - ecsos <ecsos@opensuse.org> - Update to 4.2.2 DATABASE CHANGES You can now force a default collation and charset on your database. If you choose to use utf8mb4; Ampache will convert your table engine to InnoDB to handle the extra bytes. * Added - Numeric 'Played/Skipped ratio' added to search. (Set using (stream/skip)*100.) - > 0 & < 100: Skipped more than played - 100: Equal plays and skips - > 100: Played more than skipped - Add 'Original Year', 'Release Type' to Album searches - Allow setting custom database collation and charset without overwriting your changes - Video search added to random.php - 'samesite=strict' on JS cookies - Translation updates (August 2020) - Put 'Labels' into search, browse headers and sidebar when enabled - NEW config options (config_version 45) - database_charset: Set a default charset for your database - database_collation: Set a default collation for your database - simple_user_mode: Don't allow users to edit their account values (used for demo sites that allow login) - NEW files - bin/update_file.inc: Update your catalog when individual files are changed using inotifywait.sh - bin/update_db.inc: Update your database collation, charset and table engine from the cli - docs/examples/inotifywait.sh: script to use inotifywait and update_file.inc to update as file changes happen - docs/examples/inotifywait.service: systemd example service for inotifywait.sh * Changed - stats.php: Show total 'Item Count' on Statistics page instead of trying to shoehorn songs/videos/etc into different columns - ampache.sql updated after about 4 years... no more updates on install! - Searching by "Rating (average)" now ignores private/public and always returns the average. - Hide searches for '# Skipped' and 'Played/Skipped ratio' when 'Show # skipped' is Off - Search items rearranged to try to match each other - Sort 'Playlist' and 'Smart Playlist' browse pages by name - Display the blankuser avatar in now playing if missing - Swap 'Random' and 'Playlists' in the sidebar (CSS order numbers) - Don't hide artist art when you disable lastfm_api_key in the config - Hide 'Metadata' search when 'enable_custom_metadata' is disabled * Deprecated - Drop version number from the release string in develop. ('4.3.0-develop' => 'develop') - This should stop a bit of confusion when removing / adding requirements - The '-release' suffix in version number will be dropped for Ampache 5.0.0 * Removed - Remove stat recording from channels - Don't reset the database charset and collation after each db update * Fixed - Fixed a few issues on the Statistics page - Report 'Catalog Size' correctly for podcasts - Report 'Item Count' correctly for podcasts and video catalogs - Searching albums for artist name - Mashup 'Newest' would incorrectly apply an offset missing the newest items - Search by 'Smart Playlist' rules fixed when added with other rules - Use LEFT JOIN instead of HAVING for search rules to allow more complicated lists - Logic searching 'My Rating' includes unrated (0 Stars) in a better way - Captcha was not generated for registration - Enforce lowercase codec for live streams - Parsing integer search rules was overwriting index values - Handle empty XML on similar artist requests to last.fm * Security - Fix CVE-2020-15153 - Unauthenticated SQL injection in Ampache * API 4.2.2 - Minor bugfixes * Added - Api::advanced_search added parameter 'random' (0|1) to shuffle your searches * Changed - Remove spaces from advanced_search rule names. (Backwards compatible with old names) - 'has image' => 'has_image' - 'image height' => 'image_height' - 'image width' => 'image_width' - 'filename' => 'file' (Video search) * Deprecated - Search rules 'has image','image height', 'image width', 'filename'. (Removed in Ampache 5.0.0) * Fixed - Api::stream, Api::download Api::playlist_generate 'format' parameter was overwritten with 'xml' or 'json' - Produce valid XML for playlist_generate using the 'id' format in XML ------------------------------------------------------------------- Sat Aug 22 15:12:34 UTC 2020 - ecsos <ecsos@opensuse.org> - Update to 4.2.1 * Added - Ajax refresh localplay "Now Playing" same as the index "Now Playing" section - Put strings ('1 Star', '2 Stars', etc) back into numeric searches for ratings - Numeric ('1 Star'-'5 Stars') searches now include '0 Stars' to show unrated objects - Add 'has not rated' to "Another User" searches - Add higher bitrates (640, 1280) to search to allow for lossless files - NEW files - Include API docs from the wiki. (API.md, API-JSON-methods.md, API-XML-methods.md, API-advanced-search.md) - 'Filters' added to each sidebar tab if enabled (previously only 'Home' and 'Admin') * Changed - Use binary (.mo) translation files to speed up translation processing - Don't show 'Generate new API key' if you don't have access - QR Code in account page is now just the API Key (redundant link removed too) - Require minimum version of Ampache 3.8.2 to upgrade database - Added an icon to webplayer to go to album. Clicking on song title now directs to song * Fixed - Waveform config option 'get_tmp_dir' was ignored if set - Rightbar: 'Add to New Playlist' not adding on new playlists - Translate preference subcategories and status - 'podcast_new_download' logic fix - Filters box would show up in the Admin tab if you disabled 'browse_filter' - Update album when 'release_type' changes - Parse 'Release Type' from tags in a less terrible way * API 4.2.1 - No functional changes compared to 4.2.0. * Fixed - Filter in "playlist" and "playlist_songs" fixed ------------------------------------------------------------------- Thu Aug 6 07:05:33 UTC 2020 - ecsos <ecsos@opensuse.org> - Update to 4.2.0 A big visual change in the interface is that Ampache now defaults to US time for dates. ('Month/Day/Year') For everyone who isn't American you have control over date formats using custom_datetime. Admin => Server Config => Interface => Custom datetime e.g. Y/m/d H:i will convert to 2020/04/14 10:42 Check the php manual for help making your desired string. ([https://www.php.net/manual/en/function.date.php]) The API changelog for this version has been separated into a new sub-heading below to make it easier to follow. * Added - Added Spotify art searches for both album and artist images. - Updated component installer and php-cs-fixer package. - Translation updates (April 2020, May 2020, July 2020) - Added declare(strict_types=0); to lib/* and lib/class/* (requires more work before it can be enabled) - Add 250 for search form limits in the web UI. (Jump from 100 to 500 is pretty big) - Add Recently updated/added to search rules - Add regex searching to text fields. ([https://mariadb.com/kb/en/regexp/]) - Refer to the wiki for information about search rules. (https://github.com/ampache/ampache/wiki/advanced-search) - When labels are enabled, automatically generate and associate artists with their publisher/label tag values. - Enforced stat recording for videos. (podcasts and episodes to be added later) - Add tags (Genres) to Anywhere text searches. - 10 second redirect on Access Denied to the default web_path - Allow Update from tags for multi-disk album and artist pages - show and hide the rightbar (playlist) using the minimize button in the header - Tag->f_name (New property on tag that was being set hackily) - Add Album to Find Duplicates in admin/duplicates.php. - Local Image added to Artist & Album search. Find out whether you have art stored in Ampache - PHP_CodeSniffer checks and settings added to Scrutinizer. (phpcs --standard=.phpcs.xml lib/class) - NEW database options - cron_cache: Speed up the interface by allowing background caching of data - show_skipped_times: Add # skipped to the UI. (disabled by default) - custom_datetime: Allow you to format your date strings your way. - unique_playlist: Force unique playlists by ignoring existing songs - NEW config options - skip_timer: Add Skip Timer Threshold to the config - artist_art_folder: Specify a local folder to search for artist images using name/title - rating_file_tag_user: Set ratings to this user ID when importing ratings from file tags - spotify_client_id: Allows Spotify art search - spotify_client_secret: Allows Spotify art search - NEW files - server/json.server.php & lib\class\json_data.class.php: JSON API! - bin/compute_cache.inc: Cache object_count data to speed up access - bin/cron.inc: Perform garbage_collection functions outside of main functions (includes compute_cache.inc) - NEW examples - docs/examples/ampache_cron.service - docs/examples/ampache_cron.timer * Changed - Change license string from AGPLv3 to AGPL-3.0-or-later - Update Composer requirements - Allow searching play times without requiring UI option - Stop showing the average rating in the web interface as stars. (show an average when available as text separately) - When you don't have a config file redirect to installer - Change to numeric searches: Renamed 'is' => 'equals' and 'is not' => 'does not equal' - Allow negative track numbers; reducing the maximum track number to 32767. - Localplay volume control moved to the playlist (rightbar) - Podcast_Episode::check_play_history Podcast_Episode::set_played (match song.class versions for stat recording) - Video::check_play_history Video::set_played (match song.class versions for stat recording) - php_cs rules for line endings - Simplify play history checks and code a bit more - Tag (Genre) searches compare each item (e.g Pop) rather than the whole string (Pop,Rock,etc) - Replace Browse Library buttons with a search header allowing faster browsing of other types - Share secrets are generated by generate_password instead of a separate function - inet_ntop may not convert some binary IP addresses (like ::1) these now show up as Invalid in the ip history. - Searches using numeric rules must use an integer. ('1 Star' => 1, '2 Stars' => 2, etc) - bin/delete_disabled.inc require -x to execute. (previously you needed to edit the file) * Deprecated - Horde_Browser::getIPAddress(). Use Core::get_user_ip() instead. * Removed - bin/migrate_config.inc (This was used to migrate the config file from php4 to php5) - EchoNest api/song previews - User::update_user_stats (used in play index only and useless) - Share::generate_secret; use generate_password instead - Song::get_cache_count (unused) - Ampache Debug check for 'safe_mode' * Fixed - Fixed a lot of incorrectly typed function calls and code documentation - Gravatar Plugin: Make sure https is used when force_ssl is configured - Truncate strings to match database limits when strings go over - Add User php warnings - Channel authentication - IP checks when sending null proxy values - Gather art page layout - Read vorbis rating correctly - Search rules in UI failing to load with custom_metadata - Warn correctly when inserting art fails - Insert missing user preferences on login - When you had beautiful_urls enabled tracks would not parse in localplay making them all Unknown - Podcast durations aren't always correct format, prep the time before trying to insert it - Subsonic playlist add/remove removing incorrect songs - Search/Smartlists need to have results to be used in lists - Auth issues with stats for recording and localplay - Stream_urls were generated with a typo when downloading - Respect album grouping using of the moment plugin - Filter album title with grouping enabled. (seriously deadmau5, stop with the <> everywhere) - Share playback without a UID would fail to start - Set a default popular_threshold if unauthenticated or unset - play/index would record democratic streams as a download - Make sure the default preferences table has all the preferences in them - Beets catalog bug; date_diff expecting a datetime but given a string - Searches using user data like ratings has been split in the SQL correctly - Flagged playlists never had their flag deleted - offset and limit were incorrectly used for top/recent searches * Security - Fix: CVE-2020-13625 in phpmailer * API 4.2.0 See: https://github.com/ampache/ampache/release/tag/4.2.0 ------------------------------------------------------------------- Tue Feb 11 13:51:19 UTC 2020 - ecsos@opensuse.org - Update to 4.1.1 Ampache 4.1.1 is a minor release that contains a new API build as well as some bugfixes caught along the way. - Bump API version to 400004 (4.0.0 build 004) - Api - Fix parameters using 0 - Api - Get the correct total_count in xml when you set a limit - Api - Fix many XML formatting issues - Api - Add Api::check_access to warn when you can't access a function - Remove non-free lib/composer.* files. - You can enable c-pchart with (composer require 'szymach/c-pchart') - Hide localplay in the sidebar when you disable all the plugins - Extend Shouts to 2000 characters; Labels to 250 - Remove shoutcast table and preferences. (Dead code) - Add a status icon to the channel list pointing to the channel/ID/status.xsl - Fix Musicbrainz Art search - Fix tmp_playlist bug removing items - Fix Dropbox catalog errors when using a small library - Fix some bugs getting invalid time/date when reading tags ------------------------------------------------------------------- Wed Jan 8 12:30:33 UTC 2020 - ecsos@opensuse.org - Update to 4.1.0 Api 400003 is stable and ready for all developers. API work will now move on to JSON support. A lot of work has gone into search, preparing for static typing and a lot of tiny bugs. - Bump API version to 400003 (4.0.0 build 003) - Api::playlist - filter mandatory - Api::playlist_edit - filter mandatory. name and type now optional - Api::user - Extend return values to include more user fields - Playlist::create - Return duplicate playlist ID instead of creating a new one - Artist::check - Remove MBID from Various Artist objects - Fix Song::update_song for label - Api - Do not limit smartlists based on item count (return everything you can access) - Api/Database - Add last_count for search table to speed up access in API - Fix Api issues relating to playlist access - Fix comparison bugs found during static type testing - Fix enable/disable song ajax - December translation update from Transifex - Add playlist into main search page. (Songs, Albums, Artists, Playlists, Videos) - Typo in login page HTTP_REFERER - Roll back mysql8 workarounds. (Orace MySQL supported on php7.4+ only) - Fix bin*.inc text issues with newline - Add docs/examples/channel_run.service for sunning background processes as a service - New search option "Another User" allows searching other user ratings and favorites - user_numeric searches also available in the API. ([https://github.com/ampache/ampache/wiki/XML-methods]) - Updates to support php7.4 (Ampache supports 7.1-7.4) - Fix bug in UI when enabling/disabling songs - Checks in Subsonic/WebUI for recording repeated plays - Update channel status pages (/channel/$CHANNELID/status.xsl) - Fix smartlists when searching sub-lists (Ampache was trying to create one giant query that didn't scale well) - composer & php-cs-fixer updates - Fix "Add New..." in album edit - Revert changes in 4.0.0 and allow manual choices for artist/album on upload again. - Subsonic return json errors when requesting json format (previously errors were always xml) - Add github package guide for docker to RELEASE-PROCESS.md - Update ListenBrainz plugin for empty additional info. (API says remove this section from json) ------------------------------------------------------------------- Mon Dec 2 16:50:44 UTC 2019 - ecsos@opensuse.org - Fix rights for ampache.cfg.php and registration_agreement.php ------------------------------------------------------------------- Mon Dec 2 08:49:21 UTC 2019 - ecsos@opensuse.org - Update to 4.0.4 * Fixes - Finalize release procedure to make these updates a bit smoother - Reduce the time for repeated track playback (Song length - 5 sec) - Filter playlists in API, Web and Subsonic correctly for regular users vs admins - Fix album count for Artists when the album is missing data - Fix searches / searchbox for MYSQL8 - Fix some invalid returns in lib/* - Send correct the function in ajax.server when deleting from playlist - Hide some lines from the mashup to make it a bit nicer - Remove the old logo from the main install page ------------------------------------------------------------------- Thu Nov 28 18:08:50 UTC 2019 - ecsos@opensuse.org - Update to 4.0.3 * Fixes - Fixes for Api::get_indexes, Api::playlists, Api::playlist, Api::playlist_songs - Fix Access::check to allow all public lists - Filter playlists by access in subsonic - Fail check_php_verison() when using less than php7.1 - Fix global user connecting through the API with an API key. ------------------------------------------------------------------- Tue Nov 26 11:03:00 UTC 2019 - ecsos@opensuse.org - Update to 4.0.2 * Fixes - Bump API version to 400002. (v4.0.0 build 002) - Extend Api::playlist_generate (add new mode 'unplayed') - Fix API playlist commands and access checks relating to playlists - Access::check should be passing user id from the API - SQL query fixes for Album, Playlist methods - Remove spaces from play url extensions (Should help with nginx) - Translate typo in show_test.inc - Trim massive year, time and track when importing new songs ------------------------------------------------------------------- Mon Nov 25 12:50:52 UTC 2019 - ecsos@opensuse.org - Update to 4.0.1 Minor release to fix bug in album class and some minor details. * Fixes - Bug fix that would cause albums to be recreated in Album::check on null original_year - Added 'file' to Song::find array ------------------------------------------------------------------- Sun Nov 24 17:13:19 UTC 2019 - ecsos@opensuse.org - Update to 4.0.0 - Resolve CVE-2019-12385 for the SQL Injection - Resolve CVE-2019-12386 for the persistent XSS - Resolve NS-18-046 Multiple Reflected Cross-site Scripting Vulnerabilities in Ampache 3.9.0 - Many other changes, see: https://github.com/ampache/ampache/blob/master/docs/CHANGELOG.md - Rebase ampache-confpath.patch, ampache-config.patch and ampache-playlist-bug.patch. - Repase httpd.conf.ampache. ------------------------------------------------------------------- Wed Jan 30 11:04:29 UTC 2019 - ecsos@opensuse.org - Fix connection eror. (boo#1120428) ------------------------------------------------------------------- Fri Nov 2 10:57:54 UTC 2018 - ecsos@opensuse.org - update to 3.9.0 - Video details now correctly displayed for personal video. - XML API now fully accepts user's API key. Session will be extended if it exists; Otherwise it's replaced. - Artist name added to Lastfm track.getsimilar query. - Catalog_update.inc now includes switches for catalog name and catalog type. - Added Beets catalog to Composer autoload. - Performance improved with playlist display and search. - General translation Updates. - Documented php module requirement for FreeBSD. ------------------------------------------------------------------- Sat Aug 4 09:25:52 UTC 2018 - Mathias.Homann@opensuse.org - update to 3.8.9 - 3.8.9 - Fixed uploading of avatar. - DSub now writes the correct extension when the ampache config switch encode_player_api_target is enabled. - Artist info now properly displayed. - Fixed login bug with PHP-7.2 installed. - 3.8.8 - Subsonic API now removes illegal characters before returning text. - Removed hardcoded access level to allow guests to stream audio. - Guest accounts can now access songs and public playlists. - Fixed bug in subsonic API which caused DSub not to create folders or add file extensions when caching. ------------------------------------------------------------------- Sat Jun 16 10:49:37 UTC 2018 - ecsos@opensuse.org - update to 3.8.7 - Better able to clean up image extensions when gathering art from remote sites. - Check for B.O.M. (\xff\xfe) only in mp3 composer tag and remove. - Added .ogv encoding target for more efficient streaming of mkv files. - Top menu appearance more reader friendly for translations. - Additional fixes to update_remote_catalog function. - Enabled similar songs when clicking on radio icon in DSub. - Repaired problem with removing "empty" albums. - Can now access XML-API when default ACL(s) are removed. - 'Find Duplicates' tool now works. - Cleaning now checks for mounted path before removing empty albums/missing files. - Starring album and artist now work via Subsonic client. - Modified "Gather Art" debug message to remove confusion from "Image less than 5 chars...". - rebase ampache-playlist-bug.patch - edit ampache-confpath.patch - fix missing album art in webplayer ------------------------------------------------------------------- Wed Apr 18 15:52:52 UTC 2018 - ecsos@opensuse.org - update to 3.8.6 - Updated Subsonic Remote Catalog Module to version 2. - Subsonic Catalog now grabs artwork directly from the subsonic server. - Various fixes to Subsonic Catalog and Subsonic API. - Release package now downloads from release update alert. - Develop package downloads from develop update alert. - Fixed album Search. ------------------------------------------------------------------- Tue Feb 27 17:37:24 UTC 2018 - ecsos@opensuse.org - update to 3.8.5 - Added search capability for user's own ratings option for Song, Artist, Album search. - Clean process now removes empty albums. - Further translation updates and fixes. - Updated Subsonic API to increase compliance with Subsonic json API specs. - Added starred date to album list and song and formatted per Subsonic spec. - Now compatible with latest Ultrasonic client (json transfer). - Fixed ability to edit/save smartplaylist name without setting 'random'. - Search/smart playlist now includes favorite artists and albums. - Modified SQL statement to not offend default SQL_MODE of ONLY_FULL_GROUP_BY on server versions after 5.7.6. - Set redirect to false for streaming types. ------------------------------------------------------------------- Wed Dec 6 18:43:22 UTC 2017 - ecsos@opensuse.org - update to 3.8.4 - Subsonic catalog now displays album art and artist bio. - Subsonic API now ignores case when determining methods. - Artist info now displays in Ampache's installed language. - Updated translations. - Composer tag changes now saved to database. - Seafile catalog module added. - Dropbox catalog updated to V2 API. - ip6 addresses now added to user history. - Updated api.class.php - fix for web_path auto configuration for subdirectory installation - Composer tag changes now written to database - Fixed catch null reference - Changes to make translation easier ------------------------------------------------------------------- Sun Aug 20 22:11:47 UTC 2017 - ecsos@opensuse.org - change spec to use it with php7 also. ------------------------------------------------------------------- Tue Jun 27 22:25:26 UTC 2017 - ecsos@opensuse.org - update to 3.8.3 - Fixed upload problem - Fixed charting problem - Updated composer dependencies - Fixed ipv6 issue - Improved Opus transcoding - Fixed localization chart - Improved Subsonic API - Improved ID3v2.3 and v2.4 to better handle multivalued lists - Added sort by disc numbers - Song comments are now editable - Fixed composer column in iTunes - Many typos fixed - Fixed field types in modules and localplay - Fixed timeline function - Activated jplayer "preload" option - Fixed missing submit button on options page - Increased info on DSub failing via Subsonic API - Fixed Group actions in private message page causing JavaScript error - Fixed some info lievel issues in Codacy - Apply trim on dropbox parameters - Added Prompt for user to change secret_key during install - Enabled use of cache in PHPCs - All files now use UTF8 without BOM - Now require Exact catalog name match on catalog update - Port 443 removed from play url - Now test all images found to select the one with the good dimensions - Rewrote LDAP class - Song count in handshake now matches the number returned from songs - Blocking of webplayer when transcoding fixed - Cover art is added to live stream - Added browse filter and light sidebar options - Updated gettext, zipstream, react and sabre dependencies - Fixed Subsonic scrobble submission check - rebase patch ampache-confpath.patch because of unchanged ampache.cfg locations. - add patch ampache-config.patch for only changes in ampache.cfg.php.dist. ------------------------------------------------------------------- Fri Feb 5 19:13:46 UTC 2016 - ecsos@opensuse.org - update to 3.8.2 - Fixed potential security vulnerability on smartplaylist search rule and catalog management actions - Fixed song comparison issue on arrays (genre ...) when updating from tag - Fixed song insertion issue if track year is out of range - Fixed unexpected artist summary autoupdate - Improved generated playlist filename - Fixed user avatar upload - Fixed waveform temporary file deletion issue if GD library is unavailable - Fixed max number of items returned from Subsonic getStarred.view - Fixed video update from tags - Reverted PHP 5.5.9 dependency to PHP 5.4 - Added video playlist support - Added preference subcategory - Added prompt for new playlist name - Fixed page refresh when canceling album art change - Added /play htaccess rewrite rule to avoid default max limit redirection - Fixed Subsonic artist/album/song name JSON parsing if the name is numeric only - Added ignored articles and cover art to Subsonic getArtists.view function - Fixed MySQL requests to support ONLY_FULL_GROUP_BY mode - Fixed Ajax art refresh after changing it - Fixed playlist creation from smartplaylist - Added SQL unique constraint on tag map - Fixed Subsonic genres with JSON format - Added Bookmarks feature on Subsonic API - Fixed thumb art regeneration if entry found in database without data - Added Podcast feature - Added large view / grid view option on artist and albums collection - Moved from php-gettext to oscarotero/Gettext - Added Access-Control-Allow-Origin: * header on Subsonic images & streams - Fixed Subsonic item identifier parsing - Added logic for external plugin directories (ampache-*) - Added Discogs metadata plugin ------------------------------------------------------------------- Thu Dec 17 16:16:42 UTC 2015 - ecsos@opensuse.org - update to 3.8.1 - Fixed PHP7 Error class conflict (thanks trampi) - Fixed user password with special characters at install time (thanks jagerman) - Moved Ampache project license from GPLv2 to AGPLv3 - Add Ampache specific information on Subsonic API getAlbum using a new `ampache` parameter (thanks nicklan) - Added 'album tag' option in song search (thanks DanielMaly) - Added Message of the Day plugin to display MOTD at home page - Moved AmpacheApi class to a separate ampacheapi-php git repository - Added timeline / friends timeline feature - Fixed disabled song display to regular users (thanks shangril) - Fixed random albums art size (thanks Bidules079) - Moved tag cloud to artist browsing by default - Fixed utf8 BOM empty string on song comparison - Improved recently played and user stats queries performance (thanks thinca) - Renamed SAMPLE_RATE to TRANSCODE_BITRATE on transcoding - Fixed tag deletion sql error (thanks stebe) - Moved to PNG default blank image instead of JPG (thanks Psy-Virus) - Fixed temporary playlist initial position when scrolling down (thanks RobertoCarlo) - Added Radio stations to UPnP backend - Fixed Subsonic API art to use album art if song doesn't have a custom art (thanks hypfvieh) - Fixed Subsonic API search when object count parameter is 0 (thanks hypfvieh) - Fixed UPnP UUID to be based on host information - Moved to Composer for dependencies management - Fixed catalog action when not using Ajax page loading (thanks Razrael) - Fixed unrated song default value (thanks Combustible) - Added custom metadata support from files (thanks Razrael) - Improved Subsonic API getArtists performance (thanks nicklan) - Fixed theme color setting behavior - Moved audioscrobbler API to v2 - Added m3u8 playlist import - Fixed utf8 id3v2 comments support - Added write_playlists script to export playlists to file - Fixed Tvdb and Tmdb plugins (thanks wagnered) - Improved Video filename parsing (thanks wagnered) - Fixed non scalar settings value printing on debug page - Improved Subsonic API getAlbumList error handling - Fixed user login with browser used during the installation - Fixed iTunes 12 browsing when using DAAP (thanks Chattaway83) - Moved http_port user preference to ampache.cfg.php - Upgraded last.fm and libre.fm scrobbling to latest API version (thanks nioc) - Added missing space between track and album in localplay playlist (thanks arnaudbey) - Added check fo mbstring.func_overload support before using id3 write functionality (thanks anonymous2ch) - Fixed file size calculation when using id3v2 tag (thanks hypfvieh) - Added rating from id3 tag (thanks nioc) - Added track number on streaming playlist (thanks Fondor1) - Fixed catalog export (thanks shellshocker) - Fixed file change detection - Improved XML API with more information and new functions (advanced_search, toggle_follow, last_shouts, rate, timeline, friends_timeline) - Fixed 'Next' button when browsing start offset is aligned to offset limit (thanks wagnered) - Fixed stream kill OS detection (thanks nan4k7) - Fixed calculate_art_size script to support storage on disk (thanks nan4k7) - Fixed sql script semicolon typo (thanks jack) - Added support for .opus files (thanks mrpi) - Fixed podcast owner xml information - Fixed ldap filter parameter check (thanks ChrGeiss) - Fixed 'Add to existing playlist' link for regular users (thanks Niols) - update apache.conf - drop obsolete patch ampache-sql because it's fixed in source ------------------------------------------------------------------- Tue Jul 28 23:16:28 UTC 2015 - ecsos@opensuse.org - update to 3.8.0 - Added Portuguese (Brasil) language (thanks Ione Souza Junior) - Updated PHPMailer version to 5.2.10 - Fixed user stats clear - Added user, followers and last shouts XML API functions - Fixed transcoded process end on some systems (thanks nan4k7) - Added ogg channel streaming support (thanks Deathcow) - Fixed sql connection close before stream (thanks fufroma) - Added support for several ldap filters (thanks T-Rock) - Fixed 'Add to existing playlist' button on web player (thanks RyanCopley) - Added 'add to existing playlist' link on album page (thanks RyanCopley) - Added option to hide user fullname from other users - Added playlist track information in Apache XML API (thanks RyanCopley) - Fixed playlist remove song in Apache XML API (thanks RyanCopley) - Fixed SubSonic API ifModifiedSince information - Added Podcast links to albums / artists - Added Piwik and Google Analytics plugins - Added Apache 2.4 access control declaration in htaccess files - Fixed performance issues on user preferences - Added artist search by year and place - Fixed search by comment (thanks malkavi) - Added Paypal and Flattr plugins - Added .maintenance page - Fixed captcha - Added private messages between users - Fixed SubSonic API rating information on albums and songs - Added latest artists and shouts RSS feeds - Fixed tag cloud ordering - Added Label entities associated to artists / users - Added WebDAV backend - Fixed SubSonic API requests with musicFolderId parameter (thanks dhsc19) - Added footer text edition setting - Added uploaded artist list on user page - Added custom Ampache login logo and favicon support - Added edition support on shared objects (thanks dhsc19) - Fixed share feature on videos (thanks RobertoCarlo) - Removed album year display from album name if unset - Fixed Subsonic API Album/Artist song's link (thanks dhsc19 and daneren2005) - Added mysql database socket authentication support on web setup (thanks AsavarTzeth) - Fixed artist art url for mobile use (thanks dhsc19) - Added Shoutbox home plugin - Added catalog favorites home plugin - Fixed search by rating (thanks iamnumbersix) - Added UPnP localplay (thanks SeregaPru) - Changed preferences to return the global value if preference is missing for the searched user - Fixed special chars in songs names and tags (thanks SeregaPru) - Fixed Subsonic API playlist edition/delation (thanks dhsc19) - Fixed integer default value in Apache XML API - Fixed image thumb on webplayer and search preview (thanks RobertoCarlo and eephyne) - Fixed proxy setting on all external http requests (thanks brendankearney) - Added QRCode view of user API key - Fixed http status code on Subsonic API streams when using curl (thanks nicklan) - Added Server-Sent Events on catalog actions - Added option to enable/disable channel and live stream features - Removed official PHP 5.3 support - Added option to show/hide footer statistics (thanks brownl) - Added delete from disk option on user uploaded files - Added installation type and players helper at installation process - Added tv_episode tag on quicktime files (thanks wagnered) - Added new option to disable deferred extended metadata, e.g. artist details - Added Subsonic API getAvatar function - Fixed unsynced lyrics tags - Fixed ldap_filter setting deactivation on ampache.cfg.php update (thanks Rouzax) - Added Subsonic API similar artists & songs functions - Added Subsonic API getLyrics function - Fixed disk number and album artist metadata on quicktime files (thanks JoeDat) - Fixed Ampache API playlist_add_song function - Added ability to store images on disk - Added new setting to define album art min and max width/height - Fixed Subsonic API getAlbum returned artist id on songs - Fixed Subsonic API cover art when PHP-GD unavailable - Fixed localplay playlist refresh on volume changes (thanks essagl) - Fixed web player equalizer option if visualizer is not enabled (thanks brownl) - Fixed asx file mime type (thanks thinca) - Added song genre parsing options (thanks Razrael and lotan) - Added sort on languages list (thanks brownl) - Added placeholder text to search box (thanks brownl) - Added web player Play Next feature (thanks tan-ce) - Fixed Plex backend administration page uri (thanks a9k) - Fixed expired shared objects clean (thanks eephyne) - Added missing artist search results (thanks bliptec) - Fixed song genre id parsing (thanks lotan) - Added Scrobble method to Subsonic API - Added an option to add tags to child without overwriting - Added image dimension info to image tables (thanks tsquare66) - Replaced ArchiveLib by StreamZip-PHP to avoid temporary zip file - Added Year field in song details and edition - Added Subsonic API create/delete user, jukebox control and search auto suggestion - Added few optional install tests - Improved Share features with modal dialog choices - Added new action on playlists to remove duplicates - Fixed playlist addition to another playlist (thanks kszulc) - Fixed Various Artist link on album page (thanks Jucgshu) - Added session_destroy call when a session should be destroyed - Added HTML5 ReplayGain track feature - Added display and mandatory user registration fields settings - Added .htaccess IfModule mod_access.c directives - Fixed SmartPlayer results per user (thanks nakinigit) - Fixed XSS vulnerability CVE-2014-8620 (thanks g0blin) - Fixed playlist import setting on catalog update to be disabled by default (thanks DaPike) - Added ability to browse my tags other library items than songs - Added Stream Control plugins - Added transcode settings per player type - Added ability to write directly the new configuration file when it version changed - Added quick play url to have permanent authenticated stream link without session - Fixed unresponsive website on batch download (thanks Rouzax) - Added batch download item granularity - Fixed 'guest' user site rendering - Added Aurora.js support in webplayer - Added Google Maps geolocation analyze plugin - Added statistical graphs - Added user geolocation - Added 'Missing Artist' search - Fixed Ampache installation with FastCGI - Added a new RSS Feed plugin - Added a new 'display home' plugin type - Added Favorite and Rating features to playlists - Added user feedback near mouse cursor on democratic votes - Changed header page position to be fixed - Added external links on song page details - Fixed Subsonic API getAlbumList2 byGenre and byYear order (thanks rrjk) - Added html5 desktop notification - Added album group order setting - Fixed unwanted album merge when one of the album doesn't have mbid - Changed video player to go outside the footer - Added ip address in authentication failure for fail2ban scripts (thanks popindavibe) - Added parameter to hide directplay button if number of items is above a limit - Added Tag split (thanks jcwmoore) - Fixed album/artist arts and stats migration on rename (thanks jcwmoore) - Fixed get lyrics from files (thanks apastuszak) - Fixed verify local catalog (thanks JoeDat) - Removed Twitter code - Added optional cookie disclaimer for the EU Cookie Law - Replaced catalog action links to action dropdown list (thanks Psy-Virus) - Fixed remember me feature (thanks ainola) - Added email when registered user must be enabled by administrators - Fixed local catalog clean on Windows (thanks Rouzax) - Added Subsonic API maxBitRate parameter support (thanks philipl) - Fixed SubSonic API special characters encode (thanks nan4k7) - Added Beets local and remote catalog support (thanks Razrael) - Fixed XML error code returned with invalid Ampache API handshake (thanks funkygaddafi) - Replaced iframe to Ajax dynamic page loading - Changed Albums of the moment to not necessarily have a cover - Added Plex backend items edition support - Added hls stream support - Added X-Content-Duration header support on streams - Removed Toogle Art from artist page - Fixed track numbers when removing a song from playlist (thanks stonie08) - Added Plex backend playlist support - Added gather art from video files (thanks wagnered) - Added Plex backend movie / tvshow support - Added release group on albums - Added Smart Playlist songs list - Added zlib test - Removed old Ampache themes - Fixed SubSonic API lastModified element (thanks bikkuri10) - Disabled beautiful url on XML-API for retro-compatibility - Fixed image resource allocation (thanks greengeek1) - Added setting to write id3 metadata to files (thanks tsquare66) - Added check for large files manipulation - Added video subtitle support - Fixed Google arts to use real arts and not the small size preview - Added Tmdb metadata plugin - Added Omdb metadata plugin - Added Music Clips, Movies and TV Shows support - Added media type information on catalog - Fixed get SmartPlaylist in XML-API (thanks opencrf) - Added beautiful url on arts - Improved browse list header (thanks Psy-Virus) - Fixed user online/offline information on Reborn theme (thanks thorsforge) - Added UPnP backend (thanks SeregaPru) - Added DAAP backend - Added sort options on playlists (thanks Shdwdrgn) - Fixed XML-API tag information (thanks jcwmoore) - Fixed multiple broadcast play (thanks uk3gaus) - Added SmartPlaylists to Subsonic API - Added limit option on SmartPlaylists - Added random option on SmartPlaylists - Added 'item count' on browse - Added direct typed links on items tags - Fixed SubSonic API compatibility with few players requesting information on library -1 - Added license information on songs - Added upload feature on web interface - Added albumartist information on songs (thanks tsquare66) - Fixed errors on sql table exists check - Fixed play/pause on broadcasts (thanks uk3gaus) - Added donation button - Added democratic page automatic refresh - Fixed distinct random albums - Added collapsing menu (thanks Kaivo) - Added 'save to playlist' feature on web player (thanks Kaivo) - Added tag merge feature - Fixed democratic vote with automatic logins (thanks M4DM4NZ) - Added git pull update from web interface for development versions - Fixed http-rang requests on streaming (thanks thejk) - Improved installation process - Improved French translation (thanks arnaudbey) - Improved German translation (thanks Psy-Virus and meandor) - changes from 3.7.0 - Added Scrutinizer analyze - Fixed playlist play with disabled songs (reported by stebe) - Improved user auto-registration to optionally avoid email validation - Fixed date.timezone php warnings breaking Ampache API (reported by redcap1) - Fixed playlist browse with items > 1000 (reported by Tetram67) - Fixed Amazon API Image support (thanks jbrain) - Fixed id3v2 multiples genres (reported by Rouzax) - Improved democratic playlist view to select the first one by default - Improved German translation (thanks Psy-Virus) - Fixed playlist view of all users for administrator accounts (reported by stonie08) - Added option to regroup album disks to one album view - Changed Ampache logo - Fixed email validation on user registration (reported by redcap1) - Added local charset setting - Improved installation steps and design (thanks changi67) - Improved Recently Played to not filter songs to one display only - Fixed Subsonic transcoding support - Fixed Subsonic offline storage file path (reported by Tetram76) - Added optional top dock menu - Added html5 web audio api visualizer and equalizer - Added Play List to localplay mode - Fixed encoding issue in batch download - Added pagination to democratic playlists - Added an option to group albums discs to an unique album - Added alphabeticalByName and alphabeticalByArtist browse view in Subsonic API - Fixed album art on xspf generated playlist - Added stats, playlist and new authentication method to Ampache XML API - Added responsive tables to automatically hide optional information on small screen - Added song action buttons (user favorite, rating, ...) to the web player - Added sortable capability to the web player playlist - Added Growl notification/scrobbler plugin - Added artist slideshow photos plugin from Flickr - Added setting to change Ampache log file name - Added playlists to Quick and Advanced search - Added pls, asx and xspf playlist file format import - Fixed playlist import with song file absolute path (reported by ricksorensen) - Fixed playlist import with same song file names (reported by captainark) - Added shoutcast notification at specific time when playing a song with a waveform - Added Tag edit/delete capability - Added several search engine links - Added myPlex support on Plex API - Added cache on LastFM data - Added custom buttons play actions - Added artist pictures slideshow for current playing artist - Added Broadcast feature - Added Channel feature with Icecast compatibility - Replaced Muses Radio Player by jPlayer to keep one web player for all - Added missing artists in similar artists for Wanted feature - Added concerts information from LastFM - Added tabs on artist information - Added 'add to playlist' direct button on browse items - Added avatar on users and Gravatar/Libravatar plugins - Fixed playlist visibility (reported by stonie08) - Added OpenID authentication - Fixed m3u import to playlist on catalog creation (reported by jaydoes) - Improved missing/wanted albums with the capability to browse missing artists - Added share feature - Updated French translation - Added options per browse view (alphabetic, infinite scroll, number of items per page...) - Fixed several Subsonic players (SubHub, Jamstash...) - Added option to get beautiful stream url with url rewriting - Added check to use a new thread for scrobbling if available - Added confirmation option when closing the currently playing web player - Added auto-pause web player option between several browse tabs - Fixed similar artists list with disabled catalogs (reported by stebe) - Improved Shoutbox (css fix, real time notifications...) - Fixed iframe basket play action reload - Fixed wanted album auto-remove - Fixed MusicBrainz get album art from releases - Added Waveform feature on songs - Added AutoUpdate Ampache version check - Added auto-completion in global Ampache search - Added option to 'lock' header/sidebars UI - Fixed catalog export when 'All' selected - Fixed XBMC Local Play (reported by nakinigit) - Fixed artist search - Fixed Random Advanced (reported by stebe) - Changed song preview directplay icons - Added Headphones Automatic Music Downloader support as a 'Wanted Process' plugin - Updated PHPMailer to version 5.2.7 - Updated getID3 to version 1.9.7 - Added 'Song Preview' feature on missing albums tracks, with EchoNest api - Added 'Missing Albums' / 'Wanted List' feature - Upgraded to MusicBrainz api v2 - Replaced Snoopy project with Requests project - Added user-agent on recently played - Added option to show/hide recently played, time and user-agent per user - Updated French language - Added option for iframe or popup web player mode - Improved Song/Video web player with jPlayer, Radio player with Muse Radio Player - Added 'add media' to the currently played playlist on web player - Added dedicated 'Recently Played' page - Added enable/disable feature on catalogs - Fixed Config class conflict with PEAR - Improved recommended artists/songs loading using ajax - Added a new modern 'Reborn' theme - Improved Subsonic api backend support (json, ...) - Added Plex api backend support - Added artist art/summary when using LastFM api - Added 'all' link when browsing - Added option to enable/disable web player technology (flash / html5) - Fixed artist/song edition - Improved tag edition - Added song re-order on album / playlists - Replaced Prototype with jQuery - Added 'Favorite' feature on songs/albums/artists - Added 'Direct Play' feature to play songs without using a playlist - Added Lyrics plugins (ChartLyrics and LyricWiki) - Fixed ShoutBox enable/disable (reported by cipriant) - Added SoundCloud, Dropbox, Subsonic and Google Music catalog plugins - Improved Catalogs using plug-ins - Added browse paging to all information pages - Fixed LDAP authentication with password containing '&' (reported by bruth2) - Added directories to zip archives - Improved project code style and added Travis builds - Added albums default sort preference - Added number of times an artist/album/song was played - Fixed installation process without database creation - Removed administrative flags - changes from 3.6-Future - Fixed issue with long session IDs that affected OS X Mavericks and possibly other newer PHP installations (reported by yebo29) - Fixed some sort issues (patch by Afterster) - Fixed Fresh theme display on large screens (patch by Afterster) - Fixed bug that allowed guests to add radio stations - Added support for aacp transcoding - Improved storage efficiency for large browse results - Fixed unnecessary growth of the tmp_browse table from API usage (reported by Ondalf) - Removed external module 'validateEmail' - Updated PHPMailer to 5.2.6 - clean spec - added patch for playlist-error and generation tables - update apache.conf - update README-SUSE - fix many, many rpmlint errors and warnings ------------------------------------------------------------------- Fri Feb 14 22:14:18 UTC 2014 - poeml@cmdline.net - update to git head 3.6-alpha6+FUTURE - drop obsolete patch - merge configfile patch - update Apache config to 2.4 syntax (with 2.2 syntax commented) ------------------------------------------------------------------- Wed Jan 26 13:53:37 UTC 2011 - lang@b1-systems.de - make build on SLES 10 SP 2 (conditional fdupes) ------------------------------------------------------------------- Tue May 4 23:04:41 CEST 2010 - wr@rosenauer.org - recreated patch to apply cleanly - use %fdupes - gzip man page to please rpmlint ------------------------------------------------------------------- Mon Apr 12 14:21:39 UTC 2010 - poeml@cmdline.net - added ampache-3.5.4-PHP-segfault-session_start-bnc568667.patch as workaround for bnc#568667 - segfault in PHP session_start(). Make sure that session_set_save_handler() is run. It is supposed to be run from _auto_init(), but that's not called for some reason. ------------------------------------------------------------------- Tue Feb 23 14:00:23 UTC 2010 - poeml@cmdline.net - update to 3.5.4 This release fixes some bugs introduced in the last release as well as some significant improvements / fixes for the localplay methods. Catalog size calculation was also corrected for larger catalogs. It should now work for up to 4TB catalogs. New installations of 3.5.4 will include an additional two default ACLs for API use. ------------------------------------------------------------------- Wed Jan 6 19:13:07 UTC 2010 - poeml@cmdline.net - update to 3.5.3 - Correct potential security issues due to misuse of REQUEST for write operations rather then POST - see https://svn.ampache.org/branches/3.5/docs/CHANGELOG for full changelog between 3.4.4 and 3.5.3 - add requirement on php5-hash package ------------------------------------------------------------------- Wed Jan 14 02:05:08 CET 2009 - crrodriguez@suse.de - update to 3.4.4 * Fixed catalog_update.inc so that it correctly runs verify without errors * Fixed democratic play url so that it respects force http play * Make error messages during installation more helpful * Backported fix to update language based on that selected during installation * Fixed potential fread() of 0 bytes if you seek to the very end of a file ------------------------------------------------------------------- Sat Aug 30 09:52:04 CEST 2008 - lars@linux-schulserver.de - update to 3.4.3: + many bugfixes + added ability to specify new Genre when adding a Radio Station + added Ratings links to Browse Albums and Artists + added single genre and playlist XML methods + added /bin/fix_filenames.inc for correcting filenames with invalid chars + added iconv check + DB Update, fixes the playlist create issue with full strict on MySQL 5.x + ... (see /usr/share/doc/packages/ampache/CHANGELOG) - removed ampache-3.3.3.3-username_and_default_sessiontime.patch - updated ampache-confpath.patch - use fdupes - fix some rpmlint errors ------------------------------------------------------------------- Sat Jun 23 09:52:04 UTC 2007 - judas_iscariote@shorewall.net - fix build - use rpm macros ------------------------------------------------------------------- Tue Jun 12 11:41:15 CEST 2007 - lrupp@suse.de - update to 3.3.3.3 + Fixed Create A Catalog link if no catalog found + Fixed a problem with the installer created with db changes + Fixed a problem with recently played calc thinking there are 60 hours in a day, and 60 days in a week :S + Fixed a bug in the duplicate display where the song_id's for the play link were always the same + Fixed bad sort link on show albums + Fixed missing Offset Limit + Altered session.id making it VARCHAR(64) to account for longer session id's generated by PHP + Added LastFM album art searching + Fixed Show All on Song Title and Genre Browse + Tweaked Preferred Album Art filename to allow % in filename to indicate wildcards (a preg .*) + Fixed plugin preferences not being built correctly + Fixed the logic with MPD Global/Local with an ugly hack + Fixed the dump album art script for real this time + Added a missing icon for the add user + Fixed a potential infinite loop on the random album display + Fixed the /bin/ scripts so that you don't have to be in their dir to execute them - rename ampache-3.3.3.2.dif and ampache-3.3.3.2-confpath.dif to follow the openSUSE packaging guidelines ------------------------------------------------------------------- Tue May 22 15:02:49 CEST 2007 - lrupp@suse.de - also package README.SUSE file - added /var/log/ampache as directory ------------------------------------------------------------------- Sun May 20 16:20:42 CEST 2007 - lrupp@suse.de - update to 3.3.3.2 - cleanup buildroot ------------------------------------------------------------------- Wed Sep 13 11:46:23 CEST 2006 - poeml@suse.de - fix path to config file in test.php (which is run when configuration errors are encountered) ------------------------------------------------------------------- Tue Jan 31 18:20:33 CET 2006 - poeml@suse.de - don't set register_globals, it is no longer needed ------------------------------------------------------------------- Wed Jan 25 21:45:43 CET 2006 - mls@suse.de - converted neededforbuild to BuildRequires ------------------------------------------------------------------- Sat Jan 21 23:51:50 CET 2006 - cthiel@suse.de - update to 3.3.1.6 - dropped ampache-3.3.1.2-Snoopy-1.2.1.dif (included upstream) ------------------------------------------------------------------- Wed Jan 18 13:00:46 CET 2006 - poeml@suse.de - fix dependencies for php5 ------------------------------------------------------------------- Fri Dec 9 15:48:25 CET 2005 - poeml@suse.de - fixed security bug in snoopy php module (bundled HTTP client library), which allowed an authenticated user to remotely execute code on the server. [#136704], CVE-2005-3330 ------------------------------------------------------------------- Sat Jul 16 14:47:40 CEST 2005 - poeml@suse.de - update to 3.3.1.2 ------------------------------------------------------------------- Wed Sep 15 19:17:04 CEST 2004 - poeml@suse.de - now that php4-iconv exists on all architectures, we can require it. ------------------------------------------------------------------- Mon Sep 13 12:50:50 CEST 2004 - poeml@suse.de - remove requirement on php4-iconv again, because it does not exist on certain architectures (see php4.spec). (Wrapping in %ifnarch doesn't help because the package is noarch.) ------------------------------------------------------------------- Thu Sep 9 21:36:56 CEST 2004 - poeml@suse.de - add php4-session php4-mysql to Requires ------------------------------------------------------------------- Mon Sep 6 23:44:13 CEST 2004 - poeml@suse.de - update to 3.2.2 - the default name of the database for a new installation is now changed from "ampache3_1" to "ampache" - make the package require php4-iconv - in /etc/apache2/conf.d/ampache.conf, refer to the Timeout that is set globally from /etc/sysconfig/apache2 ------------------------------------------------------------------- Mon Aug 30 00:52:39 CEST 2004 - ro@suse.de - remove apache1 traces ------------------------------------------------------------------- Sat May 1 10:52:24 CEST 2004 - poeml@suse.de - update to 3.2-Alpha2.1 (fixing bug of 3.2-Alpha2 that reset user passwords) ------------------------------------------------------------------- Mon Apr 26 22:00:11 CEST 2004 - poeml@suse.de - update to 3.2-Alpha2 - upstream config file moved to config/ - cleaning of buildroot is done by %prep ------------------------------------------------------------------- Thu Mar 25 13:42:01 CET 2004 - poeml@suse.de - update to 3.2-Alpha1 - the patch to make $action global is included - wrap configuration into <IfModule sapi_apache2.c>, so apache won't refuse to start if mod_php4 is not loaded - bzip2 sources - drop the requires on the perl modules that are needed only for migration from old database versions. Instead, put it in the documentation - update the README and put the instructions for new installations at the top, so it is less confusing ------------------------------------------------------------------- Mon Mar 22 09:30:51 CET 2004 - poeml@suse.de - fix wrong directory permissions of docdir [#36431] ------------------------------------------------------------------- Mon Mar 8 17:58:50 CET 2004 - poeml@suse.de - update to cvs version - reenable register_globals for now, since not all features work without it ------------------------------------------------------------------- Wed Feb 4 12:48:19 CET 2004 - hmacht@suse.de - added option # norootforbuild in specfile ------------------------------------------------------------------- Tue Jan 6 00:34:13 CET 2004 - poeml@suse.de - update to 3.1.02 - drop ampache-3.0-sorting.dif (included upstream) - drop ampache-3.0-session-expire.dif, obsolete - adjust to new file layout - add Requires: perl-DBI perl-Msql-Mysql-modules perl-Data-ShowTable for the migration scripts - rename README.SUSE file and add notes about migration ------------------------------------------------------------------- Thu Nov 20 20:20:35 CET 2003 - poeml@suse.de - add patch that prevents certain login failures due to cookies from the year 1935 - set a default character set - add a hint on configuration without a virtual host ------------------------------------------------------------------- Fri Sep 19 17:38:38 CEST 2003 - poeml@suse.de - apache configuration: - fix trailing slash in Alias - add Directory configuration (needed for apache2, where not everything is allowed by default) [#29729] - install the configuration file also for apache2 - add Requires: http_daemon mod_php ------------------------------------------------------------------- Thu Aug 14 22:21:07 CEST 2003 - poeml@suse.de - add activation metadata to sysconfig template [#28815] ------------------------------------------------------------------- Thu Jul 31 02:01:45 CEST 2003 - poeml@suse.de - fix permissions of /etc/ampache.conf.inc to be readable by the webserver but not writable, [#21782] ------------------------------------------------------------------- Fri May 16 09:57:17 CEST 2003 - poeml@suse.de - add patch to improve sorting - don't package CVS directories - remove executable flag from most files ------------------------------------------------------------------- Tue May 13 13:07:56 CEST 2003 - poeml@suse.de - use %defattr instead of chmod&chown - modules/config.php doesn't need to be protected ------------------------------------------------------------------- Thu Feb 27 14:16:56 CET 2003 - poeml@suse.de - add sysconfig metadata [#22591] - verify the instructions in README.SuSE and improve them - improve the apache configuration, and add explaining comments ------------------------------------------------------------------- Thu Aug 1 21:32:51 CEST 2002 - poeml@suse.de - fix apache ServerRoot ------------------------------------------------------------------- Thu Aug 1 04:08:32 CEST 2002 - poeml@suse.de - use PreReq ------------------------------------------------------------------- Wed Jul 3 22:23:24 CEST 2002 - poeml@suse.de - new package (version v3.0)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor