You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ombi/README.md

894 lines
34 KiB

4 years ago
7 years ago
![](http://i.imgur.com/qQsN78U.png)
7 years ago
____
[![Discord](https://img.shields.io/discord/270828201473736705.svg)](https://discord.gg/Sa7wNWb)
8 years ago
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/ombi.svg)](https://hub.docker.com/r/linuxserver/ombi/)
4 years ago
[![Github All Releases](https://img.shields.io/github/downloads/tidusjar/Ombi/total.svg)](https://github.com/ombi-app/Ombi)
[![firsttimersonly](http://img.shields.io/badge/first--timers--only-friendly-blue.svg)](http://www.firsttimersonly.com/)
7 years ago
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/ombi/localized.svg)](https://crowdin.com/project/ombi)
Dev to master (#5002) * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * chore(release): :rocket: v4.40.0 [skip ci] * feat(emby): Show end-user external IP address to Emby when logging in as an Emby user (#4949) Fixes #4947 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Fix various styling issues (#4935) * chore(release): :rocket: v4.41.0 [skip ci] * chore(release): :rocket: v4.41.1 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4926) * feat(emby): Show watched status for TV requests * feat(emby): Show watched status for TV requests * Consider only requested episodes in played progress * Clarify tv watched progress tooltip * Fix unrespected code guidelines * chore(release): :rocket: v4.42.0 [skip ci] * 🌐 Translations Update (#4952) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore: :fire: Remove unused dependency (#4959) [skip ci] * chore: :fire: Remove unused dependency * chore: :fire: Remove Angular Localize * Remove unused dep (#4960) [skip ci] * chore: :fire: Remove unused dependency * chore: :fire: Remove Angular Localize * deps update * fix: upgrade @microsoft/signalr from 6.0.11 to 6.0.16 (#4964) [skip ci] Snyk has created this PR to upgrade @microsoft/signalr from 6.0.11 to 6.0.16. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade primeng from 15.0.0-rc.1 to 15.4.1 (#4962) [skip ci] Snyk has created this PR to upgrade primeng from 15.0.0-rc.1 to 15.4.1. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: src/Ombi.Notifications/Ombi.Notifications.csproj to reduce vulnerabilities (#4969) [skip ci] The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-DOTNET-SYSTEMSECURITYCRYPTOGRAPHYPKCS-5708426 Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade @fortawesome/fontawesome-free from 6.1.2 to 6.4.0 (#4965) [skip ci] Snyk has created this PR to upgrade @fortawesome/fontawesome-free from 6.1.2 to 6.4.0. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade multiple dependencies with Snyk (#4963) [skip ci] Snyk has created this PR to upgrade: - @angular/animations from 15.2.4 to 15.2.9. See this package in npm: - @angular/common from 15.2.4 to 15.2.9. See this package in npm: - @angular/compiler from 15.2.4 to 15.2.9. See this package in npm: - @angular/core from 15.2.4 to 15.2.9. See this package in npm: - @angular/forms from 15.2.4 to 15.2.9. See this package in npm: - @angular/platform-browser from 15.2.4 to 15.2.9. See this package in npm: - @angular/platform-browser-dynamic from 15.2.4 to 15.2.9. See this package in npm: - @angular/platform-server from 15.2.4 to 15.2.9. See this package in npm: - @angular/router from 15.2.4 to 15.2.9. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * small improvements to fix flaky tests (#4970) [skip ci] * fix: More automation tests mainly around the Plex Settings page (#4821) * updates * test coverage on the plex settings page * features * Update cypress.yml * Update cypress.yml * Update cypress.yml * Update cypress.config.ts * fixes * stuff * put it back * a * always kill docker * Run the wizard as part of the feature files * fix? * slow the tests down * subby * Update user-preferences-profile.spec.ts * Update user-preferences-profile.spec.ts * fix: upgrade cypress-real-events from 1.7.4 to 1.8.1 (#4968) [skip ci] Snyk has created this PR to upgrade cypress-real-events from 1.7.4 to 1.8.1. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/750c1ef4-1459-4f30-a181-009a5f1ea1dc?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * chore(release): :rocket: v4.42.1 [skip ci] * Remove unused dependancy [skip ci] * chore: updates (#4971) [skip ci] * docs: Update README.md (#4972) [skip ci] * fix: Remove Angular TSLint (#4973) * Update tslint.json * Update package.json [skip ci] * fix: upgrade zone.js from 0.11.8 to 0.13.0 (#4975) [skip ci] Snyk has created this PR to upgrade zone.js from 0.11.8 to 0.13.0. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade jquery from 3.6.1 to 3.7.0 (#4974) [skip ci] Snyk has created this PR to upgrade jquery from 3.6.1 to 3.7.0. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade multiple dependencies with Snyk (#4961) Snyk has created this PR to upgrade: - @ngxs/devtools-plugin from 3.7.3 to 3.8.1. See this package in npm: - @ngxs/store from 3.7.3 to 3.8.1. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * Small fixes (#4978) * fix(tv-requests): 🐛 Fixed a small bug where an exception can get thrown when attempting to view TV Requests * fix(user-importer): 🐛 Fixed an issue where the cleanup wouldn't delete users #4812 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.42.2 [skip ci] * Bug improvements [skip ci] (#4979) * Update config.yml * stuff * Update bug_report.yml * fix(user-importer): Do not delete the Plex Admin as part of the user Importer cleanup #4870 (#4981) * chore(release): :rocket: v4.42.3 [skip ci] * feat: Add Auto Approve 4K role (#4982) (#4983) Legacy "Auto Approve" role now only applies to non-4K requests Fixes #4957 Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> * chore(release): :rocket: v4.43.0 [skip ci] * fix(user-importer): don't delete admins in the cleanup * chore(release): :rocket: v4.43.1 [skip ci] * fix: Remove old trending source (#4987) [skip ci] * fix(plex-api): Switch over to the new API to avoid deprecation & save… (#4986) * fix(plex-api): Switch over to the new API to avoid deprecation & save the plex settings when modifying the servers * Delete Ombi.sln * chore(release): :rocket: v4.43.2 [skip ci] * fix: switch back to the old plex friends API #4989 * chore(release): :rocket: v4.43.3 [skip ci] * fix(user-importer): Fixed not importing all correct users #4989 * test: Add a unit test to cover the Unmanaged Home user scenario [skip ci] * chore(release): :rocket: v4.43.4 [skip ci] * fix: upgrade cypress-real-events from 1.8.1 to 1.9.1 (#5000) [skip ci] Snyk has created this PR to upgrade cypress-real-events from 1.8.1 to 1.9.1. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/750c1ef4-1459-4f30-a181-009a5f1ea1dc?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade @microsoft/signalr from 6.0.18 to 6.0.20 (#4999) [skip ci] Snyk has created this PR to upgrade @microsoft/signalr from 6.0.18 to 6.0.20. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: snyk-bot <snyk-bot@snyk.io>
2 years ago
[![Automation Tests](https://github.com/Ombi-app/Ombi/actions/workflows/automation-tests.yml/badge.svg)](https://github.com/Ombi-app/Ombi/actions/workflows/automation-tests.yml)
8 years ago
[![Patreon](https://img.shields.io/badge/patreon-donate-yellow.svg)](https://patreon.com/tidusjar/Ombi)
[![Paypal](https://img.shields.io/badge/paypal-donate-yellow.svg)](https://paypal.me/PlexRequestsNet)
4 years ago
# Welcome
Ombi is your friendly media request tool, automatically syncs with your media servers!
4 years ago
Don't worry, it's grandma friendly, and more importantly; has wife approval certification 😂
| Service | Stable | Develop
|----------|:---------------------------:|:----------------------------:|
| Build Status | [![CI Build](https://github.com/Ombi-app/Ombi/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/Ombi-app/Ombi/actions/workflows/build.yml) | [![CI Build](https://github.com/Ombi-app/Ombi/actions/workflows/build.yml/badge.svg?branch=develop)](https://github.com/Ombi-app/Ombi/actions/workflows/build.yml) | [![Build Status](https://dev.azure.com/tidusjar/Ombi/_apis/build/status/Ombi%20CI?branchName=feature%2Fv4)](https://dev.azure.com/tidusjar/Ombi/_build/latest?definitionId=18&branchName=feature%2Fv4)
| Download |[![Download](https://img.shields.io/badge/-Download-blue)](https://github.com/Ombi-app/Ombi/releases) | [![Download](https://img.shields.io/badge/-Download-blue)](https://ci.appveyor.com/project/tidusjar/requestplex/branch/develop/artifacts) | [![Download](https://img.shields.io/badge/-Download-blue)](https://github.com/ombi-app/ombi/releases) |
4 years ago
# Feature Requests
Feature requests are handled on Feature Upvote.
Search the existing requests to see if your suggestion has already been submitted.
(If a similar request exists, please vote, or add additional comments to the request)
#### [![Feature Requests](https://cloud.githubusercontent.com/assets/390379/10127973/045b3a96-6560-11e5-9b20-31a2032956b2.png)](https://features.ombi.io)
6 years ago
4 years ago
<!---[![Twitter](https://img.shields.io/twitter/follow/tidusjar.svg?style=social)](https://twitter.com/intent/follow?screen_name=tidusjar)--->
6 years ago
4 years ago
<!---Follow me developing Ombi!--->
6 years ago
4 years ago
<!---[![Twitch](https://img.shields.io/badge/Twitch-Watch-blue.svg?style=flat-square&logo=twitch)](https://www.twitch.tv/tidusjar) --->
6 years ago
7 years ago
___
<a href='https://play.google.com/store/apps/details?id=com.tidusjar.Ombi&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img width="150" alt='Get it on Google Play' src='https://play.google.com/intl/en_gb/badges/images/generic/en_badge_web_generic.png'/></a>
<br>
<a href='https://apps.apple.com/us/app/ombi/id1335260043'><img width="130" alt='Get it on the App Store' src='https://developer.apple.com/app-store/marketing/guidelines/images/badge-example-preferred.png'/></a>
<br>
# Features
4 years ago
Here are some of the features Ombi has:
* Lets users request Movies, Music, and TV Shows (whether it being the entire series, an entire season, or even single episodes.)
9 years ago
* Easily manage your requests
* Allows you to set specific users to automatically have requests approved and added to the relevant service (Sonarr/Radarr/Lidarr/Couchpotato etc)
8 years ago
* User management system (supports plex.tv, Emby and local accounts)
* A landing page that will give you the availability of your Plex/Emby server and also add custom notification text to inform your users of downtime.
8 years ago
* Allows your users to get custom notifications!
* Secure authentication using best practises
8 years ago
* Will show if the request is already on plex or even if it's already monitored.
* Automatically updates the status of requests when they are available on Plex/Emby
* Slick, responsive and mobile friendly UI
4 years ago
9 years ago
# Preview
4 years ago
![Preview](https://i.imgur.com/kBXIqer.png)
9 years ago
# Installation
4 years ago
[Installation Guide](https://docs.ombi.app/installation/)
[Here for Reverse Proxy Config Examples](https://docs.ombi.app/info/reverse-proxy/)
# Contributors
<!-- readme: collaborators,contributors -start -->
<table>
<tr>
<td align="center">
<a href="https://github.com/tidusjar">
<img src="https://avatars.githubusercontent.com/u/6642220?v=4" width="50;" alt="tidusjar"/>
<br />
<sub><b>Jamie</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/twanariens">
<img src="https://avatars.githubusercontent.com/u/34845004?v=4" width="50;" alt="twanariens"/>
<br />
<sub><b>Twan Ariens</b></sub>
</a>
</td>
<td align="center">
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
<a href="https://github.com/sephrat">
<img src="https://avatars.githubusercontent.com/u/34862846?v=4" width="50;" alt="sephrat"/>
<br />
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
<sub><b>Sephrat</b></sub>
</a>
</td>
<td align="center">
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
<a href="https://github.com/anojht">
<img src="https://avatars.githubusercontent.com/u/21053678?v=4" width="50;" alt="anojht"/>
<br />
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
<sub><b>Anojh Thayaparan</b></sub>
</a>
Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz>
2 years ago
</td>
<td align="center">
<a href="https://github.com/Magikarplvl4">
<img src="https://avatars.githubusercontent.com/u/2944704?v=4" width="50;" alt="Magikarplvl4"/>
<br />
<sub><b>Magikarp Lvl 4</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td>
<td align="center">
<a href="https://github.com/MrTopCat">
<img src="https://avatars.githubusercontent.com/u/774415?v=4" width="50;" alt="MrTopCat"/>
<br />
<sub><b>James Carty</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/smcpeck">
<img src="https://avatars.githubusercontent.com/u/8724583?v=4" width="50;" alt="smcpeck"/>
<br />
<sub><b>Shaun McPeck</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/MattJeanes">
<img src="https://avatars.githubusercontent.com/u/2363642?v=4" width="50;" alt="MattJeanes"/>
<br />
<sub><b>Matt Jeanes</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/bernarden">
<img src="https://avatars.githubusercontent.com/u/12289537?v=4" width="50;" alt="bernarden"/>
<br />
<sub><b>Victor Usoltsev</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/dhruvb14">
<img src="https://avatars.githubusercontent.com/u/4459649?v=4" width="50;" alt="dhruvb14"/>
<br />
<sub><b>Dhruv Bhavsar</b></sub>
</a>
Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz>
2 years ago
</td>
<td align="center">
<a href="https://github.com/joshuaboniface">
<img src="https://avatars.githubusercontent.com/u/4031396?v=4" width="50;" alt="joshuaboniface"/>
<br />
<sub><b>Joshua M. Boniface</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td>
<td align="center">
<a href="https://github.com/bruvv">
<img src="https://avatars.githubusercontent.com/u/3063928?v=4" width="50;" alt="bruvv"/>
<br />
<sub><b>Bruvv</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/louis-lau">
<img src="https://avatars.githubusercontent.com/u/1346804?v=4" width="50;" alt="louis-lau"/>
<br />
<sub><b>Louis Laureys</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Berserkir-Wolf">
<img src="https://avatars.githubusercontent.com/u/15743201?v=4" width="50;" alt="Berserkir-Wolf"/>
<br />
<sub><b>Dyson Parkes</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/goldenpipes">
<img src="https://avatars.githubusercontent.com/u/6140137?v=4" width="50;" alt="goldenpipes"/>
<br />
<sub><b>Goldenpipes</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Namaneo">
<img src="https://avatars.githubusercontent.com/u/6706489?v=4" width="50;" alt="Namaneo"/>
<br />
<sub><b>Julien Loir</b></sub>
</a>
Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz>
2 years ago
</td>
<td align="center">
<a href="https://github.com/ProtoJazz">
<img src="https://avatars.githubusercontent.com/u/1490293?v=4" width="50;" alt="ProtoJazz"/>
<br />
<sub><b>Jim MacKenize</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td>
<td align="center">
<a href="https://github.com/Unimatrix0">
<img src="https://avatars.githubusercontent.com/u/357984?v=4" width="50;" alt="Unimatrix0"/>
<br />
<sub><b>Avi</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/kitzin">
<img src="https://avatars.githubusercontent.com/u/3277321?v=4" width="50;" alt="kitzin"/>
<br />
<sub><b>Emil Kitti</b></sub>
</a>
</td>
<td align="center">
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
<a href="https://github.com/grimsan55">
<img src="https://avatars.githubusercontent.com/u/8499989?v=4" width="50;" alt="grimsan55"/>
<br />
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
<sub><b>Stefan</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/shiitake">
<img src="https://avatars.githubusercontent.com/u/161589?v=4" width="50;" alt="shiitake"/>
<br />
<sub><b>Shannon Barrett</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/gtbuchanan">
<img src="https://avatars.githubusercontent.com/u/715687?v=4" width="50;" alt="gtbuchanan"/>
<br />
<sub><b>Taylor Buchanan</b></sub>
</a>
Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz>
2 years ago
</td>
<td align="center">
<a href="https://github.com/fservida">
<img src="https://avatars.githubusercontent.com/u/501958?v=4" width="50;" alt="fservida"/>
<br />
<sub><b>Francesco Servida</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td>
<td align="center">
<a href="https://github.com/Patricol">
<img src="https://avatars.githubusercontent.com/u/13428020?v=4" width="50;" alt="Patricol"/>
<br />
<sub><b>Patrick Collins</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td></tr>
<tr>
Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz>
2 years ago
<td align="center">
<a href="https://github.com/xweskingx">
<img src="https://avatars.githubusercontent.com/u/6268446?v=4" width="50;" alt="xweskingx"/>
<br />
<sub><b>Wesley King</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/chriscpritchard">
<img src="https://avatars.githubusercontent.com/u/1839074?v=4" width="50;" alt="chriscpritchard"/>
<br />
<sub><b>Chris Pritchard</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/deepwather">
<img src="https://avatars.githubusercontent.com/u/12274612?v=4" width="50;" alt="deepwather"/>
<br />
<sub><b>Michael Reber</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/stpanzer">
<img src="https://avatars.githubusercontent.com/u/4676271?v=4" width="50;" alt="stpanzer"/>
<br />
<sub><b>Stephen Panzer</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/aptalca">
<img src="https://avatars.githubusercontent.com/u/541623?v=4" width="50;" alt="aptalca"/>
<br />
<sub><b>Aptalca</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
<td align="center">
<a href="https://github.com/dr3am37">
<img src="https://avatars.githubusercontent.com/u/91037083?v=4" width="50;" alt="dr3am37"/>
<br />
<sub><b>Dr3amer</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/mhann">
<img src="https://avatars.githubusercontent.com/u/17162399?v=4" width="50;" alt="mhann"/>
<br />
<sub><b>Mhann</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/ombi-bot">
<img src="https://avatars.githubusercontent.com/u/51722903?v=4" width="50;" alt="ombi-bot"/>
<br />
<sub><b>Ombi-bot</b></sub>
</a>
</td>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
<td align="center">
Dev to master (#5002) * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * chore(release): :rocket: v4.40.0 [skip ci] * feat(emby): Show end-user external IP address to Emby when logging in as an Emby user (#4949) Fixes #4947 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Fix various styling issues (#4935) * chore(release): :rocket: v4.41.0 [skip ci] * chore(release): :rocket: v4.41.1 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4926) * feat(emby): Show watched status for TV requests * feat(emby): Show watched status for TV requests * Consider only requested episodes in played progress * Clarify tv watched progress tooltip * Fix unrespected code guidelines * chore(release): :rocket: v4.42.0 [skip ci] * 🌐 Translations Update (#4952) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore: :fire: Remove unused dependency (#4959) [skip ci] * chore: :fire: Remove unused dependency * chore: :fire: Remove Angular Localize * Remove unused dep (#4960) [skip ci] * chore: :fire: Remove unused dependency * chore: :fire: Remove Angular Localize * deps update * fix: upgrade @microsoft/signalr from 6.0.11 to 6.0.16 (#4964) [skip ci] Snyk has created this PR to upgrade @microsoft/signalr from 6.0.11 to 6.0.16. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade primeng from 15.0.0-rc.1 to 15.4.1 (#4962) [skip ci] Snyk has created this PR to upgrade primeng from 15.0.0-rc.1 to 15.4.1. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: src/Ombi.Notifications/Ombi.Notifications.csproj to reduce vulnerabilities (#4969) [skip ci] The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-DOTNET-SYSTEMSECURITYCRYPTOGRAPHYPKCS-5708426 Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade @fortawesome/fontawesome-free from 6.1.2 to 6.4.0 (#4965) [skip ci] Snyk has created this PR to upgrade @fortawesome/fontawesome-free from 6.1.2 to 6.4.0. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade multiple dependencies with Snyk (#4963) [skip ci] Snyk has created this PR to upgrade: - @angular/animations from 15.2.4 to 15.2.9. See this package in npm: - @angular/common from 15.2.4 to 15.2.9. See this package in npm: - @angular/compiler from 15.2.4 to 15.2.9. See this package in npm: - @angular/core from 15.2.4 to 15.2.9. See this package in npm: - @angular/forms from 15.2.4 to 15.2.9. See this package in npm: - @angular/platform-browser from 15.2.4 to 15.2.9. See this package in npm: - @angular/platform-browser-dynamic from 15.2.4 to 15.2.9. See this package in npm: - @angular/platform-server from 15.2.4 to 15.2.9. See this package in npm: - @angular/router from 15.2.4 to 15.2.9. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * small improvements to fix flaky tests (#4970) [skip ci] * fix: More automation tests mainly around the Plex Settings page (#4821) * updates * test coverage on the plex settings page * features * Update cypress.yml * Update cypress.yml * Update cypress.yml * Update cypress.config.ts * fixes * stuff * put it back * a * always kill docker * Run the wizard as part of the feature files * fix? * slow the tests down * subby * Update user-preferences-profile.spec.ts * Update user-preferences-profile.spec.ts * fix: upgrade cypress-real-events from 1.7.4 to 1.8.1 (#4968) [skip ci] Snyk has created this PR to upgrade cypress-real-events from 1.7.4 to 1.8.1. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/750c1ef4-1459-4f30-a181-009a5f1ea1dc?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * chore(release): :rocket: v4.42.1 [skip ci] * Remove unused dependancy [skip ci] * chore: updates (#4971) [skip ci] * docs: Update README.md (#4972) [skip ci] * fix: Remove Angular TSLint (#4973) * Update tslint.json * Update package.json [skip ci] * fix: upgrade zone.js from 0.11.8 to 0.13.0 (#4975) [skip ci] Snyk has created this PR to upgrade zone.js from 0.11.8 to 0.13.0. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade jquery from 3.6.1 to 3.7.0 (#4974) [skip ci] Snyk has created this PR to upgrade jquery from 3.6.1 to 3.7.0. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade multiple dependencies with Snyk (#4961) Snyk has created this PR to upgrade: - @ngxs/devtools-plugin from 3.7.3 to 3.8.1. See this package in npm: - @ngxs/store from 3.7.3 to 3.8.1. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * Small fixes (#4978) * fix(tv-requests): 🐛 Fixed a small bug where an exception can get thrown when attempting to view TV Requests * fix(user-importer): 🐛 Fixed an issue where the cleanup wouldn't delete users #4812 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.42.2 [skip ci] * Bug improvements [skip ci] (#4979) * Update config.yml * stuff * Update bug_report.yml * fix(user-importer): Do not delete the Plex Admin as part of the user Importer cleanup #4870 (#4981) * chore(release): :rocket: v4.42.3 [skip ci] * feat: Add Auto Approve 4K role (#4982) (#4983) Legacy "Auto Approve" role now only applies to non-4K requests Fixes #4957 Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> * chore(release): :rocket: v4.43.0 [skip ci] * fix(user-importer): don't delete admins in the cleanup * chore(release): :rocket: v4.43.1 [skip ci] * fix: Remove old trending source (#4987) [skip ci] * fix(plex-api): Switch over to the new API to avoid deprecation & save… (#4986) * fix(plex-api): Switch over to the new API to avoid deprecation & save the plex settings when modifying the servers * Delete Ombi.sln * chore(release): :rocket: v4.43.2 [skip ci] * fix: switch back to the old plex friends API #4989 * chore(release): :rocket: v4.43.3 [skip ci] * fix(user-importer): Fixed not importing all correct users #4989 * test: Add a unit test to cover the Unmanaged Home user scenario [skip ci] * chore(release): :rocket: v4.43.4 [skip ci] * fix: upgrade cypress-real-events from 1.8.1 to 1.9.1 (#5000) [skip ci] Snyk has created this PR to upgrade cypress-real-events from 1.8.1 to 1.9.1. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/750c1ef4-1459-4f30-a181-009a5f1ea1dc?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade @microsoft/signalr from 6.0.18 to 6.0.20 (#4999) [skip ci] Snyk has created this PR to upgrade @microsoft/signalr from 6.0.18 to 6.0.20. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: snyk-bot <snyk-bot@snyk.io>
2 years ago
<a href="https://github.com/Fire-Swan">
<img src="https://avatars.githubusercontent.com/u/60622768?v=4" width="50;" alt="Fire-Swan"/>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
<br />
Dev to master (#5002) * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * chore(release): :rocket: v4.40.0 [skip ci] * feat(emby): Show end-user external IP address to Emby when logging in as an Emby user (#4949) Fixes #4947 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Fix various styling issues (#4935) * chore(release): :rocket: v4.41.0 [skip ci] * chore(release): :rocket: v4.41.1 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4926) * feat(emby): Show watched status for TV requests * feat(emby): Show watched status for TV requests * Consider only requested episodes in played progress * Clarify tv watched progress tooltip * Fix unrespected code guidelines * chore(release): :rocket: v4.42.0 [skip ci] * 🌐 Translations Update (#4952) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore: :fire: Remove unused dependency (#4959) [skip ci] * chore: :fire: Remove unused dependency * chore: :fire: Remove Angular Localize * Remove unused dep (#4960) [skip ci] * chore: :fire: Remove unused dependency * chore: :fire: Remove Angular Localize * deps update * fix: upgrade @microsoft/signalr from 6.0.11 to 6.0.16 (#4964) [skip ci] Snyk has created this PR to upgrade @microsoft/signalr from 6.0.11 to 6.0.16. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade primeng from 15.0.0-rc.1 to 15.4.1 (#4962) [skip ci] Snyk has created this PR to upgrade primeng from 15.0.0-rc.1 to 15.4.1. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: src/Ombi.Notifications/Ombi.Notifications.csproj to reduce vulnerabilities (#4969) [skip ci] The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-DOTNET-SYSTEMSECURITYCRYPTOGRAPHYPKCS-5708426 Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade @fortawesome/fontawesome-free from 6.1.2 to 6.4.0 (#4965) [skip ci] Snyk has created this PR to upgrade @fortawesome/fontawesome-free from 6.1.2 to 6.4.0. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade multiple dependencies with Snyk (#4963) [skip ci] Snyk has created this PR to upgrade: - @angular/animations from 15.2.4 to 15.2.9. See this package in npm: - @angular/common from 15.2.4 to 15.2.9. See this package in npm: - @angular/compiler from 15.2.4 to 15.2.9. See this package in npm: - @angular/core from 15.2.4 to 15.2.9. See this package in npm: - @angular/forms from 15.2.4 to 15.2.9. See this package in npm: - @angular/platform-browser from 15.2.4 to 15.2.9. See this package in npm: - @angular/platform-browser-dynamic from 15.2.4 to 15.2.9. See this package in npm: - @angular/platform-server from 15.2.4 to 15.2.9. See this package in npm: - @angular/router from 15.2.4 to 15.2.9. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * small improvements to fix flaky tests (#4970) [skip ci] * fix: More automation tests mainly around the Plex Settings page (#4821) * updates * test coverage on the plex settings page * features * Update cypress.yml * Update cypress.yml * Update cypress.yml * Update cypress.config.ts * fixes * stuff * put it back * a * always kill docker * Run the wizard as part of the feature files * fix? * slow the tests down * subby * Update user-preferences-profile.spec.ts * Update user-preferences-profile.spec.ts * fix: upgrade cypress-real-events from 1.7.4 to 1.8.1 (#4968) [skip ci] Snyk has created this PR to upgrade cypress-real-events from 1.7.4 to 1.8.1. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/750c1ef4-1459-4f30-a181-009a5f1ea1dc?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * chore(release): :rocket: v4.42.1 [skip ci] * Remove unused dependancy [skip ci] * chore: updates (#4971) [skip ci] * docs: Update README.md (#4972) [skip ci] * fix: Remove Angular TSLint (#4973) * Update tslint.json * Update package.json [skip ci] * fix: upgrade zone.js from 0.11.8 to 0.13.0 (#4975) [skip ci] Snyk has created this PR to upgrade zone.js from 0.11.8 to 0.13.0. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade jquery from 3.6.1 to 3.7.0 (#4974) [skip ci] Snyk has created this PR to upgrade jquery from 3.6.1 to 3.7.0. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade multiple dependencies with Snyk (#4961) Snyk has created this PR to upgrade: - @ngxs/devtools-plugin from 3.7.3 to 3.8.1. See this package in npm: - @ngxs/store from 3.7.3 to 3.8.1. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * Small fixes (#4978) * fix(tv-requests): 🐛 Fixed a small bug where an exception can get thrown when attempting to view TV Requests * fix(user-importer): 🐛 Fixed an issue where the cleanup wouldn't delete users #4812 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.42.2 [skip ci] * Bug improvements [skip ci] (#4979) * Update config.yml * stuff * Update bug_report.yml * fix(user-importer): Do not delete the Plex Admin as part of the user Importer cleanup #4870 (#4981) * chore(release): :rocket: v4.42.3 [skip ci] * feat: Add Auto Approve 4K role (#4982) (#4983) Legacy "Auto Approve" role now only applies to non-4K requests Fixes #4957 Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> * chore(release): :rocket: v4.43.0 [skip ci] * fix(user-importer): don't delete admins in the cleanup * chore(release): :rocket: v4.43.1 [skip ci] * fix: Remove old trending source (#4987) [skip ci] * fix(plex-api): Switch over to the new API to avoid deprecation & save… (#4986) * fix(plex-api): Switch over to the new API to avoid deprecation & save the plex settings when modifying the servers * Delete Ombi.sln * chore(release): :rocket: v4.43.2 [skip ci] * fix: switch back to the old plex friends API #4989 * chore(release): :rocket: v4.43.3 [skip ci] * fix(user-importer): Fixed not importing all correct users #4989 * test: Add a unit test to cover the Unmanaged Home user scenario [skip ci] * chore(release): :rocket: v4.43.4 [skip ci] * fix: upgrade cypress-real-events from 1.8.1 to 1.9.1 (#5000) [skip ci] Snyk has created this PR to upgrade cypress-real-events from 1.8.1 to 1.9.1. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/750c1ef4-1459-4f30-a181-009a5f1ea1dc?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade @microsoft/signalr from 6.0.18 to 6.0.20 (#4999) [skip ci] Snyk has created this PR to upgrade @microsoft/signalr from 6.0.18 to 6.0.20. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: snyk-bot <snyk-bot@snyk.io>
2 years ago
<sub><b>Fire-Swan</b></sub>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</a>
</td>
<td align="center">
<a href="https://github.com/snyk-bot">
<img src="https://avatars.githubusercontent.com/u/19733683?v=4" width="50;" alt="snyk-bot"/>
<br />
<sub><b>Snyk Bot</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/andrewjmetzger">
<img src="https://avatars.githubusercontent.com/u/590246?v=4" width="50;" alt="andrewjmetzger"/>
<br />
<sub><b>Andrew Metzger</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/au5ton">
<img src="https://avatars.githubusercontent.com/u/4109551?v=4" width="50;" alt="au5ton"/>
<br />
<sub><b>Austin Jackson</b></sub>
</a>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/D34DC3N73R">
<img src="https://avatars.githubusercontent.com/u/9123670?v=4" width="50;" alt="D34DC3N73R"/>
<br />
<sub><b>D34DC3N73R</b></sub>
</a>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
</td>
<td align="center">
<a href="https://github.com/pooley182">
<img src="https://avatars.githubusercontent.com/u/5040011?v=4" width="50;" alt="pooley182"/>
<br />
<sub><b>David Pooley</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Fredrik81">
<img src="https://avatars.githubusercontent.com/u/21292774?v=4" width="50;" alt="Fredrik81"/>
<br />
<sub><b>Fredrik81</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Aerion">
<img src="https://avatars.githubusercontent.com/u/9089317?v=4" width="50;" alt="Aerion"/>
<br />
<sub><b>Guillaume Taquet Gasperini</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/jackodsteel">
<img src="https://avatars.githubusercontent.com/u/9209504?v=4" width="50;" alt="jackodsteel"/>
<br />
<sub><b>Jack Steel</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/jpeters">
<img src="https://avatars.githubusercontent.com/u/167401?v=4" width="50;" alt="jpeters"/>
<br />
<sub><b>Jeffrey Peters</b></sub>
</a>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/MariusSchiffer">
<img src="https://avatars.githubusercontent.com/u/183124?v=4" width="50;" alt="MariusSchiffer"/>
<br />
<sub><b>Marius Schiffer</b></sub>
</a>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
</td>
<td align="center">
<a href="https://github.com/Qstick">
<img src="https://avatars.githubusercontent.com/u/376117?v=4" width="50;" alt="Qstick"/>
<br />
<sub><b>Qstick</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Vbgf">
<img src="https://avatars.githubusercontent.com/u/5571734?v=4" width="50;" alt="Vbgf"/>
<br />
<sub><b>Vbgf</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/sorano">
<img src="https://avatars.githubusercontent.com/u/6185109?v=4" width="50;" alt="sorano"/>
<br />
<sub><b>Sorano</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/vsc55">
<img src="https://avatars.githubusercontent.com/u/13438676?v=4" width="50;" alt="vsc55"/>
<br />
<sub><b>Javier Pastor</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/AbeKline">
<img src="https://avatars.githubusercontent.com/u/8125653?v=4" width="50;" alt="AbeKline"/>
<br />
<sub><b>Abe Kline</b></sub>
</a>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
</td></tr>
<tr>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
<td align="center">
<a href="https://github.com/aj3x">
<img src="https://avatars.githubusercontent.com/u/15078358?v=4" width="50;" alt="aj3x"/>
<br />
<sub><b>Alexander Russell</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/XanderStrike">
<img src="https://avatars.githubusercontent.com/u/1565303?v=4" width="50;" alt="XanderStrike"/>
<br />
<sub><b>Alexander Standke</b></sub>
</a>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
</td>
<td align="center">
<a href="https://github.com/Alasano">
<img src="https://avatars.githubusercontent.com/u/14372930?v=4" width="50;" alt="Alasano"/>
<br />
<sub><b>Aljosa Asanovic</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Ashyni">
<img src="https://avatars.githubusercontent.com/u/18462848?v=4" width="50;" alt="Ashyni"/>
<br />
<sub><b>Ashyni</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Majawat">
<img src="https://avatars.githubusercontent.com/u/12058855?v=4" width="50;" alt="Majawat"/>
<br />
<sub><b>Majawat</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/CalvinWalzel">
<img src="https://avatars.githubusercontent.com/u/6446452?v=4" width="50;" alt="CalvinWalzel"/>
<br />
<sub><b>Calvin</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/origamirobot">
<img src="https://avatars.githubusercontent.com/u/1346803?v=4" width="50;" alt="origamirobot"/>
<br />
<sub><b>Chris Lees</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td>
<td align="center">
<a href="https://github.com/cdemi">
<img src="https://avatars.githubusercontent.com/u/8025435?v=4" width="50;" alt="cdemi"/>
<br />
<sub><b>Christopher Demicoli</b></sub>
</a>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
</td>
<td align="center">
<a href="https://github.com/Codehhh">
<img src="https://avatars.githubusercontent.com/u/12055335?v=4" width="50;" alt="Codehhh"/>
<br />
<sub><b>Codehhh</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/danopia">
<img src="https://avatars.githubusercontent.com/u/40628?v=4" width="50;" alt="danopia"/>
<br />
<sub><b>Daniel Lamando</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/hmnd">
<img src="https://avatars.githubusercontent.com/u/12853597?v=4" width="50;" alt="hmnd"/>
<br />
<sub><b>David</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/davidtorosyan">
<img src="https://avatars.githubusercontent.com/u/46736285?v=4" width="50;" alt="davidtorosyan"/>
<br />
<sub><b>David Torosyan</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/onedr0p">
<img src="https://avatars.githubusercontent.com/u/213795?v=4" width="50;" alt="onedr0p"/>
<br />
<sub><b>Devin Buhl</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td>
<td align="center">
<a href="https://github.com/elisspace">
<img src="https://avatars.githubusercontent.com/u/18365129?v=4" width="50;" alt="elisspace"/>
<br />
<sub><b>Eli</b></sub>
</a>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
</td>
<td align="center">
<a href="https://github.com/Fish2">
<img src="https://avatars.githubusercontent.com/u/2311734?v=4" width="50;" alt="Fish2"/>
<br />
<sub><b>Fish2</b></sub>
</a>
</td>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
<td align="center">
<a href="https://github.com/Grygon">
<img src="https://avatars.githubusercontent.com/u/647846?v=4" width="50;" alt="Grygon"/>
<br />
<sub><b>Grygon</b></sub>
</a>
</td>
Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz>
2 years ago
<td align="center">
<a href="https://github.com/ketsapiwiq">
<img src="https://avatars.githubusercontent.com/u/26697460?v=4" width="50;" alt="ketsapiwiq"/>
<br />
<sub><b>Hadrien</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/hariesramdhani">
<img src="https://avatars.githubusercontent.com/u/24251244?v=4" width="50;" alt="hariesramdhani"/>
<br />
<sub><b>Haries Ramdhani</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td></tr>
<tr>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
<td align="center">
<a href="https://github.com/comigor">
<img src="https://avatars.githubusercontent.com/u/735858?v=4" width="50;" alt="comigor"/>
<br />
<sub><b>Igor Borges</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/ImgBotApp">
<img src="https://avatars.githubusercontent.com/u/31427850?v=4" width="50;" alt="ImgBotApp"/>
<br />
<sub><b>Imgbot</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td>
<td align="center">
<a href="https://github.com/JPyke3">
<img src="https://avatars.githubusercontent.com/u/13283054?v=4" width="50;" alt="JPyke3"/>
<br />
<sub><b>Jacob Pyke</b></sub>
</a>
Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz>
2 years ago
</td>
<td align="center">
<a href="https://github.com/jamesmacwhite">
<img src="https://avatars.githubusercontent.com/u/8067792?v=4" width="50;" alt="jamesmacwhite"/>
<br />
<sub><b>James White</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/frebib">
<img src="https://avatars.githubusercontent.com/u/775104?v=4" width="50;" alt="frebib"/>
<br />
<sub><b>Joe Groocock</b></sub>
</a>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
</td>
<td align="center">
<a href="https://github.com/errorhandler">
<img src="https://avatars.githubusercontent.com/u/17112958?v=4" width="50;" alt="errorhandler"/>
<br />
<sub><b>Joe Harvey</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/jonbloom">
<img src="https://avatars.githubusercontent.com/u/492819?v=4" width="50;" alt="jonbloom"/>
<br />
<sub><b>Jon Bloom</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/jonocairns">
<img src="https://avatars.githubusercontent.com/u/182836?v=4" width="50;" alt="jonocairns"/>
<br />
<sub><b>Jono Cairns</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td>
<td align="center">
<a href="https://github.com/krisklosterman">
<img src="https://avatars.githubusercontent.com/u/7139579?v=4" width="50;" alt="krisklosterman"/>
<br />
<sub><b>Kris Klosterman</b></sub>
</a>
Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz>
2 years ago
</td>
<td align="center">
<a href="https://github.com/kmlucy">
<img src="https://avatars.githubusercontent.com/u/13952475?v=4" width="50;" alt="kmlucy"/>
<br />
<sub><b>Kyle Lucy</b></sub>
</a>
</td>
Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz>
2 years ago
<td align="center">
Dev to master (#5002) * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * chore(release): :rocket: v4.40.0 [skip ci] * feat(emby): Show end-user external IP address to Emby when logging in as an Emby user (#4949) Fixes #4947 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Fix various styling issues (#4935) * chore(release): :rocket: v4.41.0 [skip ci] * chore(release): :rocket: v4.41.1 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4926) * feat(emby): Show watched status for TV requests * feat(emby): Show watched status for TV requests * Consider only requested episodes in played progress * Clarify tv watched progress tooltip * Fix unrespected code guidelines * chore(release): :rocket: v4.42.0 [skip ci] * 🌐 Translations Update (#4952) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore: :fire: Remove unused dependency (#4959) [skip ci] * chore: :fire: Remove unused dependency * chore: :fire: Remove Angular Localize * Remove unused dep (#4960) [skip ci] * chore: :fire: Remove unused dependency * chore: :fire: Remove Angular Localize * deps update * fix: upgrade @microsoft/signalr from 6.0.11 to 6.0.16 (#4964) [skip ci] Snyk has created this PR to upgrade @microsoft/signalr from 6.0.11 to 6.0.16. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade primeng from 15.0.0-rc.1 to 15.4.1 (#4962) [skip ci] Snyk has created this PR to upgrade primeng from 15.0.0-rc.1 to 15.4.1. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: src/Ombi.Notifications/Ombi.Notifications.csproj to reduce vulnerabilities (#4969) [skip ci] The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-DOTNET-SYSTEMSECURITYCRYPTOGRAPHYPKCS-5708426 Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade @fortawesome/fontawesome-free from 6.1.2 to 6.4.0 (#4965) [skip ci] Snyk has created this PR to upgrade @fortawesome/fontawesome-free from 6.1.2 to 6.4.0. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade multiple dependencies with Snyk (#4963) [skip ci] Snyk has created this PR to upgrade: - @angular/animations from 15.2.4 to 15.2.9. See this package in npm: - @angular/common from 15.2.4 to 15.2.9. See this package in npm: - @angular/compiler from 15.2.4 to 15.2.9. See this package in npm: - @angular/core from 15.2.4 to 15.2.9. See this package in npm: - @angular/forms from 15.2.4 to 15.2.9. See this package in npm: - @angular/platform-browser from 15.2.4 to 15.2.9. See this package in npm: - @angular/platform-browser-dynamic from 15.2.4 to 15.2.9. See this package in npm: - @angular/platform-server from 15.2.4 to 15.2.9. See this package in npm: - @angular/router from 15.2.4 to 15.2.9. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * small improvements to fix flaky tests (#4970) [skip ci] * fix: More automation tests mainly around the Plex Settings page (#4821) * updates * test coverage on the plex settings page * features * Update cypress.yml * Update cypress.yml * Update cypress.yml * Update cypress.config.ts * fixes * stuff * put it back * a * always kill docker * Run the wizard as part of the feature files * fix? * slow the tests down * subby * Update user-preferences-profile.spec.ts * Update user-preferences-profile.spec.ts * fix: upgrade cypress-real-events from 1.7.4 to 1.8.1 (#4968) [skip ci] Snyk has created this PR to upgrade cypress-real-events from 1.7.4 to 1.8.1. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/750c1ef4-1459-4f30-a181-009a5f1ea1dc?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * chore(release): :rocket: v4.42.1 [skip ci] * Remove unused dependancy [skip ci] * chore: updates (#4971) [skip ci] * docs: Update README.md (#4972) [skip ci] * fix: Remove Angular TSLint (#4973) * Update tslint.json * Update package.json [skip ci] * fix: upgrade zone.js from 0.11.8 to 0.13.0 (#4975) [skip ci] Snyk has created this PR to upgrade zone.js from 0.11.8 to 0.13.0. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade jquery from 3.6.1 to 3.7.0 (#4974) [skip ci] Snyk has created this PR to upgrade jquery from 3.6.1 to 3.7.0. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade multiple dependencies with Snyk (#4961) Snyk has created this PR to upgrade: - @ngxs/devtools-plugin from 3.7.3 to 3.8.1. See this package in npm: - @ngxs/store from 3.7.3 to 3.8.1. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * Small fixes (#4978) * fix(tv-requests): 🐛 Fixed a small bug where an exception can get thrown when attempting to view TV Requests * fix(user-importer): 🐛 Fixed an issue where the cleanup wouldn't delete users #4812 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.42.2 [skip ci] * Bug improvements [skip ci] (#4979) * Update config.yml * stuff * Update bug_report.yml * fix(user-importer): Do not delete the Plex Admin as part of the user Importer cleanup #4870 (#4981) * chore(release): :rocket: v4.42.3 [skip ci] * feat: Add Auto Approve 4K role (#4982) (#4983) Legacy "Auto Approve" role now only applies to non-4K requests Fixes #4957 Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> * chore(release): :rocket: v4.43.0 [skip ci] * fix(user-importer): don't delete admins in the cleanup * chore(release): :rocket: v4.43.1 [skip ci] * fix: Remove old trending source (#4987) [skip ci] * fix(plex-api): Switch over to the new API to avoid deprecation & save… (#4986) * fix(plex-api): Switch over to the new API to avoid deprecation & save the plex settings when modifying the servers * Delete Ombi.sln * chore(release): :rocket: v4.43.2 [skip ci] * fix: switch back to the old plex friends API #4989 * chore(release): :rocket: v4.43.3 [skip ci] * fix(user-importer): Fixed not importing all correct users #4989 * test: Add a unit test to cover the Unmanaged Home user scenario [skip ci] * chore(release): :rocket: v4.43.4 [skip ci] * fix: upgrade cypress-real-events from 1.8.1 to 1.9.1 (#5000) [skip ci] Snyk has created this PR to upgrade cypress-real-events from 1.8.1 to 1.9.1. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/750c1ef4-1459-4f30-a181-009a5f1ea1dc?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> * fix: upgrade @microsoft/signalr from 6.0.18 to 6.0.20 (#4999) [skip ci] Snyk has created this PR to upgrade @microsoft/signalr from 6.0.18 to 6.0.20. See this package in npm: See this project in Snyk: https://app.snyk.io/org/ombi-shared/project/7a4dc3b5-498d-41a0-82fb-9781f30ae243?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: snyk-bot <snyk-bot@snyk.io>
2 years ago
<a href="https://github.com/sussycatgirl">
<img src="https://avatars.githubusercontent.com/u/26145882?v=4" width="50;" alt="sussycatgirl"/>
Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz>
2 years ago
<br />
<sub><b>Lea</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Lixumos">
<img src="https://avatars.githubusercontent.com/u/29160577?v=4" width="50;" alt="Lixumos"/>
<br />
<sub><b>Lightkeeper</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td></tr>
<tr>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
<td align="center">
<a href="https://github.com/Lucane">
<img src="https://avatars.githubusercontent.com/u/7999446?v=4" width="50;" alt="Lucane"/>
<br />
<sub><b>Lucane</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/devbymadde">
<img src="https://avatars.githubusercontent.com/u/6094593?v=4" width="50;" alt="devbymadde"/>
<br />
<sub><b>Madeleine Schönemann</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
<td align="center">
<a href="https://github.com/marleypowell">
<img src="https://avatars.githubusercontent.com/u/55280588?v=4" width="50;" alt="marleypowell"/>
<br />
<sub><b>Marley</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/mattmattmatt">
<img src="https://avatars.githubusercontent.com/u/927830?v=4" width="50;" alt="mattmattmatt"/>
<br />
<sub><b>Matt</b></sub>
</a>
Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz>
2 years ago
</td>
<td align="center">
<a href="https://github.com/LMaxence">
<img src="https://avatars.githubusercontent.com/u/29194680?v=4" width="50;" alt="LMaxence"/>
<br />
<sub><b>Maxence Lecanu</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/AliMickey">
<img src="https://avatars.githubusercontent.com/u/60691199?v=4" width="50;" alt="AliMickey"/>
<br />
<sub><b>Micky</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td></tr>
<tr>
Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz>
2 years ago
<td align="center">
<a href="https://github.com/mvicomoya">
<img src="https://avatars.githubusercontent.com/u/24613599?v=4" width="50;" alt="mvicomoya"/>
<br />
<sub><b>Miguel A Vico Moya</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/beast3334">
<img src="https://avatars.githubusercontent.com/u/20631046?v=4" width="50;" alt="beast3334"/>
<br />
<sub><b>Nathan Miller</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td>
<td align="center">
<a href="https://github.com/cqxmzz">
<img src="https://avatars.githubusercontent.com/u/3071863?v=4" width="50;" alt="cqxmzz"/>
<br />
<sub><b>Qiming Chen</b></sub>
</a>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
</td>
<td align="center">
<a href="https://github.com/rob1998">
<img src="https://avatars.githubusercontent.com/u/1560707?v=4" width="50;" alt="rob1998"/>
<br />
<sub><b>Rob Gökemeijer</b></sub>
</a>
Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz>
2 years ago
</td>
<td align="center">
<a href="https://github.com/sambartik">
<img src="https://avatars.githubusercontent.com/u/63553146?v=4" width="50;" alt="sambartik"/>
<br />
<sub><b>Samuel Bartík</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/seancallinan">
<img src="https://avatars.githubusercontent.com/u/1139665?v=4" width="50;" alt="seancallinan"/>
<br />
<sub><b>Sean Callinan</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/shoghicp">
<img src="https://avatars.githubusercontent.com/u/516482?v=4" width="50;" alt="shoghicp"/>
<br />
<sub><b>Shoghi</b></sub>
</a>
</td>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
<td align="center">
<a href="https://github.com/Teifun2">
<img src="https://avatars.githubusercontent.com/u/7461832?v=4" width="50;" alt="Teifun2"/>
<br />
<sub><b>Teifun2</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td>
<td align="center">
<a href="https://github.com/thomasvt1">
<img src="https://avatars.githubusercontent.com/u/2271011?v=4" width="50;" alt="thomasvt1"/>
<br />
<sub><b>Thomas Van Tilburg</b></sub>
</a>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
</td>
<td align="center">
<a href="https://github.com/Tim-Trott">
<img src="https://avatars.githubusercontent.com/u/8249434?v=4" width="50;" alt="Tim-Trott"/>
<br />
<sub><b>Tim Trott</b></sub>
</a>
Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz>
2 years ago
</td>
<td align="center">
<a href="https://github.com/tombomb">
<img src="https://avatars.githubusercontent.com/u/544509?v=4" width="50;" alt="tombomb"/>
<br />
<sub><b>Tom McClellan</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Torkiliuz">
<img src="https://avatars.githubusercontent.com/u/460764?v=4" width="50;" alt="Torkiliuz"/>
<br />
<sub><b>Torkil</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/bybeet">
<img src="https://avatars.githubusercontent.com/u/1662279?v=4" width="50;" alt="bybeet"/>
<br />
<sub><b>Travis Bybee</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Xirg">
<img src="https://avatars.githubusercontent.com/u/6020502?v=4" width="50;" alt="Xirg"/>
<br />
<sub><b>Xirg</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td>
<td align="center">
<a href="https://github.com/bazhip">
<img src="https://avatars.githubusercontent.com/u/10350445?v=4" width="50;" alt="bazhip"/>
<br />
<sub><b>Tim OBrien</b></sub>
</a>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
</td>
<td align="center">
<a href="https://github.com/x-limitless-x">
<img src="https://avatars.githubusercontent.com/u/17127926?v=4" width="50;" alt="x-limitless-x"/>
<br />
<sub><b>Blake Drumm</b></sub>
</a>
Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz>
2 years ago
</td>
<td align="center">
<a href="https://github.com/camjac251">
<img src="https://avatars.githubusercontent.com/u/6313132?v=4" width="50;" alt="camjac251"/>
<br />
<sub><b>Camjac251</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/distaula">
<img src="https://avatars.githubusercontent.com/u/33949?v=4" width="50;" alt="distaula"/>
<br />
<sub><b>Michael DiStaula</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/baikunz">
<img src="https://avatars.githubusercontent.com/u/984911?v=4" width="50;" alt="baikunz"/>
<br />
<sub><b>Dorian ALKOUM</b></sub>
</a>
</td>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
<td align="center">
<a href="https://github.com/echel0n">
<img src="https://avatars.githubusercontent.com/u/1128022?v=4" width="50;" alt="echel0n"/>
<br />
<sub><b>Echel0n</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td>
<td align="center">
<a href="https://github.com/m4tta">
<img src="https://avatars.githubusercontent.com/u/427218?v=4" width="50;" alt="m4tta"/>
<br />
<sub><b>M4tta</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/maartenheebink">
<img src="https://avatars.githubusercontent.com/u/28894544?v=4" width="50;" alt="maartenheebink"/>
<br />
<sub><b>Maartenheebink</b></sub>
</a>
Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz>
2 years ago
</td>
<td align="center">
<a href="https://github.com/masterhuck">
<img src="https://avatars.githubusercontent.com/u/4671442?v=4" width="50;" alt="masterhuck"/>
<br />
<sub><b>Patrick Weber</b></sub>
</a>
</td>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
<td align="center">
<a href="https://github.com/mkgeeky">
<img src="https://avatars.githubusercontent.com/u/68811367?v=4" width="50;" alt="mkgeeky"/>
<br />
<sub><b>Mkgeeky</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/ryan-c44">
<img src="https://avatars.githubusercontent.com/u/54028283?v=4" width="50;" alt="ryan-c44"/>
<br />
<sub><b>Ryan-c44</b></sub>
</a>
develop to master (#4718) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz>
3 years ago
</td>
<td align="center">
<a href="https://github.com/sir-marv">
<img src="https://avatars.githubusercontent.com/u/3598205?v=4" width="50;" alt="sir-marv"/>
<br />
<sub><b>Sirmarv</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/tdorsey">
<img src="https://avatars.githubusercontent.com/u/1218404?v=4" width="50;" alt="tdorsey"/>
<br />
<sub><b>Tdorsey</b></sub>
</a>
Update (#4937) * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation * fix(sonarr): :bug: Improved the error handling in the sonarr settings page in the UI This should hopefully prevent some odd situations where the settings are in a odd state #4877 * chore: update deps * chore: more deps * bump * chore(release): :rocket: v4.35.12 [skip ci] * fix(sonarr): :bug: Added some more error handling and information around testing sonarr #4877 * chore(release): :rocket: v4.35.13 [skip ci] * fix: Some minor tweaks to the movie info panel (#4883) * fix: Hide denied reason label if there is no value * fix: Movie would show as pending approval when denied * chore(release): :rocket: v4.35.14 [skip ci] * fix(sonarr): :bug: Stop the sonarr version endpoint from breaking when Sonarr is down #4895 * chore(release): :rocket: v4.35.15 [skip ci] * fix: Support duplicates in Emby/JF collections (#4902) Support same movie that belongs in different collections in Emby or Jellyfin * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.16 [skip ci] * fix(discover): Fix denied requests displayed as approved (#4901) * fix: Fix denied movie shown as 'processing request' in details view (#4900) * chore(release): :rocket: v4.35.17 [skip ci] * fix(#4906): :bug: Fixed an issue with power users and permissions * chore(release): :rocket: v4.35.18 [skip ci] * fix(radarr): Fixed an issue where the radarr sync would break * chore(release): :rocket: v4.35.19 [skip ci] * feat(discover): Add deny option to recently requested (#4907) * chore(release): :rocket: v4.36.0 [skip ci] * fix(healthchecks): Removed redundant ping check * chore(release): :rocket: v4.36.1 [skip ci] * feat: Search by genre [skip-ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.0 [skip ci] * fix(discover): :children_crossing: Improved the new Genre buttons, it now includes TV results * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fix: Cron Validation (#4842) * Add Cron Next Time Validation The cron job can't be created if the year is more than 100 years in the future. Getting the next valid time will return null if this is the case. * add next cron validation to api * add next cron validation to job settings page * Add Missing Import * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4806) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(lidarr): Change monitor to Existing to properly add artist #3597 Discussed and tested manually in https://github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055 * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.1 [skip ci] * fix(jellyfin): Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails * chore(release): :rocket: v4.37.2 [skip ci] * fix: Show the ApiAlias in the requests-list * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.37.3 [skip ci] * feat(emby): Show watched status for Movie requests * First step towards played sync * Change TMDB id format to integer This will better integrate with TMDB id type in the request model * Display played state in the requests list * Fix played status filter * Run played sync job after content sync instead of on its own * Add a toggle to activate played sync * Hoovering * FIx played sync job not being triggered * Expose played state according to hide requests setting * Fix tests * Fix tests for real * Add MySql migrations [skip ci] * fix: remove sort header * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.0 [skip ci] * fix(notificaitons): Add the RequestedByAlias field to the Notification Message * chore: :busts_in_silhouette: Updated Contributors [skip ci] * 🌐 Translations Update (#4921) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(API): Allow RequestOnBehalf rights if requested from the API (#4919) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.38.1 [skip ci] * Merge pull request from GHSA-28j3-84m7-gpjp * chore(release): :rocket: v4.38.2 [skip ci] * Develop master (#4930) * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * Develop master (#4931) [skip ci] * Update (#4871) * Remove dead code * Localize TV requests messages on TV details page * Transform buttons with link into anchors * Sonarr sync: stop using seasonpass API * chore(release): :rocket: v4.16.13 * Fix requests when 4k available and 4k disabled Fixes #4610 * chore(release): :rocket: v4.16.14 * Hide subscribe button when request is available * Hide subscribe button when request is denied * Add Title to Partially Available Message If the Title of the show is not menitoned it can be unclear what Episodes are now available. * Better error message when test email fails due to missing recipient * feat(discover): Add original language filter * chore(release): :rocket: v4.16.15 * fix(4616): :bug: fixed mandatory fields * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.16.16 * added test results into the PR pipeline * chore(release): :rocket: v4.16.17 * Add information about cache refresh * Update pr.yml [skip ci] * Update pr.yml [skip ci] * Update pr.yml [skip ci] * chore(release): :rocket: v4.17.0 * feat(discover): Add new trending source experimental feature * fix(settings): Allow toggling features when there are more than one * fix(discover): Fix new trending feature detection * fix(discover): Fix cache mix up * refactor(discover): Move movie trending feature toggle to backend * feat(discover): Default trending source to new logic * chore(release): :rocket: v4.18.0 * feat(sync): Detect reidentified movies in Emby and Jellyfin * feat(sync): Detect reidentified series in Emby and Jellyfin * Fix sync log criticity * Update pr.yml [skip ci] * Update label.yml [skip ci] * Fix formatting * Update pr.yml [skip ci] * Update label.yml [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.19.0 * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish a series * refactor(newsletter): Clarify very rare cases where newsletter doesn't publish movie * chore(release): :rocket: v4.19.1 * feat(discover): Show more relevant shows in upcoming TV * chore(release): :rocket: v4.20.0 * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes * perf(sync): Emby+Jellyfin - use a more reliable filter to missing items * fix(sync): Emby+Jellyfin - sync multi-episode files of 3+ episodes [skip ci] * fix: added media type tag to media type text (#4638) [skip ci] * fix(sickrage): Fixed issue with incorrect handling of SiCKRAGE episode results returned during episode status changes, now expects array of objects from data path if present (#4648) [skip ci] * fix: Missing Poster broken link fix (#4637) [skip ci] * 🌐 Translations Update (#4622) [skip ci] * Update launch.json (#4650) [skip ci] * fix: Improve Swagger documentation (#4652) * Upgrade Swashbuckle dependency * Document /token response * Add support for Newtonsoft annotations in Swagger * Remove unecessary ActionResult [skip ci] * fix(API): Fix pagination in some edge cases (#4649) [skip ci] * 🌐 Translations Update (#4655) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): Carousel touch not working when scrolling page and recommendations and similar movie navigation (#4633) * fixed touch not working on carousels * fixed touch not working * Movie details component fixes Fixed recommendations and similar not changing the data on the component by calling the init function again on param change Moved the ngif results > 0 to the mat-expansion panel to avoid rendering the entire element if it doesn't have any results instead of having an empty panel. * removed unused line, added scroll to top on init * updated recommendation refresh implementation Changed the implementation to use the router instead in order to reload the component instead of just reloading the data. This implementation makes sure the component gets destroyed on navigation eliminating any memory leaks, reloading CSS in case of having animations on page load and generally a continuation of the experience you get when you browse into a movie from the discover page. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.20.1 [skip ci] * fix: :bug: Fixed the Request on Behalf of having blanks (#4667) * chore(release): :rocket: v4.20.2 [skip ci] * fix(plex): 🐛 Fixed an issue with the Plex Sync * chore(release): :rocket: v4.20.3 [skip ci] * fix (technical): Improved some of the date time parsing handling * fix: fixed build * chore(release): :rocket: v4.20.4 [skip ci] * feat: Upgrade to Angular14 (#4668) * refactor: :fire: removed angular-bootstrap-md dependancy * chore: update tsconfig * yeah * ng14 upgrade * refactor: migration changes * fix: fixed CLI * test: Fixed automation * chore: :busts_in_silhouette: Updated Contributors [skip ci] * perf: stop populating obsolete subscribe fields (#4625) * chore(release): :rocket: v4.21.0 [skip ci] * fix(images): Retry images with a backoff when we get a Too Many requests from TheMovieDb #4685 * chore(release): :rocket: v4.21.1 [skip ci] * 🌐 Translations Update (#4683) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Landing and Login page improvements (#4690) * chore(release): :rocket: v4.21.2 [skip ci] * feat(discover): ✨ Added infinite scroll on advanced search results * feat(discover): :sparkles: Added infinite scroll on advanced search results * chore(release): :rocket: v4.22.0 [skip ci] * 🌐 Translations Update (#4694) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(discover): :bug: Created new Image component to handle 429's from TMDB (#4698) and fixed #4635 (#4699) * chore(release): :rocket: v4.22.1 [skip ci] * fix: fixed an issue where I broke images for some users * chore(release): :rocket: v4.22.2 [skip ci] * ci(Mergify): configuration update (#4701) Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] * fix: Override Sonarr V3 Profiles endpoint (#4678) * Override Sonarr V3 Profiles endpoint [skip ci] * fix(4K) :4K request fixes (#4702) * GetRequestsByStatus wasn't implementing the MovieRequests object correctly for 4K quality requests with the ProcessingRequest status. * Fixed 4K requests not getting automatically approved if the user has the "Auto Approve Movie" role flag enabled. * Fixed "Request Date" values for the "left-panel-details" div class. Previously when the movie was exclusively 4K (regular request was absent), then "Request Date" equaled DateTime.MinValue (January 1, 0001). * Fixed "Request Status" evaluation in the "left-panel-details" div class. Now it shows the appropriate status instead of an empty spot. "Request Status" displays both regular and 4K statuses at the same time if needed. Added a comma to the end of the "RequestStatus" label to maintain design consistency with the other labels. Also added a "Denied Reason" element for 4K requests. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.3 [skip ci] * chore: Storybook (#4700) [skip ci] * chore: Translations [skip ci] * 🌐 Translations Update (#4704) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4713) * build: Run automation tests in docker (#4715) [skip ci] * fix: fixed trakt image not loading when base url present (#4711) [skip ci] * fix: :bug: Fixed missing externals (#4712) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.22.4 [skip ci] * test: fixed automationt tests [skip ci] * fix: Log Microsoft warnings to log file (#4723) [skip ci] * feat: ✨ Recently Requested on Discover Page (#4387) * chore(release): :rocket: v4.23.0 [skip ci] * fix: Localize recently requested on discover page (#4729) [skip ci] * 🌐 Translations Update (#4731) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * Fix: Ombi.Api.Lidarr: Remove unused fields from ArtistAdd (#4727) When an artist is not found in Lidarr as part of requesting an album, MusicSender will make a POST request against the /api/v1/artist endpoint to add such artist. Not all fields defined in ArtistAdd are initialized, and those uninitialized will be `null` values in the JSON body of the request, as shown in this intercepted request: ``` { "addOptions": { "AlbumsToMonitor": [ "e5c48b66-44ef-3685-ad53-45dbcd7294c0" ], "monitor": 6, "monitored": true, "searchForMissingAlbums": false }, "added": "2022-08-10T06:49:32.4374278+00:00", "albumFolder": true, "artistName": "Manolo García", "cleanName": "manologarcía", "disambiguation": null, "discogsId": 0, "ended": false, "foreignArtistId": "1c8309da-9789-40bf-b9c2-e20064263820", "images": [], "links": [], "metadataProfileId": 1, "monitored": true, "overview": null, "qualityProfileId": 3, "ratings": null, "remotePoster": null, "rootFolderPath": "/media/music/", "sortName": null, "statistics": null, "status": null, "tadbId": 0, "tags": null } ``` This request will fail and Lidarr will return a 400 BadRequest error with the following message: ``` 2022-08-10 01:45:52.458 +00:00 [Error] StatusCode: BadRequest, Reason: Bad Request, RequestUri: http://lidarr:8686/api/v1/artist 2022-08-10 01:45:52.459 +00:00 [Debug] { "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 400, "traceId": "00-52e01b322a05d7c6633eca2488ef2a5c-06345b3bb8c4bb6c-00", "errors": { "$.status": [ "The JSON value could not be converted to NzbDrone.Core.Music.ArtistStatusType. Path: $.status | LineNumber: 0 | BytePositionInLine: 14." ] } } ``` Removing all the `null` fields from the JSON body fixes the problem and correctly adds the artist to Lidarr. * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.23.1 [skip ci] * fix: Fix conflicting property name for Swagger (#4733) * chore(release): :rocket: v4.23.2 [skip ci] * feat: add crew on movie page (#4722) * add crew on movie page * order by director, add default image and fix click Co-authored-by: tidusjar <tidusjar@gmail.com> * 🌐 Translations Update (#4736) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * chore(release): :rocket: v4.24.0 [skip ci] * feat: Watchlist history errors(#4741) [skip ci] * fix: fixed stats controller (#4742) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.25.0 [skip ci] * fix(webhook): Remove added trailing slash from webhook URL #4710 * chore(release): :rocket: v4.25.1 [skip ci] * feat(notifications): Add more curly variables for partially available notification * feat: Add more curly variables for partially available notification * test: Fix newly added test * chore(release): :rocket: v4.26.0 [skip ci] * feat: Recently requested improvements (#4755) * feat(discover): :sparkles: Admins can now approve the Recently Requested list * feat(discover): :zap: Images for the recently requested area are now loading faster and just better all around * test: :white_check_mark: Added automation for the new feature * chore(release): :rocket: v4.27.0 [skip ci] * fix(plex): stop the plex sync from deleting episodes when we can't find the plex key * chore(release): :rocket: v4.27.1 [skip ci] * refactor: Encapsulate common TV availability checker logic (#4753) [skip ci] * fix(sonarr): :bug: Cleaned up and removed Sonarr v3 option, sonarr v3 is now the default. This allows us to get ready for the upcoming Sonarr v4 (#4764) * chore(release): :rocket: v4.27.2 [skip ci] * 🌐 Translations Update (#4739) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(availability): 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area * chore(release): :rocket: v4.27.3 [skip ci] * test: 🧪 added full test coverage to the plex availability checker, also fixed a small few bugs in there at the same time * chore(release): :rocket: v4.27.4 [skip ci] * fix(importer): 🐛 Allow you to only import Plex Admins without the Plex Users * chore(release): :rocket: v4.27.5 [skip ci] * fix(notifications): Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid * chore(release): :rocket: v4.27.6 [skip ci] * fix: Fixes default image for recently requested items. (#4767) * chore(release): :rocket: v4.27.7 [skip ci] * refactor: Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. (#4769) * Upgrades nuget packages. Removes deprecated packages. Fixes build warnings. * Fixes the last few build warnings. * chore(release): :rocket: v4.27.8 [skip ci] * refactor: Rework the Plex Settings Page (#4772) [skip ci] * feat(plex): ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season (#4774) * chore(release): :rocket: v4.28.0 [skip ci] * 🌐 Translations Update (#4771) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * 🌐 Translations Update (#4775) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix: Reworked the version check (#4719) (#4781) [skip ci] * fix(plex): :bug: Fixed not being able to enable watchlist requests in the Plex settings * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.28.1 [skip ci] * feat: Provide a flag for missing users on Plex Server (#4688) (#4778) [skip ci] * fix: Unable to Delete Jellyfin Server (#4705) (#4780) [skip ci] * fix: Partially Available prevents further TV requests (#4768) (#4779) * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.29.0 [skip ci] * fix: Consistently reset loading flag when requesting movies on discover page. (#4777) [skip ci] * fix(sonarr): :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options #4782 * chore(release): :rocket: v4.29.1 [skip ci] * fix(plex): Fixed an issue where sometimes the availability checker would throw an exception when checking episodes * chore: fixed tests * chore(release): :rocket: v4.29.2 [skip ci] * fix: Only log error messages from Microsoft (#4787) [skip ci] * 🌐 Translations Update (#4784) * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] * fix(notifications): Fixed the Partially TV notifications going to the admin #4797 (#4799) * chore(release): :rocket: v4.29.3 [skip ci] * feat(sonarr): :sparkles: Add the username to a Sonarr tag when sent to Sonarr (#4802) * chore(release): :rocket: v4.30.0 [skip ci] * feat(sonarr): Added the ability to add default tags when sending to Sonarr (#4803) * chore(release): :rocket: v4.31.0 [skip ci] * fix(translations): 🌐 New translations from Crowdin [skip ci] (#4801) * feat(plex): Rework the Plex Settings page (#4805) * chore(release): :rocket: v4.32.0 [skip ci] * fix(plex): :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework * chore(release): :rocket: v4.32.1 [skip ci] * fix(sonarr): :bug: Sonarr V4 should work now (#4810) * fix(sonarr): :bug: Sonarr V4 should work now Auto detect the sonarr version and adjust the UI depending on V3 or V4 (Lang profiles) * fix: Fixed the load error * chore(release): :rocket: v4.32.2 [skip ci] * fix(sonarr): V4 actually works this time around * chore(release): :rocket: v4.32.3 [skip ci] * feat: Angular 15 and Dependency upgrades (#4818) * chore(release): :rocket: v4.33.0 [skip ci] * fix(plex): Added the watchlist request whole show back into the settings * chore: undid * fixed (#4833) * chore(release): :rocket: v4.33.1 [skip ci] * chore: add logo [skip ci] * feat: Radarr tags (#4815) * chore(release): :rocket: v4.34.0 [skip ci] * fix(plex-watchlist): Lookup the ID from different sources when Plex doesn't contain the metadata (#4843) * chore(release): :rocket: v4.34.1 [skip ci] * feat: Add the option for header authentication to create users (#4841) * feat: allow SSO to create new users automatically * feat: apply default user settings to SSO users * feat: add warnings to header auth toggles * chore(release): :rocket: v4.35.0 [skip ci] * fix(plex-watchlist): Index out of bounds error * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.1 [skip ci] * fix(database): Just some tweaks, shouldn't notice any difference, maybe a less error in the log * chore(release): :rocket: v4.35.2 [skip ci] * fix(#4847): Invalid Discord request fixed, also fixed an issue where App Only users would not show as logged in on the user management page (#4848) * chore(release): :rocket: v4.35.3 [skip ci] * bug(#4854): 🐛 Fixed the Recently Requested showing requests when it should be hidden * fix(discover): :bug: Fixed the default poster not taking into account the base url in some scenarios #4845 * fix(Hide music from navbar and request list when not enabled): :bug: * chore: :busts_in_silhouette: Updated Contributors [skip ci] * chore(release): :rocket: v4.35.4 [skip ci] * fix(radarr-settings): 🐛 Fixed a typo * chore(release): :rocket: v4.35.5 [skip ci] * fix: Fixed the issue where the login page is still present after logging in with oauth * chore(release): :rocket: v4.35.6 [skip ci] * fix(wizard): :bug: Stop access to the wizard when you have already setup ombi (#4866) * chore(release): :rocket: v4.35.7 [skip ci] * fix(plex-oauth): 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user #4835 * chore(release): :rocket: v4.35.8 [skip ci] * chore: :busts_in_silhouette: Updated Contributors [skip ci] * fixed bad merge * chore(release): :rocket: v4.35.9 [skip ci] * Update .gitignore * Fixed automation --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * chore(release): :rocket: v4.35.10 [skip ci] --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com> Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> * fix(emby): Fix Emby played sync running a full sync during recently added sync (#4932) * feat: Hide watched status when request is not available (#4934) * chore(release): :rocket: v4.39.0 [skip ci] * ignore flaky test --------- Signed-off-by: Jamie <tidusjar@gmail.com> [skip ci] Co-authored-by: contrib-readme-bot <contrib-readme-action@noreply.com> Co-authored-by: Conventional Changelog Action <conventional.changelog.action@github.com> Co-authored-by: sephrat <34862846+sephrat@users.noreply.github.com> Co-authored-by: dr3amer <91037083+dr3am37@users.noreply.github.com> Co-authored-by: echel0n <echel0n@sickrage.ca> Co-authored-by: Marley <55280588+marleypowell@users.noreply.github.com> Co-authored-by: Igor Borges <igor@borges.dev> Co-authored-by: Lucane <Lucane@users.noreply.github.com> Co-authored-by: mkgeeky <github@mkgeeky.xyz> Co-authored-by: Miguel A Vico Moya <mvicomoya@gmail.com> Co-authored-by: Hadrien <26697460+ketsapiwiq@users.noreply.github.com> Co-authored-by: Victor Usoltsev <bernarden@users.noreply.github.com> Co-authored-by: Wesley King <kingwe92@gmail.com> Co-authored-by: Lea <me@janderedev.xyz> Co-authored-by: ryan-c44 <54028283+ryan-c44@users.noreply.github.com> Co-authored-by: Alexander Russell <ajex94@gmail.com> Co-authored-by: Grygon <647846+Grygon@users.noreply.github.com> Co-authored-by: phildups7 <60622768+phildups7@users.noreply.github.com> Co-authored-by: Teifun2 <Teifun2@users.noreply.github.com>
2 years ago
</td>
<td align="center">
<a href="https://github.com/thegame3202">
<img src="https://avatars.githubusercontent.com/u/22148848?v=4" width="50;" alt="thegame3202"/>
<br />
<sub><b>Mike</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/zobe123">
<img src="https://avatars.githubusercontent.com/u/13840542?v=4" width="50;" alt="zobe123"/>
<br />
<sub><b>Zobe123</b></sub>
</a>
</td></tr>
</table>
<!-- readme: collaborators,contributors -end -->
# Donation
8 years ago
If you feel like donating you can donate with the below buttons!
6 years ago
[![Patreon](https://img.shields.io/badge/patreon-donate-yellow.svg)](https://patreon.com/tidusjar/Ombi)
[![Paypal](https://img.shields.io/badge/paypal-donate-yellow.svg)](https://paypal.me/PlexRequestsNet)
### A massive thanks to everyone for all their help!