Revisions of ampache

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.
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 864229 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 83)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 855364 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 82)
- Use apache-rpm-macros.
- Put apache configuration files in separate subpackage.
- Put language files in separate subpackage.
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 853047 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 81)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 845601 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 80)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 840120 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 79)
- Add ampache-cron.service and amapache-cron.timer.
- Run spec-cleaner.
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 839843 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 78)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 831397 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 77)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 828707 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 76)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 824715 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 75)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 773465 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 74)
- 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
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 761838 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 73)
Update to 4.1.0
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 752997 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 72)
Fix something
Eric Schirra's avatar Eric Schirra (ecsos) accepted request 752827 from Eric Schirra's avatar Eric Schirra (ecsos) (revision 71)
Update to 4.0.4
Displaying revisions 41 - 60 of 130
openSUSE Build Service is sponsored by