Revisions of ampache

Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1171747 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 123)
- Update to 6.4.0
  This update has became quite large and work to make sure this
  branch stays stable for the long term will continue.
  * Check your config file encode_args
    First up there is some manual work for you if you've enabled for transcoding.
    Double check your config and remove the K from %BITRATE%K.
    Transcoding commands are sent in bytes so adding a K to the command multiplies it by 1000!
  * Added
    - Translations 2024-05
    - rtrim slashes on some config variables in case you ignore the warning
    + Database 600070
      - Allow signed user column for broadcast, player_control,
        session_stream, share, user_activity, user_follower and user_vote tables
      - Revert unique constraint playlist_track_UN on playlist_data table
      - Extend generator column on podcast table to 128 characters
      - Convert object_type to an enum on playlist_data table
    + Config version 71
      - Fix up bitrate encode_args
      - Add api_debug_handler run api commands without exception handling (At your own risk!)
      - Wrap default string config options in quotes
      - Add a note about using a secure cookie prefix
  * Changed
    - Stream Random action default fallback to song
    - Allow using tmp_dir_path for Dropbox catalog
    + Subsonic
      - Song file path is now always the original full file path
      - This was a relative path that was changed with transcoding meaning the path never existed.
    + Random search (random.php?action=advanced) artist and album
      actions have been changed to use their object rules
      - The returned results are still song objects but the searches are done using their rule set
  * Fixed
    - Always get the current file size when downloading the raw file
    - AlbumDisk errors on unknown items
    - Album names being overwritten with artist names when missing tags
    - Regenerate playlist track numbers correctly for the full list
    - Also check the bitrate when transcoding instead of just formats
    - Don't use cached files if the bitrate doesn't match transcode_rate
    - Default config encode_args are putting bitrates into millions
    - URL links generated with & that were causing errors
    - Song license display
    - Check Stream_Playlist::media_to_url() to ensure valid media
    - File naming fixes to stop matching year on 1080p
    - ObjectTypeToClassNameMapper missing tvshow class
    - Allow composer stan to run on Windows
    - Filter Random and Trending sections for catalog filters on dashboards
    - MusicBrainz lookups on Wanted files
    - Don't try to get playlist items when it's not a valid list
    - Send a 416 HTTP response when trying to stream past the end of a song
    - Stream_playlist columns could be inconsistent with different media types in a list
    - Compare Ampache version string is actually higher using version_compare()
      instead a not equals comparison
    + webplayer
      - Send the Song time to the player to stop all these wild numbers
    + Subsonic
      - Sending a User as an array instead of Users
  # API 6.4.0
    There is a new config option called api_debug_handler. This will instruct the server to run api commands without exception handling. Very useful for API devs and not recommended for anyone else.
  * Added
    + API6
      - Downgrade any API7 calls to API6 wiki
      - New Method: player (Inform the server about the state of your client player)
        - Returns now_playing state on completion
      - download: add bitrate parameter
      - playlists: add include parameter (note this can be massive and slow when searches are included)
  * Changed
    + API6
      - Do not translate API errorMessage strings ampache.org
  * Fixed
    + ALL
      - Download method format parameter didn't have a fallback value
    + API4
      - playlist: error check for missing/deleted playlists
      - playlist_songs: error check for missing/deleted playlists
    + API6
      - Playlists objects would not return duplicates items if allowed
      - has_art property missing from songs and albums
      - playlist_add: couldn't add a single item
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1160957 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 122)
- Update to 6.3.1
  * Added
    - Added an option to clean a folder path on the Show Catalogs page
  * Changed
    - Show full playlist names on the personal favorite plugins (missing username)
    - Block direct stream for shared file when share is disabled
  * Removed
    - Config options write_id3 and write_id3_art don't do anything so remove them
  * Fixed
    - Add missing album name through browser Media Session API
    - Fixed PHP caching false values when expecint an int
    - Typo for disabled song display
    - Show the count of returned art in the log
    - Don't show private playlists on browse or direct link if you don't have access
    - Refresh Democratic playlist on vote removal, and clear the votes on clear all
    - Preference text box possible XSS
    + Search
      - Added some documented aliases for rules that were missed
      - Fixed NOT SOUNDS LIKE responses
      - Don't scrub search input in the SQL (parameters are sanitized)
      - Rule input XSS in JS
    + Subsonic
      - Array not set on some items in JSON responses
  * API 6.3.1
    + Added
      - API6
        - New Method: now_playing (Get what is currently being played by all users.)
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1157654 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 121)
- Update to 6.3.0
  * Added
    - Translations 2024-03
    - Lots more static typing on missing function returns
    - Dynamic properties on the Captcha classes
    - Add opml import (and export) for podcasts
    + Database 600060
      - Update Last.FM plugin preferences that could be incorrect
      - Spell category and subcategory correctly
      - Add unique constraint playlist_track_UN on playlist_data table
      - Remove Flattr plugin (Service has been discontinued)
      - Convert object_type to an enum on image, rating, user_flag, user_activity, object_count, share, cache_object_count tables
  * Changed
    - Split database updates into small migration classes
    - Change usage of State in podcast_episode pages for Status
    - Song additional metadata classes have been updated
    - When searching art limit results per-plugin instead of total results
    - Extend valid Share objects
    - Update composer scripts and checks
    - Don't send a cached file that does not match a requested target format
  * Removed
    - Flattr service has shut down, so remove the plugin
    - php cs-sniffer from the project root and scrutinizer
  * Fixed
    - Catalog Filters could not be edited after creating
    - Catalogs were not cleaned up from the catalog_filter_group_map table
    - Wanted errors on an empty global user
    - Public users can not cache playlist browses
    - Last.FM plugin errors with preferences and linking accounts
    - Fix up localplay commands for Kodi/XBMC clients
    - Playlists were sorting by object type
    - User::get_user_data was not putting the default return in correctly
    - Unable to use bin/cli export:playlist undefined method
    - Playlist had some issues adding songs
    - Localplay and jukebox mode improvements (VLC and XBMC)
    - Don't search for wanted albums on an invalid artist
    - Browse filtering for album artist and song artist in certain situations
    - Don't send an empty query to the database
    - Remove stray span and use valid lang value on installer pages
    - Updating array preferences
    - Showing favicon
    - Publication date of RSS feeds
    + Search
      - Rule inputs were being json encoded twice
      - Genre search joining catalogs when they're not needed
    + Static typing errors
      - Updating album data when original_year is missing
      - Template show_recently_played with a non-database song
      - Use isNew() to check for valid objects to avoid type errors
      - Check for valid media before zip operations
    + Subsonic
      - Data for starred results was not always an array
      - Send correct art respecting show_song_art again
  * API 6.3.0
    + Added
      - API6
        - New Method: search_group (return multiple object types from a single set of search rules)
        - New Method: search (alias for advanced_search)
        - New Method: user_playlists (return user playlists and does not include smartlists)
        - New Method: user_smartlists (return user smartlists (searches) and does not include playlists)
        - New Method: playlist_add (add songs to a playlist, allowing different song parent types)
        - New Method: index (replaces get_indexes with a simpler list of id's. children can be included)
        - Add has_art parameter to any object with an art url
        - Add avatar url to user objects
    + Changed
      - API6
        - playlist_add_song: depreciated and will be removed in API7 (Use playlist_add)
        - share_create: add more valid types ('playlist', 'podcast', 'podcast_episode', 'video')
        - user: make username optional
    + Fixed
      - ALL
        - Userflag wasn't sending bool when cached in the database
        - Admin would always get everyones playlists when filtering
        - Stream methods would not send the bitrate correctly
      - API4
        - playlists method not respecting like for smartlists
      - API5
        - playlists method not respecting like for smartlists
      - API6
        - playlists method not respecting like for smartlists
        - playlist_edit method will decode html , separators
  * Pull requests this release
    - Split the Update.php class into small migration classes (#3767)
    - Correct some type issues (#3770)
    - subsonic: do not send a different cover id for each song of the same album (#3768)
    - Use "Status" string rather than "State" which can be confused by Country (#3769)
    - Add opml import for podcasts #3737 (#3772)
    - Correct/Update some type hints related to recent stan errors (#3773)
    - Remove some unused code (#3774)
    - Fix #3778 (#3780)
    - Remove Flattr support (#3782)
    - Correct song metadata creation (#3777)
    - XBMC localplay improvements (#3783)
    - Correct doubled array index (#3784)
    - Solve an annoying api related type issue (#3785)
    - Remove unused imports (#3786)
    - Remove MetadataFieldRepository::findAll (#3787)
    - Correct some type issues due to the recent phpstan update (#3788)
    - Remove usages of Podcast::update() (#3789)
    - Try to bring back the scrutinizer code coverage (#3790)
    - Set scrutinizer memory-limit to indefinite (#3791)
    - Localplay and jukebox mode improvements ( Vlc and Xbmc ) (#3794)
    - Extract playlist import from Catalog_local (#3795)
    - Re-arrange the tag-count retrieval query (#3797)
    - Add ShareRepository and begin migrating some static methods (#3796)
    - Move podcast episode download limit retrieval into PodcastSyncer (#3799)
    - Perform some changes related to qa (#3798)
    - Remove php cs-sniffer from scrutinizer, too (#3800)
    - Vlc localplay improvements (#3802)
    - Rework the LicenseRepository (#3801)
    - Dont try to search for recommendations for invalid artists (#3805)
    - Update rector to 0.19 (#3803)
    - Replace License loading by repo-method (#3806)
    - Allow the user api method to return the current user info (#3807)
    - Replace the metadata-repositories (#3804)
    - Split up podcast-related repositories (#3808)
    - Replace all remaining usages of Core::verify_form by RequestParser (#3810)
    - Start reworking the PrivateMessageRepository (#3811)
    - Refactor Wanted- and LiveStreamRepository (#3809)
    - scrub_in all the search inputs (#3825)
    - Upgrade rector to its first major version (#3818)
    - Cleanup/Optimize some qa-related settings (#3821)
    - Correct a bunch of type issues (#3822)
    - Start replacing podcast-episode properties with getters (#3823)
    - Define defaults for democratic playlist properties (#3826)
    - Start the implementation of a BaseRepository and a generic ModelInterface (#3819)
    - Add tests for BookmarkRepository (#3820)
    - Add ImageRepository (#3824)
    - Prepare the WantedRepository to extend BaseRepository (#3828)
    - Extract missing-artist retrieval from Wanted (#3829)
    - Align Catalog properties types to the database columns (#3832)
    - don't query an empty query (#3835)
    - Extract cleanup methods from Art-class (#3827)
    - Add tests for LabelRepository (#3831)
    - Really show default favicon by default (#3842)
    - Replace the f_file and f_full_title properties by a method (#3836)
    - Extract more wanted-logic into separate classes (#3837)
    - Move database-related methods from Share into ShareRepo (#3838)
    - Extract the creation of new share-items (#3840)
    - Move some more methods from Artist/Album into their repos (#3843)
    - Remove stray span and use valid lang value on installer pages (#3849)
    - Fix the publication date of RSS feeds. (#3861)
    - Remove genre and stream from useractivity deletion (#3866)
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1150802 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 120)
- Adjustments patch macro for rpm 4.20.
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1137709 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 119)
- Update to 6.2.1
  * Added
    - Translations 2024-01
    - Add podcast opml export to the podcasts page
    - Advertise WebPlayer song info via MediaSession API / MPRIS
  * Changed
    - Replace all remaining occurrences of FILTER_SANITIZE_STRING
    - Enable user_no_email_confirm to disable email requirements for user registration. (When mail_enable is false registration was blocked)
    - Verify catalog by song instead of album
    - Catalog verify will now use the config option catalog_verify_by_time and only check songs not updated since the last full verify
    - Don't update counts and collect garbage after updating individual songs
    - PlayAction stream_select will now block until there is data
  * Fixed
    - Skipping non-songs would create a runtime error
    - db update_600005 shouldn't use $album->get_fullname which changed in update_600027
    - Upload page showing non-uploads
    - Showing extra title for podcasts
    - Captcha image generation
    - Registration check logic
    - Search error loading empty rules
    - Add from path on the catalog admin page
    - Reading tags on bad files would load the bad tags
    - Stop trying to read bad files before loading tags
    - Catalog update dates were set when the process was finished which negates update_time checks
    - Song update_time wasn't allowed to update
    - Check update_time in Catalog::count_table sql so you only verify what you need to
    - Transcode can't use range in headers
    - Empty result error on Stats::get_object_count
    + Subsonic
      - Search2 and Search3 ignored musicFolderId
  * API 6.2.1
    - NO CHANGE
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1134615 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 118)
- Update to 6.2.0
  * Added
    - Translations 2023-12
    - Allow translations for plugin names
    - GitHub action to lint master and develop branches for php7.4
    - Lots of code test coverage
    - Allow sharing podcast_episode objects
    - Add refresh button to the rightbar and some of the ajax index modules
    - Hide the filterbox when your browse can't use it
    + Database 600049
      - Set correct preference type for use_play2
      - Add user preference jp_volume, Default webplayer volume
      - Add system preference perpetual_api_session, endless api sessions. (AT YOUR OWN RISK)
      - Add column last_update and date to search table
      - Add user preference home_recently_played_all, Show everything in the now playing box
      - Add user preference show_wrapped, Access your personal "Spotify Wrapped" from your user page
      - Add date column to rating table
      - Update link for FMPL license
  * Changed
    - Upgrade phpunit to version 10
    - Updated codestyle rules to PSR12
    - Update php_codesniffer to 3.8
    - Static typing to all database fields
    - Update composer for ampache/ampacheapi-php dev-master
    - Allow range header on transcode streams
    - 404 error on invalid media streams
    - Use curl instead of fopen for podcast episode downloads
    - Track the date of ratings in user_activity table
    - Add a confirmation to the Clear Stats button on the catalog page
  * Removed
    - Duplicate show_playlist UI actions
  * Fixed
    - Empty global error on index page
    - Check the file/url before importing with import_playlist
    - Large docstring cleanup: remove unneeded tags and trim names
    - Correct ip history rendering in case of a invalid user
    - Make sure something is also unplayed when total_count is 0
    - Thousands of phpstan code issues
    - Can't uninstall catalog modules
    - Database updates tested from ampache-3.9.0 -> develop
    - Missing AND in play_count update SQL
    - Undefined variable and query spacing in SQL for get_uploads
    - Share options not checked correctly when creating a share
    - Dynamic properties on Tmp_Playlist and Captcha
    - Lots of checks for valid and invalid objects
    - Do not fail on plugin reinstall (just install missing preferences)
    - Failures on nullable valuse with static typing
    - Errors on user_data checks that didn't exist yet
    - Use your default album sort on browses and set it correctly
    - Filterbox bugs with playlists and labels
    - Update from tags didn't respect your tag order
    - Remote catalogs couldn't import song data correctly
    - Podcast episode downloads would be blocked from some redirects
    - get_recently_played SQL was really slow
    + Bitly plugin updated to v4 API
      - Requires a Bitly account
      - Generate a token at [(https://app.bitly.com/settings/api)]
      - Get your group_guid from https://app.bitly.com/{GROUP_GUID} 
        or Account Settings > Groups (the GUID is in the URL)
    - Add missing properties on public users. (-1)
    + Subsonic
      - Url protocol checks not compared correctly for setServer
  * API 6.2.0
    * Added
      - API: Allow non-expiring user sessions when using a header token
      - Allow endless api sessions. (You should start using http header auth to hide these)
    * Changed
      - Set default API version to 6 (was 5)
      - Allow raising and lowering response version on ping to any version
      + API6
        - Return error on handshake version failure
    * Fixed
      - ALL
        - UrlToSong couldn't handle encoded urls
      - API3
        - Video data would get an incorrect stream url
      - API5
        - bookmark_create: type is mandatory
      - API6
        - bookmark_create: type is mandatory
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1123219 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 117)
- Update to 6.1.0
  * Added
    - Translations 2023-10
    - Read more tag frames for disksubtitle
    + Database 600042
      - Index label column on the label_asso table
      - Add user preference bookmark_latest, Only keep the latest media bookmark
    + Config version 69
      - Add user_create_streamtoken (Add a streamtoken to the account when a new user is created)
    + Browse
      - Sort artist by time
      - Sort album by disk, time, version
      - Sort podcast, podcast_episode, playlist and search by rating
      - Sort song by album_disk
      - Added album_disk sorting
  * Changed
    - Restore album sort links again when split by group
    - Default visibility for new playlists is public
    - Garbage collect empty labels. (Keep user-generated labels)
    + CLI
      - -t|--garbage don't collect garbage for each catalog, just do it at the end
    + Subsonic
      - Updated Apache .htaccess.dist to support Subsonic clients that don't use *.view for calls
      - createplaylist: Default visibility for new lists is public
  * Fixed
    - Header auth with a Bearer token would always fail
    - Song rows were showing album links instead of album_disk
    - Null artist time's not updating
    - Rating album_disk objects would not refresh the value
    - Creating a newalbum_disk inserting the song id instead of the album id
    - SQL generation for browse sorting with comma and space in the text
    - album_disk disk_count wasn't updated
    - AutoUpdate notifications
    - Fix a lot of code Runtime Errors
    - Handle GatherSpotify exceptions and empty results
    - Catalog was not garbage collecting the bookmarks table
    + Browse
      - Massive code quality updates to the browse/query class
      - Don't overwrite a browse box title if set
      - Sorting and filtering on works correctly
      - Genre browse page HTML div name using bad names
      - album_disk was sorting album
    + Search
      - Respect limits for subsearches again
      - search_user_id fallback for searches without a user
    + Subsonic
      - Runtime Errors when you have not done things before
  * API 6.1.0
    Two new methods have been added
    The bookmark methods have had a bit of a rework as they were not very useful
    Finally the issues with setting your auth token in the http header have been fixed
    * Added
      * API6
        - New Method: bookmark (Get single bookmark by bookmark_id)
        - New Method: lost_password (Allows a non-admin user to reset their password)
        - bookmark_create: Add include parameter (if true include the object in the bookmark)
        - bookmark_edit: Add include parameter (if true include the object in the bookmark)
        + get_bookmark
          - Add include parameter (if true include the object in the bookmark)
          - Add all parameter (if true include every bookmark for the object)
        + bookmarks
          - Add parameter client to filter by specific groups of bookmarks
          - Add include parameter (if true include the object in the bookmark)
    * Changed
      * API5
        - bookmark_edit: show error on missing bookmark instead of empty object
        - bookmark_delete: show error on missing bookmark instead of empty object
      * API6
        + get_bookmark
          - add bookmark as a valid object_type
          - Don't return single JSON bookmarks as an object
        - bookmark_create: Remove client parameter default value ('AmpacheAPI')
        + bookmark_edit
          - Remove client parameter default value ('AmpacheAPI')
          - show error on missing bookmark instead of empty object
          - add bookmark as a valid object_type
          - Don't return single JSON bookmarks as an object
        + bookmark_delete
          - Remove client parameter default value ('AmpacheAPI')
          - show error on missing bookmark instead of empty object
          - add bookmark as a valid object_type
    * Fixed
      * ALL
        - Some JSON methods with empty results would not show total_count in results
        - handshake: auth failure with header token
        - playlist_generate: Don't error when optional mode and format are not set
        - advanced_search: runtime error on empty data type
      * API4
        - Fix lots of Runtime Error's on missing optional data
      * API5
        - Fix lots of Runtime Error's on missing optional data
        - video: error type was song instead of filter
        - genre_artists, genre_albums, genre_songs: Parameter filter runtime errors
        - download: random search/playlist didn't use the id parameter
        - stream: random search/playlist didn't use the id parameter
        + bookmark_edit
          - Missing user id in data array
          - Not able to edit all bookmarks
      * API6
        - Fix lots of Runtime Error's on missing optional data
        - video: error type was song instead of filter
        - catalog_folder didn't get the group of items correctly
        - genre_artists, genre_albums, genre_songs: Parameter filter runtime errors
        - download: random search/playlist didn't use the id parameter
        - stream: random search/playlist didn't use the id parameter
        + bookmark_edit
          - Missing user id in data array
          - Not able to edit all bookmarks
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1114401 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 116)
- Update to 6.0.3
  * Added
    - Translations 2023-09
    - Added refresh button on smartlists so you don't have to overwrite the rules each time
    * CLI
      - New cli command bin/cli run:addCatalog (Create a local catalog)
    * Database 600040
      - Add custom_timezone as a user preference
      - Add disksubtitle to song_data and album_disk table
    * Config version 68
      - Add date_timezone (Allow custom timezone for date formatting)
  * Changed
    - Lyrist plugin regex be a bit looser with user input and regex /api/ on the end of api_host
    - Don't try and load preferences page without a user to load
    - Check for downsample_remote conditions on song play_url generation
    - Don't downsample songs during a stream (play_url should catch this before you stream)
    - Sort album browse pages based on your album_sort preference
  * Fixed
    - Error checking user temp playlist could give you a blank index page
    - Runtime errors with missing data
    - Missing translations for language list
    - Select uploaded artists using the artist instead of song
    - Missing column in Search::get_searches SQL
    - Updating artist_map too much
    - Last.fm lookup url was missing an & for albums
    - Don't try to load an album_disk that doesn't have an album
    - Restore sorting on album lists and browses that aren't grouped by release_type
    - Catch Spotify runtime error on retry as well as initial attempt
  * API 6.0.3
    * Added
      - API5::playlist_songs: Add random to get random objects filtered by limit
    * Fixed
      * ALL
        - handshake: runtime errors with bad username
        - handshake: Don't error on empty data counts
        - ping: Don't error on empty data counts
      * Api6
        - list: searches were missing from playlists
        - browse: XML returned a list instead of a browse object
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1108340 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 115)
- Update to 6.0.2
  * Added
    * Plugins
      - Lyrist Lyrics (https://github.com/asrvd/lyrist)
  * Changed
    - Don't require catalog access to upload songs.
      (Ignore catalog_filter for upload actions)
  * Fixed
    - Correct stream get_base_url
    - Database 600037 missing interactor check for the web updater
    - Avoid Orphan album artist when song has empty albumartist tag
    - Various runtime errors with missing data during session timeouts
    - Admin page 'browse uploads' didn't need to be so strict
    - Show album edit button on uploads correctly
    - get_uploads_sql for artists could miss mapped artists
    - Only show user playlists on user page (public only if you aren't an admin)
    - Don't show admin user page (-1)
    * Search
      - ArtistSearch: Joins for songrating and albumrating were missing
  * API 6.0.2
    - NO CHANGE
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1108017 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 114)
- Update to 6.0.1
  * Fixed
    - Check for duplicate ports in stream URL's
    - Songs and podcast_episodes with ABR being overwritten with VBR
  * API 6.0.1
    * Changed
      * API6 XML
        - get_similar: return song objects to match json
    * Fixed
      * API6
        - user_preference: returned array instead of object
        - system_preference: returned array instead of object
        - preference_create: returned array instead of object
        - preference_edit: returned array instead of object
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1106235 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 113)
- Update to 6.0.0
  There are too many changes to list here.
  Please see her:
  https://github.com/ampache/ampache/releases/tag/6.0.0
- Copy composer_old.json to composer.json in get-source.sh,
  because composer.json only supports php 8.2
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1099027 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 112)
- Update to 5.6.2
  * Added
    - Fork https://github.com/scaron/prettyphoto and update for jquery3
    + CLI
      - New cli command bin/cli show:version (Print the Ampache version number)
  * Removed
    - Replace scaron/prettyphoto with fork to allow updates
  * Fixed
    - Checking for git updates without a forced branch
    - Update webplayer to fix a longstanding Google Chrome issue with playing flac
    - Being unable to view all your catalogs in the filter box
    - Prettyphoto would rewrite your link when clicking on pictures
    - Don't show an empty filter box if there are no valid filters
    - Some dynamic class properties
    - Beets catalog actions
    - Remote catalog and Subsonic catalog streaming
  * API 5.6.2
    + Fixed
    - ALL
      - Require and set a valid version for api_force_version
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1087793 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 111)
- Update to 5.6.1
  * Added
    - Simplified transcode settings checks
  * Changed
    - Clean up the PlayAction class to make it a bit less complicated
    - Encode URL's with a + for segmented play urls
  * Removed
    - Soundcloud catalogs
  * Fixed
    - mptre/php-soundcloud has been removed from github
    - Podcast Episode download link
    - Filtering passwords in some places before hashing
    - Catalog caches delete and add immediately when changed
  * API 5.6.1
    - NO CHANGE
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1075056 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 110)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1066233 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 109)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1065514 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 108)
- Let php8 use also.
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1043319 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 107)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1037551 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 106)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1037118 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 105)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1029660 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 104)
- 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
Displaying revisions 1 - 20 of 123
openSUSE Build Service is sponsored by