Revisions of ampache

Eric Schirra's avatar Eric Schirra (ecsos) accepted request 1004048 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 103)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 999021 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 102)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 998807 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 101)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 991942 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 100)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 978211 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 99)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 975747 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 98)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 973969 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 97)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 972366 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 96)
- 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.
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 953739 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 95)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 941023 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 94)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 931027 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 93)
- Update to 5.1.1
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 927302 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 92)
Missing jplayer or defect jplayer in last commit.
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 927294 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 91)
- 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 &amp;'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.
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 921013 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 90)
Fix little package error.
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 920999 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 89)
- 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.
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 897661 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 88)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 890620 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 87)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 881459 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 86)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 876411 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 85)
- 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"
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 869767 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 84)
- 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.
Displaying revisions 21 - 40 of 123
openSUSE Build Service is sponsored by