diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 000000000..dfe94f0f0
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,35 @@
+---
+name: "\U0001F41B Bug report"
+about: Create a report to help us improve
+
+---
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Logs (Logs directory where Ombi is located)**
+If applicable, a snippet of the logs that seems relevant to the bug if present.
+
+**Desktop (please complete the following information):**
+ - OS: [e.g. iOS]
+
+**Ombi Version (please complete the following information):**
+ - Version [e.g. 4.0.958]
+- Media Server [e.g. Plex]
+- Database Type: SQLite (Please change if using MySQL)
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
deleted file mode 100644
index 95612ce32..000000000
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-name: "\U0001F41B Bug report"
-description: 'Report a reproducible bug in Ombi'
-body:
- - type: markdown
- attributes:
- value: Thanks for taking the time to file a bug report! Please fill out this form as completely as possible.
- - type: markdown
- attributes:
- value: |
- If you leave out sections there is a high likelihood your issue will be closed.
- If you have a question or you think your issue might be caused by your application code, you can get help from the community on [Discord](https://discord.gg/Sa7wNWb).
- - type: textarea
- attributes:
- label: Summary
- description: |
- Clearly describe what the expected behavior is vs. what is actually happening. Please include any reproduction steps that is required to reproduce this issue.
- If your summary is simply, for example: "I cannot setup Plex", then you will need to [continue debugging on your own](https://docs.ombi.app/) to more precisely define your issue before proceeding.
- validations:
- required: true
- - type: input
- id: version
- attributes:
- label: Ombi Version
- description: What version of ombi are you running?
- validations:
- required: true
- - type: dropdown
- attributes:
- label: What platform(s) does this occur on?
- multiple: true
- options:
- - Docker
- - Windows
- - Linux
- validations:
- required: true
- - type: dropdown
- attributes:
- label: What database are you using?
- options:
- - SQLite (Default)
- - MySQL
- validations:
- required: true
- - type: textarea
- id: logs
- attributes:
- label: Relevant log output
- description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
- render: shell
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index a90a3250f..a9da96171 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -3,8 +3,8 @@ contact_links:
- name: Docs
url: https://docs.ombi.app/
about: The Ombi documentation should help guide you through installation and setup as well as help resolve common problems and answer frequently asked questions
- - name: Discord support
- url: https://discord.gg/Sa7wNWb
+ - name: Reddit support
+ url: https://www.reddit.com/r/Ombi
about: Ask questions about Ombi
- name: Feature suggestions
url: https://ombifeatures.featureupvote.com
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 998b8387c..9dfe311bc 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -15,7 +15,7 @@ jobs:
node-version: '18'
- name: NodeModules Cache
- uses: actions/cache@v4
+ uses: actions/cache@v2
with:
path: '**/node_modules'
key: node_modules-${{ hashFiles('**/yarn.lock') }}
@@ -27,7 +27,7 @@ jobs:
run: yarn --cwd ./src/Ombi/ClientApp run build
- name: Publish UI Artifacts
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v2
with:
name: angular_dist
path: |
@@ -39,10 +39,10 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-dotnet@v1
with:
- dotnet-version: '8.0.x'
+ dotnet-version: '6.0.x'
- name: Nuget Cache
- uses: actions/cache@v4
+ uses: actions/cache@v2
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
@@ -84,10 +84,10 @@ jobs:
strategy:
matrix:
include:
- - os: win-x64
+ - os: win10-x64
format: zip
compression: zip
- - os: win-x86
+ - os: win10-x86
format: zip
compression: zip
- os: linux-x64
@@ -106,13 +106,13 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-dotnet@v1
with:
- dotnet-version: '8.0.x'
+ dotnet-version: '6.0.x'
- uses: actions/setup-dotnet@v1
with:
dotnet-version: '5.0.x'
- name: Nuget Cache
- uses: actions/cache@v4
+ uses: actions/cache@v2
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
@@ -130,7 +130,7 @@ jobs:
working-directory: src/Ombi
- name: Download Angular
- uses: actions/download-artifact@v4
+ uses: actions/download-artifact@v2
with:
name: angular_dist
path: ~/src/Ombi/dist
@@ -156,7 +156,7 @@ jobs:
directory: 'src/Ombi/${{ matrix.os }}'
- name: Publish Release
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v2
with:
name: ${{ matrix.os }}
path: |
@@ -170,7 +170,7 @@ jobs:
- name: Download Artifacts
id: download
- uses: actions/download-artifact@v4
+ uses: actions/download-artifact@v2
with:
path: artifacts
@@ -190,7 +190,7 @@ jobs:
if: contains(github.ref, 'develop')
with:
prerelease: true
- generate_release_notes: false
+ generate_release_notes: true
body: ${{ needs.versioning.outputs.changelog }}
name: ${{ needs.versioning.outputs.tag }}
tag_name: ${{ needs.versioning.outputs.tag }}
diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml
index d142c46c8..07f8a1a2b 100644
--- a/.github/workflows/chromatic.yml
+++ b/.github/workflows/chromatic.yml
@@ -1,47 +1,47 @@
-# name: 'Chromatic'
+name: 'Chromatic'
-# # Event for the workflow
-# on:
-# push:
-# workflow_dispatch:
+# Event for the workflow
+on:
+ push:
+ workflow_dispatch:
-# # List of jobs
-# jobs:
-# storybook-build:
-# # Operating System
-# runs-on: ubuntu-latest
-# steps:
-# - name: Checkout repository
-# uses: actions/checkout@v2
-# with:
-# fetch-depth: 0
+# List of jobs
+jobs:
+ storybook-build:
+ # Operating System
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
-# - name: NodeModules Cache
-# uses: actions/cache@v4
-# with:
-# path: '**/node_modules'
-# key: node_modules-${{ hashFiles('**/yarn.lock') }}
+ - name: NodeModules Cache
+ uses: actions/cache@v2
+ with:
+ path: '**/node_modules'
+ key: node_modules-${{ hashFiles('**/yarn.lock') }}
-# - name: Install dependencies
-# working-directory: ./src/Ombi/ClientApp
-# run: yarn
+ - name: Install dependencies
+ working-directory: ./src/Ombi/ClientApp
+ run: yarn
-# - name: Publish to Chromatic
-# if: github.ref != 'refs/heads/master'
-# uses: chromaui/action@v1
-# with:
-# projectToken: 7c47e1a1a4bd
-# exitZeroOnChanges: true
-# workingDir: ./src/Ombi/ClientApp
-# buildScriptName: storybookbuild
-# exitOnceUploaded: true
+ - name: Publish to Chromatic
+ if: github.ref != 'refs/heads/master'
+ uses: chromaui/action@v1
+ with:
+ projectToken: 7c47e1a1a4bd
+ exitZeroOnChanges: true
+ workingDir: ./src/Ombi/ClientApp
+ buildScriptName: storybookbuild
+ exitOnceUploaded: true
-# - name: Publish to Chromatic and auto accept changes
-# if: github.ref == 'refs/heads/develop'
-# uses: chromaui/action@v1
-# with:
-# projectToken: 7c47e1a1a4bd
-# autoAcceptChanges: true # 👈 Option to accept all changes
-# workingDir: ./src/Ombi/ClientApp
-# buildScriptName: storybookbuild
-# exitOnceUploaded: true
+ - name: Publish to Chromatic and auto accept changes
+ if: github.ref == 'refs/heads/develop'
+ uses: chromaui/action@v1
+ with:
+ projectToken: 7c47e1a1a4bd
+ autoAcceptChanges: true # 👈 Option to accept all changes
+ workingDir: ./src/Ombi/ClientApp
+ buildScriptName: storybookbuild
+ exitOnceUploaded: true
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index b67002361..8c870059c 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -37,7 +37,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
- uses: github/codeql-action/init@v3
+ uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -48,7 +48,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
- uses: github/codeql-action/autobuild@v3
+ uses: github/codeql-action/autobuild@v1
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -62,4 +62,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v3
+ uses: github/codeql-action/analyze@v1
diff --git a/.github/workflows/automation-tests.yml b/.github/workflows/cypress.yml
similarity index 83%
rename from .github/workflows/automation-tests.yml
rename to .github/workflows/cypress.yml
index 5c40edd58..1819502f6 100644
--- a/.github/workflows/automation-tests.yml
+++ b/.github/workflows/cypress.yml
@@ -24,7 +24,7 @@ jobs:
with:
node-version: '18'
- - uses: actions/cache@v4
+ - uses: actions/cache@v2
with:
path: |
'**/node_modules'
@@ -43,8 +43,8 @@ jobs:
- name: Run Docker Image
run: nohup docker run --rm -p 5000:5000 ombi &
- - name: Run Wiremock
- run: nohup docker run --rm -p 32400:8080 --name wiremock wiremock/wiremock:2.35.0 &
+ # - name: Run Wiremock Plex
+ # run: nohup docker run -it --rm -p 32400:8080 --name wiremock wiremock/wiremock:2.35.0
- name: Sleep for server to start
run: sleep 20
@@ -61,7 +61,7 @@ jobs:
# nohup dotnet run --project ./src/Ombi -- --host http://*:3577 &
- name: Cypress Tests
- uses: cypress-io/github-action@v4
+ uses: cypress-io/github-action@v2.8.2
with:
record: true
browser: chrome
@@ -73,9 +73,3 @@ jobs:
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Stop Docker
- if: always()
- run: |
- docker ps -q | xargs -I {} docker logs {}
- docker container kill $(docker ps -q)
\ No newline at end of file
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index 5a0e0a46d..db9e49f86 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -20,7 +20,7 @@ jobs:
node-version: '18'
- name: NodeModules Cache
- uses: actions/cache@v4
+ uses: actions/cache@v2
with:
path: '**/node_modules'
key: node_modules-${{ hashFiles('**/yarn.lock') }}
@@ -33,15 +33,15 @@ jobs:
unit-test:
runs-on: ubuntu-latest
-
+
steps:
- uses: actions/checkout@v2
- uses: actions/setup-dotnet@v1
with:
- dotnet-version: '8.0.x'
+ dotnet-version: '6.0.x'
- name: Nuget Cache
- uses: actions/cache@v4
+ uses: actions/cache@v2
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
@@ -76,10 +76,10 @@ jobs:
strategy:
matrix:
include:
- - os: win-x64
+ - os: win10-x64
format: zip
compression: zip
- - os: win-x86
+ - os: win10-x86
format: zip
compression: zip
- os: linux-x64
@@ -98,10 +98,10 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-dotnet@v1
with:
- dotnet-version: '8.0.x'
+ dotnet-version: '6.0.x'
- name: Nuget Cache
- uses: actions/cache@v4
+ uses: actions/cache@v2
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
diff --git a/.gitignore b/.gitignore
index 143b2fc13..a57df90cb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,7 +7,7 @@
*.userosscache
*.sln.docstates
-# User-specific files
+# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
@@ -252,4 +252,4 @@ _Pvt_Extensions
/src/Ombi/healthchecksdb
/src/Ombi/ClientApp/package-lock.json
/src/Ombi.Core/Properties/launchSettings.json
-.yarn
+.yarn
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 115942b8b..94781be42 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,711 +1,3 @@
-## [4.49.3](https://github.com/Ombi-app/Ombi/compare/v4.49.2...v4.49.3) (2025-08-17)
-
-
-### Bug Fixes
-
-* **plex-api:** update Plex Watchlist URL ([11fd7a5](https://github.com/Ombi-app/Ombi/commit/11fd7a5fc853da75974a16bf4fdecd72a836f54b))
-
-
-
-## [4.49.2](https://github.com/Ombi-app/Ombi/compare/v4.49.1...v4.49.2) (2025-07-12)
-
-
-### Performance Improvements
-
-* **discover:** :zap: Improve the loading performance on the discover page ([97d5167](https://github.com/Ombi-app/Ombi/commit/97d5167db6c9f915021f32b96b281d7db3741d7f))
-
-
-
-## [4.49.1](https://github.com/Ombi-app/Ombi/compare/v4.49.0...v4.49.1) (2025-07-12)
-
-
-### Bug Fixes
-
-* **auth:** Fixed an issue where refreshing the page as a power user would stop the application from loading [#5242](https://github.com/Ombi-app/Ombi/issues/5242) ([cee4014](https://github.com/Ombi-app/Ombi/commit/cee40146ee02f7fb79e2019d6fe2f9d5c5dbdfc8))
-
-
-
-# [4.49.0](https://github.com/Ombi-app/Ombi/compare/v4.48.5...v4.49.0) (2025-07-11)
-
-
-### Features
-
-* Added the ability for the Watchlist to automatically refresh the users token. This will reduce the need for the user to log in ([067c029](https://github.com/Ombi-app/Ombi/commit/067c029f42e9fd853d060fdb2093013b15ac14c0))
-
-
-
-## [4.48.5](https://github.com/Ombi-app/Ombi/compare/v4.48.4...v4.48.5) (2025-05-14)
-
-
-### Bug Fixes
-
-* filter out excluded notification agents from user preferences ([c9ab4f4](https://github.com/Ombi-app/Ombi/commit/c9ab4f4f9faa66dbf263da693db1eefcf68beeec)), closes [#5196](https://github.com/Ombi-app/Ombi/issues/5196)
-
-
-
-## [4.48.4](https://github.com/Ombi-app/Ombi/compare/v4.48.3...v4.48.4) (2025-05-14)
-
-
-### Bug Fixes
-
-* **translations:** 🌐 New translations from Crowdin [skip ci] ([dbbfdd9](https://github.com/Ombi-app/Ombi/commit/dbbfdd926f0808f6d16f0b2cd8b5406e6b610c82))
-* **translations:** 🌐 New translations from Crowdin [skip ci] ([53a6a09](https://github.com/Ombi-app/Ombi/commit/53a6a092b14b8b8bdbff95d066926d3dbe6951f4))
-* **ui:** correct timezone handling in OmbiDatePipe ([f88c5ad](https://github.com/Ombi-app/Ombi/commit/f88c5ad818fadea7064e7dfbe46f07eae855109a)), closes [#5102](https://github.com/Ombi-app/Ombi/issues/5102)
-
-
-
-## [4.48.3](https://github.com/Ombi-app/Ombi/compare/v4.48.2...v4.48.3) (2025-05-14)
-
-
-### Bug Fixes
-
-* Correct 4K movie request existence check ([ba6e708](https://github.com/Ombi-app/Ombi/commit/ba6e708e189f52f2ff4ebc073fa38a4f53f1061c)), closes [#4798](https://github.com/Ombi-app/Ombi/issues/4798)
-
-
-
-## [4.48.2](https://github.com/Ombi-app/Ombi/compare/v4.48.1...v4.48.2) (2025-05-14)
-
-
-### Bug Fixes
-
-* **radarr:** ensure RequestedUser is loaded when creating tags ([f8658fe](https://github.com/Ombi-app/Ombi/commit/f8658fe6d56488aa5caa68093245cbf021a31810)), closes [#5045](https://github.com/Ombi-app/Ombi/issues/5045)
-
-
-
-## [4.48.1](https://github.com/Ombi-app/Ombi/compare/v4.48.0...v4.48.1) (2025-05-14)
-
-
-
-# [4.48.0](https://github.com/Ombi-app/Ombi/compare/v4.47.3...v4.48.0) (2025-05-14)
-
-
-### Features
-
-* added the watchlist notification ([0dfd453](https://github.com/Ombi-app/Ombi/commit/0dfd4533dba01cb04ea2217c020de8833ddf39c6))
-
-
-
-## [4.47.3](https://github.com/Ombi-app/Ombi/compare/v4.47.2...v4.47.3) (2025-04-13)
-
-
-### Bug Fixes
-
-* [#5223](https://github.com/Ombi-app/Ombi/issues/5223) ([cf0c161](https://github.com/Ombi-app/Ombi/commit/cf0c1614a496b4f7cf19d78e885c3e37dae5cf0f))
-
-
-
-## [4.47.2](https://github.com/Ombi-app/Ombi/compare/v4.47.0...v4.47.2) (2025-03-11)
-
-
-### Bug Fixes
-
-* **user-import:** Do not import users that do not have access to the server [#5064](https://github.com/Ombi-app/Ombi/issues/5064) ([a801cfd](https://github.com/Ombi-app/Ombi/commit/a801cfdb0946cbee3c35b7e917a240f69020f221))
-
-
-
-# [4.47.0](https://github.com/Ombi-app/Ombi/compare/v4.46.8...v4.47.0) (2025-01-03)
-
-
-### Features
-
-* **wizard:** :sparkles: Added the ability to start with a different database ([#5208](https://github.com/Ombi-app/Ombi/issues/5208)) ([cc98fc6](https://github.com/Ombi-app/Ombi/commit/cc98fc6aca27111a8afc3b7b5b8e53207b73fe15))
-
-
-
-## [4.46.8](https://github.com/Ombi-app/Ombi/compare/v4.46.7...v4.46.8) (2025-01-03)
-
-
-### Bug Fixes
-
-* **radarr-settings:** this.normalForm is undefined ([#5207](https://github.com/Ombi-app/Ombi/issues/5207)) ([dc2b958](https://github.com/Ombi-app/Ombi/commit/dc2b958915bf6cb77e093ada843ef6d9f62a3755)), closes [#4994](https://github.com/Ombi-app/Ombi/issues/4994)
-
-
-
-## [4.46.7](https://github.com/Ombi-app/Ombi/compare/v4.46.6...v4.46.7) (2024-12-03)
-
-
-### Bug Fixes
-
-* **requests:** :bug: Power users can now set profiles and root folders when requesting ([138df1e](https://github.com/Ombi-app/Ombi/commit/138df1eb25c709c1939d01d4c9f9ece63f8e0fde))
-
-
-
-## [4.46.6](https://github.com/Ombi-app/Ombi/compare/v4.46.5...v4.46.6) (2024-11-24)
-
-
-
-## [4.46.5](https://github.com/Ombi-app/Ombi/compare/v4.46.4...v4.46.5) (2024-11-23)
-
-
-### Bug Fixes
-
-* **Fixed the UI not applying the correct timezone settings:** :bug: ([029ea79](https://github.com/Ombi-app/Ombi/commit/029ea7919220fbc506898733caeb4370053051a7))
-
-
-
-## [4.46.4](https://github.com/Ombi-app/Ombi/compare/v4.46.3...v4.46.4) (2024-09-09)
-
-
-
-## [4.46.3](https://github.com/Ombi-app/Ombi/compare/v4.46.2...v4.46.3) (2024-09-07)
-
-
-### Bug Fixes
-
-* **radarr-4k:** :bug: Fixed an issue where the overrides wouldn't work for 4k Requests ([0fb29a0](https://github.com/Ombi-app/Ombi/commit/0fb29a0b16b1fc87f71df1a589f6141324cf2f1b))
-
-
-
-## [4.46.2](https://github.com/Ombi-app/Ombi/compare/v4.46.1...v4.46.2) (2024-09-03)
-
-
-### Bug Fixes
-
-* **radarr:** :bug: Enable validation on the radarr settings page ([0af3511](https://github.com/Ombi-app/Ombi/commit/0af3511e819d24e0f4edf6f33931e61bba743224))
-
-
-
-## [4.46.1](https://github.com/Ombi-app/Ombi/compare/v4.46.0...v4.46.1) (2024-08-27)
-
-
-### Bug Fixes
-
-* src/Ombi.Notifications/Ombi.Notifications.csproj to reduce vulnerabilities ([#5167](https://github.com/Ombi-app/Ombi/issues/5167)) ([e1f2a84](https://github.com/Ombi-app/Ombi/commit/e1f2a848065d79c8bba9eafff4f1f5db4a994b53))
-
-
-
-# [4.46.0](https://github.com/Ombi-app/Ombi/compare/v4.45.1...v4.46.0) (2024-08-20)
-
-
-### Bug Fixes
-
-* **discover:** Improved rendering on the discover page ([ea00d6c](https://github.com/Ombi-app/Ombi/commit/ea00d6c12f4441da243287d0fbc706d66c0afd82))
-* src/Ombi.Store/Ombi.Store.csproj to reduce vulnerabilities ([#5160](https://github.com/Ombi-app/Ombi/issues/5160)) ([9c21074](https://github.com/Ombi-app/Ombi/commit/9c2107418939ee92e50c59765481f30efac12eff))
-
-
-### Features
-
-* upgrade @ngx-translate/core from 14.0.0 to 15.0.0 ([#5158](https://github.com/Ombi-app/Ombi/issues/5158)) ([48d3dec](https://github.com/Ombi-app/Ombi/commit/48d3dec26d36002a9d613432fb7f9232d8801cba))
-* upgrade @ngx-translate/http-loader from 7.0.0 to 8.0.0 ([#5159](https://github.com/Ombi-app/Ombi/issues/5159)) ([3bd98c1](https://github.com/Ombi-app/Ombi/commit/3bd98c1d711786bff66f1528dcdddcafe256abd2))
-
-
-
-## [4.45.1](https://github.com/Ombi-app/Ombi/compare/v4.45.0...v4.45.1) (2024-08-20)
-
-
-### Bug Fixes
-
-* **plex:** Fixed some errors around the scanner that was causing the scan to fail ([d9787dc](https://github.com/Ombi-app/Ombi/commit/d9787dc32aace808d196f6f87456ef45de3d7bbf))
-
-
-
-# [4.45.0](https://github.com/Ombi-app/Ombi/compare/v4.44.1...v4.45.0) (2024-08-07)
-
-
-
-# [4.44.0](https://github.com/Ombi-app/Ombi/compare/v4.43.22...v4.44.0) (2024-07-11)
-
-
-### Features
-
-* Adding postgres support to ombi (beta) ([#5050](https://github.com/Ombi-app/Ombi/issues/5050)) ([f8c6102](https://github.com/Ombi-app/Ombi/commit/f8c61027bf53d657d7955a98b69d7ab90b66a75a))
-
-
-
-## [4.43.22](https://github.com/Ombi-app/Ombi/compare/v4.43.21...v4.43.22) (2024-07-08)
-
-
-
-## [4.43.21](https://github.com/Ombi-app/Ombi/compare/v4.43.20...v4.43.21) (2024-06-26)
-
-
-
-## [4.43.20](https://github.com/Ombi-app/Ombi/compare/v4.43.16...v4.43.20) (2024-05-14)
-
-
-### Bug Fixes
-
-* upgrade multiple dependencies with Snyk ([#5104](https://github.com/Ombi-app/Ombi/issues/5104)) [skip ci] ([a1083f6](https://github.com/Ombi-app/Ombi/commit/a1083f67c73c968b9ff0a0feebe5a9aac6a7c7c9))
-
-
-
-## [4.43.16](https://github.com/Ombi-app/Ombi/compare/v4.43.15...v4.43.16) (2024-04-01)
-
-
-
-## [4.43.15](https://github.com/Ombi-app/Ombi/compare/v4.43.14...v4.43.15) (2024-03-30)
-
-
-### Bug Fixes
-
-* fixed emails not being able to load the template ([6b49d9b](https://github.com/Ombi-app/Ombi/commit/6b49d9bc7108a0b663ca05de19dbf4841c9c43c1))
-
-
-
-## [4.43.14](https://github.com/Ombi-app/Ombi/compare/v4.43.13...v4.43.14) (2024-03-06)
-
-
-### Performance Improvements
-
-* ⚡ Improve render performance on the discover, movie and tv pages ([#5084](https://github.com/Ombi-app/Ombi/issues/5084)) ([71c86a8](https://github.com/Ombi-app/Ombi/commit/71c86a8db9e63bf0ab779f9a8b5d62a42c246392))
-
-
-
-## [4.43.13](https://github.com/Ombi-app/Ombi/compare/v4.43.12...v4.43.13) (2024-03-05)
-
-
-
-## [4.43.12](https://github.com/Ombi-app/Ombi/compare/v4.43.11...v4.43.12) (2024-03-05)
-
-
-### Bug Fixes
-
-* src/Ombi/ClientApp/package.json & src/Ombi/ClientApp/yarn.lock to reduce vulnerabilities ([#5040](https://github.com/Ombi-app/Ombi/issues/5040)) [skip ci] ([955a742](https://github.com/Ombi-app/Ombi/commit/955a742fae1d0a3983c59cf77eb1a2d222f18b48))
-* src/Ombi/ClientApp/package.json & src/Ombi/ClientApp/yarn.lock to reduce vulnerabilities ([#5072](https://github.com/Ombi-app/Ombi/issues/5072)) [skip ci] ([af6a986](https://github.com/Ombi-app/Ombi/commit/af6a9867719deb7b651a6a78352a8ce0df7a0cf0))
-* src/Ombi/Ombi.csproj to reduce vulnerabilities ([#5066](https://github.com/Ombi-app/Ombi/issues/5066)) [skip ci] ([71df058](https://github.com/Ombi-app/Ombi/commit/71df05886512b8589f193a5cda0166c694438fc0))
-* upgrade @fortawesome/fontawesome-free from 6.4.2 to 6.5.0 ([#5053](https://github.com/Ombi-app/Ombi/issues/5053)) [skip ci] ([5017e38](https://github.com/Ombi-app/Ombi/commit/5017e38f87e32821adb744935fffcb2d76927e2c))
-* upgrade @types/jquery from 3.5.27 to 3.5.28 ([#5049](https://github.com/Ombi-app/Ombi/issues/5049)) [skip ci] ([2c8fe80](https://github.com/Ombi-app/Ombi/commit/2c8fe8087aea227e7425e82392ad9ccb3f8261b4))
-* upgrade moment from 2.29.4 to 2.30.1 ([#5075](https://github.com/Ombi-app/Ombi/issues/5075)) [skip ci] ([460fa39](https://github.com/Ombi-app/Ombi/commit/460fa39bb95c73bafcd65fcc394fecca04d3ac49))
-* upgrade multiple dependencies with Snyk ([#5073](https://github.com/Ombi-app/Ombi/issues/5073)) [skip ci] ([a27b459](https://github.com/Ombi-app/Ombi/commit/a27b4592471c58fca9ad5193b979171fa7c5e66d))
-
-
-
-## [4.43.11](https://github.com/Ombi-app/Ombi/compare/v4.43.10...v4.43.11) (2024-01-11)
-
-
-### Bug Fixes
-
-* **emby:** Add more logging on the PlaySync to check for Tv Shows without a valid TMDB ([08eb13b](https://github.com/Ombi-app/Ombi/commit/08eb13b788582d576a0e1befdb8e84ef7ff0d2f3))
-
-
-
-## [4.43.10](https://github.com/Ombi-app/Ombi/compare/v4.43.9...v4.43.10) (2023-11-20)
-
-
-### Bug Fixes
-
-* **radarr-4k:** 🐛 Fixed an issue when using Radarr 4k with user set quality profiles. There are now user quality profiles for 4k profile [#5025](https://github.com/Ombi-app/Ombi/issues/5025) ([62b9a1f](https://github.com/Ombi-app/Ombi/commit/62b9a1f65fc4ee5f1eaf9dfabf37742a9007433e))
-
-
-
-## [4.43.9](https://github.com/Ombi-app/Ombi/compare/v4.43.8...v4.43.9) (2023-11-18)
-
-
-### Bug Fixes
-
-* **sonarr:** 🐛 Correctly monitor episodes ([57e7830](https://github.com/Ombi-app/Ombi/commit/57e7830f8e54b65ce3c1f0b122cbcc517d1af926))
-
-
-
-## [4.43.8](https://github.com/Ombi-app/Ombi/compare/v4.43.7...v4.43.8) (2023-11-09)
-
-
-
-## [4.43.7](https://github.com/Ombi-app/Ombi/compare/v4.43.6...v4.43.7) (2023-11-09)
-
-
-### Bug Fixes
-
-* upgrade @microsoft/signalr from 6.0.22 to 6.0.23 ([#5032](https://github.com/Ombi-app/Ombi/issues/5032)) [skip ci] ([11edac9](https://github.com/Ombi-app/Ombi/commit/11edac961b0b828658be83a9c4e67079345d3b0b))
-* upgrade @types/jquery from 3.5.22 to 3.5.23 ([#5034](https://github.com/Ombi-app/Ombi/issues/5034)) [skip ci] ([9e28879](https://github.com/Ombi-app/Ombi/commit/9e28879fc1a479e1bd77ca003e3e748fec27f081))
-
-
-
-## [4.43.6](https://github.com/Ombi-app/Ombi/compare/v4.43.5...v4.43.6) (2023-11-01)
-
-
-### Bug Fixes
-
-* **discord:** 🐛 Fixed an issue where the Icon in the discord notifications wouldn't apply ([32da949](https://github.com/Ombi-app/Ombi/commit/32da949a9547f68c57eb4338f749228b7de167c2))
-* src/Ombi/ClientApp/package.json & src/Ombi/ClientApp/yarn.lock to reduce vulnerabilities ([#5010](https://github.com/Ombi-app/Ombi/issues/5010)) [skip ci] ([9c2e1b4](https://github.com/Ombi-app/Ombi/commit/9c2e1b435305d51cc9ab7f5d6932ccd3fa723e6c))
-* upgrade @fortawesome/fontawesome-free from 6.4.0 to 6.4.2 ([#5005](https://github.com/Ombi-app/Ombi/issues/5005)) [skip ci] ([f703ff2](https://github.com/Ombi-app/Ombi/commit/f703ff255cf389a60bdece824214d38f57f03f90))
-* upgrade @microsoft/signalr from 6.0.18 to 6.0.20 ([#4999](https://github.com/Ombi-app/Ombi/issues/4999)) [skip ci] ([563a044](https://github.com/Ombi-app/Ombi/commit/563a0443ea09ff71c5aa740173b4f3c5627cb543))
-* upgrade @microsoft/signalr from 6.0.21 to 6.0.22 ([#5020](https://github.com/Ombi-app/Ombi/issues/5020)) ([1261a44](https://github.com/Ombi-app/Ombi/commit/1261a446e7ffa4d7540623f76ecc9d7e643ca4ce))
-* upgrade @types/jquery from 3.5.16 to 3.5.17 ([#5011](https://github.com/Ombi-app/Ombi/issues/5011)) [skip ci] ([40ee175](https://github.com/Ombi-app/Ombi/commit/40ee175ccd6e53b1254833163954b6a1be0d5251))
-* upgrade @types/jquery from 3.5.18 to 3.5.19 ([#5022](https://github.com/Ombi-app/Ombi/issues/5022)) ([291425e](https://github.com/Ombi-app/Ombi/commit/291425e6091d90ac07010ff65cc3a53309965546))
-* upgrade cypress-real-events from 1.10.0 to 1.10.1 ([#5014](https://github.com/Ombi-app/Ombi/issues/5014)) ([ed06c22](https://github.com/Ombi-app/Ombi/commit/ed06c22fb26fb605b857f3f8e1b26b2dbab15710))
-* upgrade cypress-real-events from 1.8.1 to 1.9.1 ([#5000](https://github.com/Ombi-app/Ombi/issues/5000)) [skip ci] ([19e0a88](https://github.com/Ombi-app/Ombi/commit/19e0a886ced344bfe6284f3916fba12826b7de08))
-* upgrade jquery from 3.7.0 to 3.7.1 ([#5015](https://github.com/Ombi-app/Ombi/issues/5015)) ([7bc915c](https://github.com/Ombi-app/Ombi/commit/7bc915cc14ed27ad0f35142279f9362e5b7b27b8))
-* upgrade multiple dependencies with Snyk ([#5030](https://github.com/Ombi-app/Ombi/issues/5030)) ([7e1e254](https://github.com/Ombi-app/Ombi/commit/7e1e254cfe6c84c1f143388f436d63efd4686e55))
-* upgrade zone.js from 0.13.1 to 0.13.2 ([#5019](https://github.com/Ombi-app/Ombi/issues/5019)) ([c5c8dda](https://github.com/Ombi-app/Ombi/commit/c5c8dda7e4f744fa47841efba9f0e8fee9ef67c6))
-
-
-
-## [4.43.4](https://github.com/Ombi-app/Ombi/compare/v4.43.3...v4.43.4) (2023-07-28)
-
-
-### Bug Fixes
-
-* **user-importer:** Fixed not importing all correct users [#4989](https://github.com/Ombi-app/Ombi/issues/4989) ([34c32f8](https://github.com/Ombi-app/Ombi/commit/34c32f8338705ea3f790d95b91c9ada21a41b9f2))
-
-
-
-## [4.43.3](https://github.com/Ombi-app/Ombi/compare/v4.43.2...v4.43.3) (2023-07-28)
-
-
-### Bug Fixes
-
-* switch back to the old plex friends API [#4989](https://github.com/Ombi-app/Ombi/issues/4989) ([c8ad12e](https://github.com/Ombi-app/Ombi/commit/c8ad12eb5f53889609d1793ae907afd33ba6ef38))
-
-
-
-## [4.43.2](https://github.com/Ombi-app/Ombi/compare/v4.43.1...v4.43.2) (2023-07-19)
-
-
-### Bug Fixes
-
-* **plex-api:** Switch over to the new API to avoid deprecation & save… ([#4986](https://github.com/Ombi-app/Ombi/issues/4986)) ([2f2d35e](https://github.com/Ombi-app/Ombi/commit/2f2d35ec867a8e5488e368db294bd37bcf92d843))
-* Remove old trending source ([#4987](https://github.com/Ombi-app/Ombi/issues/4987)) ([aacaa3e](https://github.com/Ombi-app/Ombi/commit/aacaa3e140b43f5d196da612f785cc4451717752))
-
-
-
-## [4.43.1](https://github.com/Ombi-app/Ombi/compare/v4.43.0...v4.43.1) (2023-07-16)
-
-
-### Bug Fixes
-
-* **user-importer:** don't delete admins in the cleanup ([895b9bf](https://github.com/Ombi-app/Ombi/commit/895b9bf6a060a678d4b0cca8083aa96c38e47b95))
-
-
-
-# [4.43.0](https://github.com/Ombi-app/Ombi/compare/v4.42.3...v4.43.0) (2023-07-14)
-
-
-### Features
-
-* Add Auto Approve 4K role ([#4982](https://github.com/Ombi-app/Ombi/issues/4982)) ([#4983](https://github.com/Ombi-app/Ombi/issues/4983)) ([ac05495](https://github.com/Ombi-app/Ombi/commit/ac054954254b9d77a42e057f1065570c7fdc1093)), closes [#4957](https://github.com/Ombi-app/Ombi/issues/4957)
-
-
-
-## [4.42.3](https://github.com/Ombi-app/Ombi/compare/v4.42.2...v4.42.3) (2023-07-13)
-
-
-### Bug Fixes
-
-* **user-importer:** Do not delete the Plex Admin as part of the user Importer cleanup [#4870](https://github.com/Ombi-app/Ombi/issues/4870) ([#4981](https://github.com/Ombi-app/Ombi/issues/4981)) ([4e80e7b](https://github.com/Ombi-app/Ombi/commit/4e80e7b7c3239a46a645ab6d1054993734ad4dd6))
-
-
-
-## [4.42.2](https://github.com/Ombi-app/Ombi/compare/v4.42.1...v4.42.2) (2023-07-03)
-
-
-### Bug Fixes
-
-* Remove Angular TSLint ([#4973](https://github.com/Ombi-app/Ombi/issues/4973)) ([93969b5](https://github.com/Ombi-app/Ombi/commit/93969b5a2d82f442299bee418fae43cb590d7743))
-* upgrade jquery from 3.6.1 to 3.7.0 ([#4974](https://github.com/Ombi-app/Ombi/issues/4974)) ([f2552ef](https://github.com/Ombi-app/Ombi/commit/f2552ef6ede011080a8d5499e11930c4d41d04c2))
-* upgrade multiple dependencies with Snyk ([#4961](https://github.com/Ombi-app/Ombi/issues/4961)) ([3c3edf6](https://github.com/Ombi-app/Ombi/commit/3c3edf6273fa98c420989ebcebfee52b2545e402))
-* upgrade zone.js from 0.11.8 to 0.13.0 ([#4975](https://github.com/Ombi-app/Ombi/issues/4975)) ([37f6564](https://github.com/Ombi-app/Ombi/commit/37f65648a2f8742020b0954acec4168aee048942))
-
-
-
-## [4.42.1](https://github.com/Ombi-app/Ombi/compare/v4.42.0...v4.42.1) (2023-06-20)
-
-
-### Bug Fixes
-
-* More automation tests mainly around the Plex Settings page ([#4821](https://github.com/Ombi-app/Ombi/issues/4821)) ([21bfc5a](https://github.com/Ombi-app/Ombi/commit/21bfc5a45adf6da6a80854e19494a8ffdc9c0761))
-* src/Ombi.Notifications/Ombi.Notifications.csproj to reduce vulnerabilities ([#4969](https://github.com/Ombi-app/Ombi/issues/4969)) [skip ci] ([8584ad4](https://github.com/Ombi-app/Ombi/commit/8584ad46053c51f5da40b24f3efd1b9e5a031ddd))
-* upgrade @fortawesome/fontawesome-free from 6.1.2 to 6.4.0 ([#4965](https://github.com/Ombi-app/Ombi/issues/4965)) [skip ci] ([84454e5](https://github.com/Ombi-app/Ombi/commit/84454e53c00c808e8a393c7750bdc418a7593e91))
-* upgrade @microsoft/signalr from 6.0.11 to 6.0.16 ([#4964](https://github.com/Ombi-app/Ombi/issues/4964)) [skip ci] ([a0201e3](https://github.com/Ombi-app/Ombi/commit/a0201e3f585dc52f717e33c46ede35a4eccac736))
-* upgrade cypress-real-events from 1.7.4 to 1.8.1 ([#4968](https://github.com/Ombi-app/Ombi/issues/4968)) [skip ci] ([8a24b56](https://github.com/Ombi-app/Ombi/commit/8a24b56299c3bc98bf0d719ba448972aaa7f7461))
-* upgrade multiple dependencies with Snyk ([#4963](https://github.com/Ombi-app/Ombi/issues/4963)) [skip ci] ([6025c5e](https://github.com/Ombi-app/Ombi/commit/6025c5ed757438d3a5d79bd36fd789ef0297ce70))
-* upgrade primeng from 15.0.0-rc.1 to 15.4.1 ([#4962](https://github.com/Ombi-app/Ombi/issues/4962)) [skip ci] ([23a4fed](https://github.com/Ombi-app/Ombi/commit/23a4fede69898a25b342aed78a8cda553c1fd18d))
-
-
-
-# [4.42.0](https://github.com/Ombi-app/Ombi/compare/v4.41.1...v4.42.0) (2023-06-02)
-
-
-### Bug Fixes
-
-* **translations:** 🌐 New translations from Crowdin [skip ci] ([#4926](https://github.com/Ombi-app/Ombi/issues/4926)) ([151efe1](https://github.com/Ombi-app/Ombi/commit/151efe19d0012b85f317c175da5ab4802ea14e20))
-
-
-### Features
-
-* **emby:** Show watched status for TV requests ([1f37de0](https://github.com/Ombi-app/Ombi/commit/1f37de08888812b6d130d92bb664a89e89149105))
-
-
-
-## [4.41.1](https://github.com/Ombi-app/Ombi/compare/v4.41.0...v4.41.1) (2023-05-27)
-
-
-
-# [4.41.0](https://github.com/Ombi-app/Ombi/compare/v4.40.0...v4.41.0) (2023-05-27)
-
-
-### Bug Fixes
-
-* Fix various styling issues ([#4935](https://github.com/Ombi-app/Ombi/issues/4935)) ([90b934a](https://github.com/Ombi-app/Ombi/commit/90b934a36996c0f489096f3641350a1c0d3b7c89))
-
-
-### Features
-
-* **emby:** Show end-user external IP address to Emby when logging in as an Emby user ([#4949](https://github.com/Ombi-app/Ombi/issues/4949)) ([79cef7e](https://github.com/Ombi-app/Ombi/commit/79cef7e0f8643e36536a9ea84dd1a07c232403a9)), closes [#4947](https://github.com/Ombi-app/Ombi/issues/4947)
-
-
-
-# [4.40.0](https://github.com/Ombi-app/Ombi/compare/v4.39.1...v4.40.0) (2023-05-18)
-
-
-
-# [4.39.0](https://github.com/Ombi-app/Ombi/compare/v4.35.11...v4.39.0) (2023-05-17)
-
-
-### Bug Fixes
-
-* **emby:** Fix Emby played sync running a full sync during recently added sync ([#4932](https://github.com/Ombi-app/Ombi/issues/4932)) ([9424586](https://github.com/Ombi-app/Ombi/commit/9424586e9c1b622b6475aeb8ee3cf4a8f346da6e))
-
-
-### Features
-
-* Hide watched status when request is not available ([#4934](https://github.com/Ombi-app/Ombi/issues/4934)) ([82c7f1c](https://github.com/Ombi-app/Ombi/commit/82c7f1c44fd7c87d57cc2b0c34a10fcda7628f4e))
-
-
-
-## [4.38.2](https://github.com/Ombi-app/Ombi/compare/v4.38.1...v4.38.2) (2023-05-17)
-
-
-
-## [4.38.1](https://github.com/Ombi-app/Ombi/compare/v4.38.0...v4.38.1) (2023-05-09)
-
-
-### Bug Fixes
-
-* **API:** Allow RequestOnBehalf rights if requested from the API ([#4919](https://github.com/Ombi-app/Ombi/issues/4919)) ([bb6dedd](https://github.com/Ombi-app/Ombi/commit/bb6deddfaecb3d6c7c3c6970414444b619bb9106))
-* **notificaitons:** Add the RequestedByAlias field to the Notification Message ([7e9c8be](https://github.com/Ombi-app/Ombi/commit/7e9c8bec6b02bb4e11f8db50394e493d4dd07723))
-
-
-
-# [4.38.0](https://github.com/Ombi-app/Ombi/compare/v4.37.3...v4.38.0) (2023-05-07)
-
-
-### Bug Fixes
-
-* remove sort header ([969bc7b](https://github.com/Ombi-app/Ombi/commit/969bc7bb25ea900ab9199509b079b36843e5bd6f))
-
-
-### Features
-
-* **emby:** Show watched status for Movie requests ([9cfb10b](https://github.com/Ombi-app/Ombi/commit/9cfb10bb1ee69067a6f47bd2c8a72d4e6834350e))
-
-
-
-## [4.37.3](https://github.com/Ombi-app/Ombi/compare/v4.37.2...v4.37.3) (2023-05-07)
-
-
-### Bug Fixes
-
-* Show the ApiAlias in the requests-list ([9ff624c](https://github.com/Ombi-app/Ombi/commit/9ff624ce4646815b239fbb8327117947f0a90e4b))
-
-
-
-## [4.37.2](https://github.com/Ombi-app/Ombi/compare/v4.37.1...v4.37.2) (2023-05-03)
-
-
-### Bug Fixes
-
-* **jellyfin:** Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails ([0e5e0ad](https://github.com/Ombi-app/Ombi/commit/0e5e0adf862701d0f672beff14ec0aa75e4b5220))
-
-
-
-## [4.37.1](https://github.com/Ombi-app/Ombi/compare/v4.37.0...v4.37.1) (2023-05-02)
-
-
-### Bug Fixes
-
-* Cron Validation ([#4842](https://github.com/Ombi-app/Ombi/issues/4842)) ([97cc42f](https://github.com/Ombi-app/Ombi/commit/97cc42ffa8672e7d0d0996b5fbda7f7fe699da2d))
-* **discover:** :children_crossing: Improved the new Genre buttons, it now includes TV results ([b087d60](https://github.com/Ombi-app/Ombi/commit/b087d606ff36565208e564f8856903f2a4098db5))
-* **lidarr:** Change monitor to Existing to properly add artist [#3597](https://github.com/Ombi-app/Ombi/issues/3597) ([506f607](https://github.com/Ombi-app/Ombi/commit/506f60773bf1031d0be51ccd34289b855a04ea40)), closes [/github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055](https://github.com//github.com/Lidarr/Lidarr/issues/3597/issues/issuecomment-1530804055)
-
-
-
-# [4.37.0](https://github.com/Ombi-app/Ombi/compare/v4.36.1...v4.37.0) (2023-04-24)
-
-
-### Features
-
-* Search by genre ([1837419](https://github.com/Ombi-app/Ombi/commit/18374198f9f2462ba85c5781b0fcc05892728b21))
-
-
-
-## [4.36.1](https://github.com/Ombi-app/Ombi/compare/v4.36.0...v4.36.1) (2023-04-20)
-
-
-### Bug Fixes
-
-* **healthchecks:** Removed redundant ping check ([1751305](https://github.com/Ombi-app/Ombi/commit/1751305064176d2c0135f867773ccc46b03915ec))
-
-
-
-# [4.36.0](https://github.com/Ombi-app/Ombi/compare/v4.35.19...v4.36.0) (2023-04-20)
-
-
-### Features
-
-* **discover:** Add deny option to recently requested ([#4907](https://github.com/Ombi-app/Ombi/issues/4907)) ([78f340e](https://github.com/Ombi-app/Ombi/commit/78f340ee5f309c55690497170897533801957668))
-
-
-
-## [4.35.19](https://github.com/Ombi-app/Ombi/compare/v4.35.18...v4.35.19) (2023-04-20)
-
-
-### Bug Fixes
-
-* **radarr:** Fixed an issue where the radarr sync would break ([de4baad](https://github.com/Ombi-app/Ombi/commit/de4baade9f87248d77106ff1a313a498870f4fb3))
-
-
-
-## [4.35.18](https://github.com/Ombi-app/Ombi/compare/v4.35.17...v4.35.18) (2023-04-15)
-
-
-### Bug Fixes
-
-* **#4906:** :bug: Fixed an issue with power users and permissions ([80884bc](https://github.com/Ombi-app/Ombi/commit/80884bcd725c329867c278ad235cd4096cd4fe7a))
-
-
-
-## [4.35.17](https://github.com/Ombi-app/Ombi/compare/v4.35.16...v4.35.17) (2023-04-15)
-
-
-### Bug Fixes
-
-* **discover:** Fix denied requests displayed as approved ([#4901](https://github.com/Ombi-app/Ombi/issues/4901)) ([1e87f20](https://github.com/Ombi-app/Ombi/commit/1e87f2010491b0f3fdda70d2b19d9afd94438df7))
-* Fix denied movie shown as 'processing request' in details view ([#4900](https://github.com/Ombi-app/Ombi/issues/4900)) ([0069bfd](https://github.com/Ombi-app/Ombi/commit/0069bfdf54e0785bad45c832ca052f19fd4b940b))
-
-
-
-## [4.35.16](https://github.com/Ombi-app/Ombi/compare/v4.35.15...v4.35.16) (2023-04-13)
-
-
-### Bug Fixes
-
-* Support duplicates in Emby/JF collections ([#4902](https://github.com/Ombi-app/Ombi/issues/4902)) ([141f96d](https://github.com/Ombi-app/Ombi/commit/141f96da5e45d5b3fa5f496806b102e473da6607))
-
-
-
-## [4.35.15](https://github.com/Ombi-app/Ombi/compare/v4.35.14...v4.35.15) (2023-04-06)
-
-
-### Bug Fixes
-
-* **sonarr:** :bug: Stop the sonarr version endpoint from breaking when Sonarr is down [#4895](https://github.com/Ombi-app/Ombi/issues/4895) ([7bb8bec](https://github.com/Ombi-app/Ombi/commit/7bb8becfb140ef6012356752a71d53b5b404e482))
-
-
-
-## [4.35.14](https://github.com/Ombi-app/Ombi/compare/v4.35.13...v4.35.14) (2023-04-06)
-
-
-### Bug Fixes
-
-* Some minor tweaks to the movie info panel ([#4883](https://github.com/Ombi-app/Ombi/issues/4883)) ([1244487](https://github.com/Ombi-app/Ombi/commit/12444871df2f7602200f73971fce962f06b4a80b))
-
-
-
-## [4.35.13](https://github.com/Ombi-app/Ombi/compare/v4.35.12...v4.35.13) (2023-03-28)
-
-
-### Bug Fixes
-
-* **sonarr:** :bug: Added some more error handling and information around testing sonarr ([bd2c2d3](https://github.com/Ombi-app/Ombi/commit/bd2c2d3901e239393010fd582b207f1571fb4b7e)), closes [#4877](https://github.com/Ombi-app/Ombi/issues/4877)
-
-
-
-## [4.35.12](https://github.com/Ombi-app/Ombi/compare/v4.35.10...v4.35.12) (2023-03-25)
-
-
-### Bug Fixes
-
-* **sonarr:** :bug: Improved the error handling in the sonarr settings page in the UI ([fcd78fe](https://github.com/Ombi-app/Ombi/commit/fcd78fee619d10ec7d78e8c8ec6c3ac4b0a361a1)), closes [#4877](https://github.com/Ombi-app/Ombi/issues/4877)
-
-
-
-## [4.35.9](https://github.com/Ombi-app/Ombi/compare/v4.35.8...v4.35.9) (2023-02-24)
-
-
-
-## [4.35.8](https://github.com/Ombi-app/Ombi/compare/v4.35.7...v4.35.8) (2023-02-17)
-
-
-### Bug Fixes
-
-* **plex-oauth:** 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user [#4835](https://github.com/Ombi-app/Ombi/issues/4835) ([4098da3](https://github.com/Ombi-app/Ombi/commit/4098da305aaea9dae9a552644268a4fed7204cfe))
-
-
-
-## [4.35.7](https://github.com/Ombi-app/Ombi/compare/v4.35.6...v4.35.7) (2023-02-10)
-
-
-### Bug Fixes
-
-* **wizard:** :bug: Stop access to the wizard when you have already setup ombi ([#4866](https://github.com/Ombi-app/Ombi/issues/4866)) ([353de98](https://github.com/Ombi-app/Ombi/commit/353de981a462e1753288d225ec4644a44a62d2bc))
-
-
-
-## [4.35.6](https://github.com/Ombi-app/Ombi/compare/v4.35.5...v4.35.6) (2023-01-31)
-
-
-### Bug Fixes
-
-* Fixed the issue where the login page is still present after logging in with oauth ([aca4ee3](https://github.com/Ombi-app/Ombi/commit/aca4ee37915a28200e5233be3dc711ccc4a5aee9))
-
-
-
-## [4.35.5](https://github.com/Ombi-app/Ombi/compare/v4.35.4...v4.35.5) (2023-01-24)
-
-
-### Bug Fixes
-
-* **radarr-settings:** 🐛 Fixed a typo ([4a50a00](https://github.com/Ombi-app/Ombi/commit/4a50a00d4729d99f4359874b9af4dbc58a0c220b))
-
-
-
-## [4.35.4](https://github.com/Ombi-app/Ombi/compare/v4.35.3...v4.35.4) (2023-01-22)
-
-
-### Bug Fixes
-
-* **discover:** :bug: Fixed the default poster not taking into account the base url in some scenarios [#4845](https://github.com/Ombi-app/Ombi/issues/4845) ([8eda250](https://github.com/Ombi-app/Ombi/commit/8eda250367953183daec03ccb5cdf9fe94275b27))
-* **Hide music from navbar and request list when not enabled:** :bug: ([5123a76](https://github.com/Ombi-app/Ombi/commit/5123a76954e9f81d58c05e31afc7a29aec19cb7a))
-
-
-
-## [4.35.3](https://github.com/Ombi-app/Ombi/compare/v4.35.2...v4.35.3) (2023-01-13)
-
-
-### Bug Fixes
-
-* **#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](https://github.com/Ombi-app/Ombi/issues/4848)) ([f229d88](https://github.com/Ombi-app/Ombi/commit/f229d88bd744bc5253b5d3db69ae5ef22d014230))
-
-
-
-## [4.35.2](https://github.com/Ombi-app/Ombi/compare/v4.35.1...v4.35.2) (2023-01-08)
-
-
-### Bug Fixes
-
-* **database:** Just some tweaks, shouldn't notice any difference, maybe a less error in the log ([67fb992](https://github.com/Ombi-app/Ombi/commit/67fb9921c0c025025286eb6c0a9d09fd01b18465))
-
-
-
-## [4.35.1](https://github.com/Ombi-app/Ombi/compare/v4.35.0...v4.35.1) (2023-01-06)
-
-
-### Bug Fixes
-
-* **plex-watchlist:** Index out of bounds error ([8cd556e](https://github.com/Ombi-app/Ombi/commit/8cd556e268931596b9c1d1ae0ce533bfaaf330f4))
-
-
-
-# [4.35.0](https://github.com/Ombi-app/Ombi/compare/v4.34.1...v4.35.0) (2023-01-04)
-
-
-### Features
-
-* Add the option for header authentication to create users ([#4841](https://github.com/Ombi-app/Ombi/issues/4841)) ([e6c9ce5](https://github.com/Ombi-app/Ombi/commit/e6c9ce5ad0056608ecda8273fb8124ed292e2942))
-
-
-
## [4.34.1](https://github.com/Ombi-app/Ombi/compare/v4.34.0...v4.34.1) (2023-01-04)
@@ -994,7 +286,7 @@
-# [4.23.0](https://github.com/Ombi-app/Ombi/compare/v4.22.5...v4.23.0) (2022-08-09)
+# [4.23.0](https://github.com/Ombi-app/Ombi/compare/v4.22.4...v4.23.0) (2022-08-09)
### Bug Fixes
@@ -1087,1127 +379,3 @@
-## [4.20.4](https://github.com/Ombi-app/Ombi/compare/v4.20.3...v4.20.4) (2022-06-15)
-
-
-### Bug Fixes
-
-* fixed build ([f877921](https://github.com/Ombi-app/Ombi/commit/f8779219146051ea74f8b6408658ff7975afb88b))
-
-
-
-## [4.20.3](https://github.com/Ombi-app/Ombi/compare/v4.20.2...v4.20.3) (2022-06-05)
-
-
-### Bug Fixes
-
-* **plex:** 🐛 Fixed an issue with the Plex Sync ([ab1a11a](https://github.com/Ombi-app/Ombi/commit/ab1a11af78efbe9d37bd55aa80a640796c138a98))
-
-
-
-## [4.20.2](https://github.com/Ombi-app/Ombi/compare/v4.20.1...v4.20.2) (2022-06-03)
-
-
-### Bug Fixes
-
-* :bug: Fixed the Request on Behalf of having blanks ([#4667](https://github.com/Ombi-app/Ombi/issues/4667)) ([7dd9b1c](https://github.com/Ombi-app/Ombi/commit/7dd9b1cac07f571dd35b362544e4fe0226c4b817))
-
-
-
-## [4.20.1](https://github.com/Ombi-app/Ombi/compare/v4.20.0...v4.20.1) (2022-05-27)
-
-
-### Bug Fixes
-
-* added media type tag to media type text ([#4638](https://github.com/Ombi-app/Ombi/issues/4638)) ([fe501d3](https://github.com/Ombi-app/Ombi/commit/fe501d34a0c36ac9f000b107eca49dbc6694d006))
-* **API:** Fix pagination in some edge cases ([#4649](https://github.com/Ombi-app/Ombi/issues/4649)) ([a70bf8f](https://github.com/Ombi-app/Ombi/commit/a70bf8f46c76d74c9dfdf908c53bd9955ca0a35d))
-* **discover:** Carousel touch not working when scrolling page and recommendations and similar movie navigation ([#4633](https://github.com/Ombi-app/Ombi/issues/4633)) ([d5ef1d5](https://github.com/Ombi-app/Ombi/commit/d5ef1d53e5f77d19dba8b8059c80b538a3e14f2a))
-* Improve Swagger documentation ([#4652](https://github.com/Ombi-app/Ombi/issues/4652)) ([181892b](https://github.com/Ombi-app/Ombi/commit/181892bcfe88e6d76febf49ef57745d04552d08e))
-* Missing Poster broken link fix ([#4637](https://github.com/Ombi-app/Ombi/issues/4637)) ([4070f0d](https://github.com/Ombi-app/Ombi/commit/4070f0d093b1c92487a1c80cabad8283a9650f51))
-* **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](https://github.com/Ombi-app/Ombi/issues/4648)) ([6d16442](https://github.com/Ombi-app/Ombi/commit/6d16442d4d714920367df065a3ced42b729f4233))
-* **sync:** Emby+Jellyfin - sync multi-episode files of 3+ episodes ([bd8fd89](https://github.com/Ombi-app/Ombi/commit/bd8fd890554c9d85d6da4d2cee813e82ce698e52))
-
-
-
-# [4.20.0](https://github.com/Ombi-app/Ombi/compare/v4.19.1...v4.20.0) (2022-04-28)
-
-
-### Features
-
-* **discover:** Show more relevant shows in upcoming TV ([8357819](https://github.com/Ombi-app/Ombi/commit/8357819b53b8c675c0b246d7006b5a778bdba33f))
-
-
-
-## [4.19.1](https://github.com/Ombi-app/Ombi/compare/v4.19.0...v4.19.1) (2022-04-27)
-
-
-
-# [4.19.0](https://github.com/Ombi-app/Ombi/compare/v4.18.0...v4.19.0) (2022-04-27)
-
-
-### Features
-
-* **sync:** Detect reidentified movies in Emby and Jellyfin ([5938077](https://github.com/Ombi-app/Ombi/commit/5938077d82a5357f79c07b218b3986557a5816e8))
-* **sync:** Detect reidentified series in Emby and Jellyfin ([9096e91](https://github.com/Ombi-app/Ombi/commit/9096e91d55d268819bce22831f8a8b27f2a1776b))
-
-
-
-# [4.18.0](https://github.com/Ombi-app/Ombi/compare/v4.17.0...v4.18.0) (2022-04-26)
-
-
-### Bug Fixes
-
-* **discover:** Fix cache mix up ([03d9422](https://github.com/Ombi-app/Ombi/commit/03d94220c7eaafb50c6c80a6ed1150794b873ac3))
-* **discover:** Fix new trending feature detection ([6794b88](https://github.com/Ombi-app/Ombi/commit/6794b887f6544fb41528bdd9728b7824b65e47ee))
-* **settings:** Allow toggling features when there are more than one ([a373359](https://github.com/Ombi-app/Ombi/commit/a373359ae8e6bad42b558a6e01a8ff2840d3bbaa))
-
-
-### Features
-
-* **discover:** Add new trending source experimental feature ([1a0823c](https://github.com/Ombi-app/Ombi/commit/1a0823ca80559417c67323aaeaa1ef5243e98031))
-* **discover:** Default trending source to new logic ([4f12939](https://github.com/Ombi-app/Ombi/commit/4f12939e22020a67a5ee75e2907923faea136e8d))
-
-
-
-# [4.17.0](https://github.com/Ombi-app/Ombi/compare/v4.16.17...v4.17.0) (2022-04-25)
-
-
-
-## [4.16.17](https://github.com/Ombi-app/Ombi/compare/v4.16.16...v4.16.17) (2022-04-25)
-
-
-
-## [4.16.16](https://github.com/Ombi-app/Ombi/compare/v4.16.15...v4.16.16) (2022-04-25)
-
-
-### Bug Fixes
-
-* **4616:** :bug: fixed mandatory fields ([d8f2260](https://github.com/Ombi-app/Ombi/commit/d8f2260c7ae3ed48386743b7adbd06e284487034))
-
-
-
-## [4.16.15](https://github.com/Ombi-app/Ombi/compare/v4.16.14...v4.16.15) (2022-04-24)
-
-
-### Features
-
-* **discover:** Add original language filter ([ef7ec86](https://github.com/Ombi-app/Ombi/commit/ef7ec861d8aede2a4817752c990617f583805391))
-
-
-
-## [4.16.14](https://github.com/Ombi-app/Ombi/compare/v4.16.13...v4.16.14) (2022-04-19)
-
-
-
-## [4.16.13](https://github.com/Ombi-app/Ombi/compare/v4.16.12...v4.16.13) (2022-04-19)
-
-
-
-## [4.44.1](https://github.com/Ombi-app/Ombi/compare/v4.44.0...v4.44.1) (2024-07-22)
-
-
-
-## [4.43.5](https://github.com/Ombi-app/Ombi/compare/v4.43.4...v4.43.5) (2023-08-24)
-
-
-
-# [4.44.0](https://github.com/Ombi-app/Ombi/compare/v4.43.22...v4.44.0) (2024-07-11)
-
-
-### Features
-
-* Adding postgres support to ombi (beta) ([#5050](https://github.com/Ombi-app/Ombi/issues/5050)) ([f8c6102](https://github.com/Ombi-app/Ombi/commit/f8c61027bf53d657d7955a98b69d7ab90b66a75a))
-
-
-
-## [4.43.22](https://github.com/Ombi-app/Ombi/compare/v4.43.21...v4.43.22) (2024-07-08)
-
-
-
-## [4.43.21](https://github.com/Ombi-app/Ombi/compare/v4.43.20...v4.43.21) (2024-06-26)
-
-
-
-## [4.43.20](https://github.com/Ombi-app/Ombi/compare/v4.43.16...v4.43.20) (2024-05-14)
-
-
-### Bug Fixes
-
-* upgrade multiple dependencies with Snyk ([#5104](https://github.com/Ombi-app/Ombi/issues/5104)) [skip ci] ([a1083f6](https://github.com/Ombi-app/Ombi/commit/a1083f67c73c968b9ff0a0feebe5a9aac6a7c7c9))
-
-
-
-## [4.43.16](https://github.com/Ombi-app/Ombi/compare/v4.43.15...v4.43.16) (2024-04-01)
-
-
-
-## [4.43.15](https://github.com/Ombi-app/Ombi/compare/v4.43.14...v4.43.15) (2024-03-30)
-
-
-### Bug Fixes
-
-* fixed emails not being able to load the template ([6b49d9b](https://github.com/Ombi-app/Ombi/commit/6b49d9bc7108a0b663ca05de19dbf4841c9c43c1))
-
-
-
-## [4.43.14](https://github.com/Ombi-app/Ombi/compare/v4.43.13...v4.43.14) (2024-03-06)
-
-
-### Performance Improvements
-
-* ⚡ Improve render performance on the discover, movie and tv pages ([#5084](https://github.com/Ombi-app/Ombi/issues/5084)) ([71c86a8](https://github.com/Ombi-app/Ombi/commit/71c86a8db9e63bf0ab779f9a8b5d62a42c246392))
-
-
-
-## [4.43.13](https://github.com/Ombi-app/Ombi/compare/v4.43.12...v4.43.13) (2024-03-05)
-
-
-
-## [4.43.12](https://github.com/Ombi-app/Ombi/compare/v4.43.11...v4.43.12) (2024-03-05)
-
-
-### Bug Fixes
-
-* src/Ombi/ClientApp/package.json & src/Ombi/ClientApp/yarn.lock to reduce vulnerabilities ([#5040](https://github.com/Ombi-app/Ombi/issues/5040)) [skip ci] ([955a742](https://github.com/Ombi-app/Ombi/commit/955a742fae1d0a3983c59cf77eb1a2d222f18b48))
-* src/Ombi/ClientApp/package.json & src/Ombi/ClientApp/yarn.lock to reduce vulnerabilities ([#5072](https://github.com/Ombi-app/Ombi/issues/5072)) [skip ci] ([af6a986](https://github.com/Ombi-app/Ombi/commit/af6a9867719deb7b651a6a78352a8ce0df7a0cf0))
-* src/Ombi/Ombi.csproj to reduce vulnerabilities ([#5066](https://github.com/Ombi-app/Ombi/issues/5066)) [skip ci] ([71df058](https://github.com/Ombi-app/Ombi/commit/71df05886512b8589f193a5cda0166c694438fc0))
-* upgrade @fortawesome/fontawesome-free from 6.4.2 to 6.5.0 ([#5053](https://github.com/Ombi-app/Ombi/issues/5053)) [skip ci] ([5017e38](https://github.com/Ombi-app/Ombi/commit/5017e38f87e32821adb744935fffcb2d76927e2c))
-* upgrade @types/jquery from 3.5.27 to 3.5.28 ([#5049](https://github.com/Ombi-app/Ombi/issues/5049)) [skip ci] ([2c8fe80](https://github.com/Ombi-app/Ombi/commit/2c8fe8087aea227e7425e82392ad9ccb3f8261b4))
-* upgrade moment from 2.29.4 to 2.30.1 ([#5075](https://github.com/Ombi-app/Ombi/issues/5075)) [skip ci] ([460fa39](https://github.com/Ombi-app/Ombi/commit/460fa39bb95c73bafcd65fcc394fecca04d3ac49))
-* upgrade multiple dependencies with Snyk ([#5073](https://github.com/Ombi-app/Ombi/issues/5073)) [skip ci] ([a27b459](https://github.com/Ombi-app/Ombi/commit/a27b4592471c58fca9ad5193b979171fa7c5e66d))
-
-
-
-## [4.43.11](https://github.com/Ombi-app/Ombi/compare/v4.43.10...v4.43.11) (2024-01-11)
-
-
-### Bug Fixes
-
-* **emby:** Add more logging on the PlaySync to check for Tv Shows without a valid TMDB ([08eb13b](https://github.com/Ombi-app/Ombi/commit/08eb13b788582d576a0e1befdb8e84ef7ff0d2f3))
-
-
-
-## [4.43.10](https://github.com/Ombi-app/Ombi/compare/v4.43.9...v4.43.10) (2023-11-20)
-
-
-### Bug Fixes
-
-* **radarr-4k:** 🐛 Fixed an issue when using Radarr 4k with user set quality profiles. There are now user quality profiles for 4k profile [#5025](https://github.com/Ombi-app/Ombi/issues/5025) ([62b9a1f](https://github.com/Ombi-app/Ombi/commit/62b9a1f65fc4ee5f1eaf9dfabf37742a9007433e))
-
-
-
-## [4.43.9](https://github.com/Ombi-app/Ombi/compare/v4.43.8...v4.43.9) (2023-11-18)
-
-
-### Bug Fixes
-
-* **sonarr:** 🐛 Correctly monitor episodes ([57e7830](https://github.com/Ombi-app/Ombi/commit/57e7830f8e54b65ce3c1f0b122cbcc517d1af926))
-
-
-
-## [4.43.8](https://github.com/Ombi-app/Ombi/compare/v4.43.7...v4.43.8) (2023-11-09)
-
-
-
-## [4.43.7](https://github.com/Ombi-app/Ombi/compare/v4.43.6...v4.43.7) (2023-11-09)
-
-
-### Bug Fixes
-
-* upgrade @microsoft/signalr from 6.0.22 to 6.0.23 ([#5032](https://github.com/Ombi-app/Ombi/issues/5032)) [skip ci] ([11edac9](https://github.com/Ombi-app/Ombi/commit/11edac961b0b828658be83a9c4e67079345d3b0b))
-* upgrade @types/jquery from 3.5.22 to 3.5.23 ([#5034](https://github.com/Ombi-app/Ombi/issues/5034)) [skip ci] ([9e28879](https://github.com/Ombi-app/Ombi/commit/9e28879fc1a479e1bd77ca003e3e748fec27f081))
-
-
-
-## [4.43.6](https://github.com/Ombi-app/Ombi/compare/v4.43.5...v4.43.6) (2023-11-01)
-
-
-### Bug Fixes
-
-* **discord:** 🐛 Fixed an issue where the Icon in the discord notifications wouldn't apply ([32da949](https://github.com/Ombi-app/Ombi/commit/32da949a9547f68c57eb4338f749228b7de167c2))
-* src/Ombi/ClientApp/package.json & src/Ombi/ClientApp/yarn.lock to reduce vulnerabilities ([#5010](https://github.com/Ombi-app/Ombi/issues/5010)) [skip ci] ([9c2e1b4](https://github.com/Ombi-app/Ombi/commit/9c2e1b435305d51cc9ab7f5d6932ccd3fa723e6c))
-* upgrade @fortawesome/fontawesome-free from 6.4.0 to 6.4.2 ([#5005](https://github.com/Ombi-app/Ombi/issues/5005)) [skip ci] ([f703ff2](https://github.com/Ombi-app/Ombi/commit/f703ff255cf389a60bdece824214d38f57f03f90))
-* upgrade @microsoft/signalr from 6.0.18 to 6.0.20 ([#4999](https://github.com/Ombi-app/Ombi/issues/4999)) [skip ci] ([563a044](https://github.com/Ombi-app/Ombi/commit/563a0443ea09ff71c5aa740173b4f3c5627cb543))
-* upgrade @microsoft/signalr from 6.0.21 to 6.0.22 ([#5020](https://github.com/Ombi-app/Ombi/issues/5020)) ([1261a44](https://github.com/Ombi-app/Ombi/commit/1261a446e7ffa4d7540623f76ecc9d7e643ca4ce))
-* upgrade @types/jquery from 3.5.16 to 3.5.17 ([#5011](https://github.com/Ombi-app/Ombi/issues/5011)) [skip ci] ([40ee175](https://github.com/Ombi-app/Ombi/commit/40ee175ccd6e53b1254833163954b6a1be0d5251))
-* upgrade @types/jquery from 3.5.18 to 3.5.19 ([#5022](https://github.com/Ombi-app/Ombi/issues/5022)) ([291425e](https://github.com/Ombi-app/Ombi/commit/291425e6091d90ac07010ff65cc3a53309965546))
-* upgrade cypress-real-events from 1.10.0 to 1.10.1 ([#5014](https://github.com/Ombi-app/Ombi/issues/5014)) ([ed06c22](https://github.com/Ombi-app/Ombi/commit/ed06c22fb26fb605b857f3f8e1b26b2dbab15710))
-* upgrade cypress-real-events from 1.8.1 to 1.9.1 ([#5000](https://github.com/Ombi-app/Ombi/issues/5000)) [skip ci] ([19e0a88](https://github.com/Ombi-app/Ombi/commit/19e0a886ced344bfe6284f3916fba12826b7de08))
-* upgrade jquery from 3.7.0 to 3.7.1 ([#5015](https://github.com/Ombi-app/Ombi/issues/5015)) ([7bc915c](https://github.com/Ombi-app/Ombi/commit/7bc915cc14ed27ad0f35142279f9362e5b7b27b8))
-* upgrade multiple dependencies with Snyk ([#5030](https://github.com/Ombi-app/Ombi/issues/5030)) ([7e1e254](https://github.com/Ombi-app/Ombi/commit/7e1e254cfe6c84c1f143388f436d63efd4686e55))
-* upgrade zone.js from 0.13.1 to 0.13.2 ([#5019](https://github.com/Ombi-app/Ombi/issues/5019)) ([c5c8dda](https://github.com/Ombi-app/Ombi/commit/c5c8dda7e4f744fa47841efba9f0e8fee9ef67c6))
-
-
-
-## [4.43.4](https://github.com/Ombi-app/Ombi/compare/v4.43.3...v4.43.4) (2023-07-28)
-
-
-### Bug Fixes
-
-* **user-importer:** Fixed not importing all correct users [#4989](https://github.com/Ombi-app/Ombi/issues/4989) ([34c32f8](https://github.com/Ombi-app/Ombi/commit/34c32f8338705ea3f790d95b91c9ada21a41b9f2))
-
-
-
-## [4.43.3](https://github.com/Ombi-app/Ombi/compare/v4.43.2...v4.43.3) (2023-07-28)
-
-
-### Bug Fixes
-
-* switch back to the old plex friends API [#4989](https://github.com/Ombi-app/Ombi/issues/4989) ([c8ad12e](https://github.com/Ombi-app/Ombi/commit/c8ad12eb5f53889609d1793ae907afd33ba6ef38))
-
-
-
-## [4.43.2](https://github.com/Ombi-app/Ombi/compare/v4.43.1...v4.43.2) (2023-07-19)
-
-
-### Bug Fixes
-
-* **plex-api:** Switch over to the new API to avoid deprecation & save… ([#4986](https://github.com/Ombi-app/Ombi/issues/4986)) ([2f2d35e](https://github.com/Ombi-app/Ombi/commit/2f2d35ec867a8e5488e368db294bd37bcf92d843))
-* Remove old trending source ([#4987](https://github.com/Ombi-app/Ombi/issues/4987)) ([aacaa3e](https://github.com/Ombi-app/Ombi/commit/aacaa3e140b43f5d196da612f785cc4451717752))
-
-
-
-## [4.43.1](https://github.com/Ombi-app/Ombi/compare/v4.43.0...v4.43.1) (2023-07-16)
-
-
-### Bug Fixes
-
-* **user-importer:** don't delete admins in the cleanup ([895b9bf](https://github.com/Ombi-app/Ombi/commit/895b9bf6a060a678d4b0cca8083aa96c38e47b95))
-
-
-
-# [4.43.0](https://github.com/Ombi-app/Ombi/compare/v4.42.3...v4.43.0) (2023-07-14)
-
-
-### Features
-
-* Add Auto Approve 4K role ([#4982](https://github.com/Ombi-app/Ombi/issues/4982)) ([#4983](https://github.com/Ombi-app/Ombi/issues/4983)) ([ac05495](https://github.com/Ombi-app/Ombi/commit/ac054954254b9d77a42e057f1065570c7fdc1093)), closes [#4957](https://github.com/Ombi-app/Ombi/issues/4957)
-
-
-
-## [4.42.3](https://github.com/Ombi-app/Ombi/compare/v4.42.2...v4.42.3) (2023-07-13)
-
-
-### Bug Fixes
-
-* **user-importer:** Do not delete the Plex Admin as part of the user Importer cleanup [#4870](https://github.com/Ombi-app/Ombi/issues/4870) ([#4981](https://github.com/Ombi-app/Ombi/issues/4981)) ([4e80e7b](https://github.com/Ombi-app/Ombi/commit/4e80e7b7c3239a46a645ab6d1054993734ad4dd6))
-
-
-
-## [4.42.2](https://github.com/Ombi-app/Ombi/compare/v4.42.1...v4.42.2) (2023-07-03)
-
-
-### Bug Fixes
-
-* Remove Angular TSLint ([#4973](https://github.com/Ombi-app/Ombi/issues/4973)) ([93969b5](https://github.com/Ombi-app/Ombi/commit/93969b5a2d82f442299bee418fae43cb590d7743))
-* upgrade jquery from 3.6.1 to 3.7.0 ([#4974](https://github.com/Ombi-app/Ombi/issues/4974)) ([f2552ef](https://github.com/Ombi-app/Ombi/commit/f2552ef6ede011080a8d5499e11930c4d41d04c2))
-* upgrade multiple dependencies with Snyk ([#4961](https://github.com/Ombi-app/Ombi/issues/4961)) ([3c3edf6](https://github.com/Ombi-app/Ombi/commit/3c3edf6273fa98c420989ebcebfee52b2545e402))
-* upgrade zone.js from 0.11.8 to 0.13.0 ([#4975](https://github.com/Ombi-app/Ombi/issues/4975)) ([37f6564](https://github.com/Ombi-app/Ombi/commit/37f65648a2f8742020b0954acec4168aee048942))
-
-
-
-## [4.42.1](https://github.com/Ombi-app/Ombi/compare/v4.42.0...v4.42.1) (2023-06-20)
-
-
-### Bug Fixes
-
-* More automation tests mainly around the Plex Settings page ([#4821](https://github.com/Ombi-app/Ombi/issues/4821)) ([21bfc5a](https://github.com/Ombi-app/Ombi/commit/21bfc5a45adf6da6a80854e19494a8ffdc9c0761))
-* src/Ombi.Notifications/Ombi.Notifications.csproj to reduce vulnerabilities ([#4969](https://github.com/Ombi-app/Ombi/issues/4969)) [skip ci] ([8584ad4](https://github.com/Ombi-app/Ombi/commit/8584ad46053c51f5da40b24f3efd1b9e5a031ddd))
-* upgrade @fortawesome/fontawesome-free from 6.1.2 to 6.4.0 ([#4965](https://github.com/Ombi-app/Ombi/issues/4965)) [skip ci] ([84454e5](https://github.com/Ombi-app/Ombi/commit/84454e53c00c808e8a393c7750bdc418a7593e91))
-* upgrade @microsoft/signalr from 6.0.11 to 6.0.16 ([#4964](https://github.com/Ombi-app/Ombi/issues/4964)) [skip ci] ([a0201e3](https://github.com/Ombi-app/Ombi/commit/a0201e3f585dc52f717e33c46ede35a4eccac736))
-* upgrade cypress-real-events from 1.7.4 to 1.8.1 ([#4968](https://github.com/Ombi-app/Ombi/issues/4968)) [skip ci] ([8a24b56](https://github.com/Ombi-app/Ombi/commit/8a24b56299c3bc98bf0d719ba448972aaa7f7461))
-* upgrade multiple dependencies with Snyk ([#4963](https://github.com/Ombi-app/Ombi/issues/4963)) [skip ci] ([6025c5e](https://github.com/Ombi-app/Ombi/commit/6025c5ed757438d3a5d79bd36fd789ef0297ce70))
-* upgrade primeng from 15.0.0-rc.1 to 15.4.1 ([#4962](https://github.com/Ombi-app/Ombi/issues/4962)) [skip ci] ([23a4fed](https://github.com/Ombi-app/Ombi/commit/23a4fede69898a25b342aed78a8cda553c1fd18d))
-
-
-
-# [4.42.0](https://github.com/Ombi-app/Ombi/compare/v4.41.1...v4.42.0) (2023-06-02)
-
-
-### Bug Fixes
-
-* **translations:** 🌐 New translations from Crowdin [skip ci] ([#4926](https://github.com/Ombi-app/Ombi/issues/4926)) ([151efe1](https://github.com/Ombi-app/Ombi/commit/151efe19d0012b85f317c175da5ab4802ea14e20))
-
-
-### Features
-
-* **emby:** Show watched status for TV requests ([1f37de0](https://github.com/Ombi-app/Ombi/commit/1f37de08888812b6d130d92bb664a89e89149105))
-
-
-
-## [4.41.1](https://github.com/Ombi-app/Ombi/compare/v4.41.0...v4.41.1) (2023-05-27)
-
-
-
-# [4.41.0](https://github.com/Ombi-app/Ombi/compare/v4.40.0...v4.41.0) (2023-05-27)
-
-
-### Bug Fixes
-
-* Fix various styling issues ([#4935](https://github.com/Ombi-app/Ombi/issues/4935)) ([90b934a](https://github.com/Ombi-app/Ombi/commit/90b934a36996c0f489096f3641350a1c0d3b7c89))
-
-
-### Features
-
-* **emby:** Show end-user external IP address to Emby when logging in as an Emby user ([#4949](https://github.com/Ombi-app/Ombi/issues/4949)) ([79cef7e](https://github.com/Ombi-app/Ombi/commit/79cef7e0f8643e36536a9ea84dd1a07c232403a9)), closes [#4947](https://github.com/Ombi-app/Ombi/issues/4947)
-
-
-
-# [4.40.0](https://github.com/Ombi-app/Ombi/compare/v4.39.1...v4.40.0) (2023-05-18)
-
-
-
-# [4.39.0](https://github.com/Ombi-app/Ombi/compare/v4.35.11...v4.39.0) (2023-05-17)
-
-
-### Bug Fixes
-
-* **emby:** Fix Emby played sync running a full sync during recently added sync ([#4932](https://github.com/Ombi-app/Ombi/issues/4932)) ([9424586](https://github.com/Ombi-app/Ombi/commit/9424586e9c1b622b6475aeb8ee3cf4a8f346da6e))
-
-
-### Features
-
-* Hide watched status when request is not available ([#4934](https://github.com/Ombi-app/Ombi/issues/4934)) ([82c7f1c](https://github.com/Ombi-app/Ombi/commit/82c7f1c44fd7c87d57cc2b0c34a10fcda7628f4e))
-
-
-
-## [4.38.2](https://github.com/Ombi-app/Ombi/compare/v4.38.1...v4.38.2) (2023-05-17)
-
-
-
-## [4.38.1](https://github.com/Ombi-app/Ombi/compare/v4.38.0...v4.38.1) (2023-05-09)
-
-
-### Bug Fixes
-
-* **API:** Allow RequestOnBehalf rights if requested from the API ([#4919](https://github.com/Ombi-app/Ombi/issues/4919)) ([bb6dedd](https://github.com/Ombi-app/Ombi/commit/bb6deddfaecb3d6c7c3c6970414444b619bb9106))
-* **notificaitons:** Add the RequestedByAlias field to the Notification Message ([7e9c8be](https://github.com/Ombi-app/Ombi/commit/7e9c8bec6b02bb4e11f8db50394e493d4dd07723))
-
-
-
-# [4.38.0](https://github.com/Ombi-app/Ombi/compare/v4.37.3...v4.38.0) (2023-05-07)
-
-
-### Bug Fixes
-
-* remove sort header ([969bc7b](https://github.com/Ombi-app/Ombi/commit/969bc7bb25ea900ab9199509b079b36843e5bd6f))
-
-
-### Features
-
-* **emby:** Show watched status for Movie requests ([9cfb10b](https://github.com/Ombi-app/Ombi/commit/9cfb10bb1ee69067a6f47bd2c8a72d4e6834350e))
-
-
-
-## [4.37.3](https://github.com/Ombi-app/Ombi/compare/v4.37.2...v4.37.3) (2023-05-07)
-
-
-### Bug Fixes
-
-* Show the ApiAlias in the requests-list ([9ff624c](https://github.com/Ombi-app/Ombi/commit/9ff624ce4646815b239fbb8327117947f0a90e4b))
-
-
-
-## [4.37.2](https://github.com/Ombi-app/Ombi/compare/v4.37.1...v4.37.2) (2023-05-03)
-
-
-### Bug Fixes
-
-* **jellyfin:** Fixed an issue where the sync could stop working. Removed unused properties so the deseralization no longer fails ([0e5e0ad](https://github.com/Ombi-app/Ombi/commit/0e5e0adf862701d0f672beff14ec0aa75e4b5220))
-
-
-
-## [4.37.1](https://github.com/Ombi-app/Ombi/compare/v4.37.0...v4.37.1) (2023-05-02)
-
-
-### Bug Fixes
-
-* Cron Validation ([#4842](https://github.com/Ombi-app/Ombi/issues/4842)) ([97cc42f](https://github.com/Ombi-app/Ombi/commit/97cc42ffa8672e7d0d0996b5fbda7f7fe699da2d))
-* **discover:** :children_crossing: Improved the new Genre buttons, it now includes TV results ([b087d60](https://github.com/Ombi-app/Ombi/commit/b087d606ff36565208e564f8856903f2a4098db5))
-* **lidarr:** Change monitor to Existing to properly add artist [#3597](https://github.com/Ombi-app/Ombi/issues/3597) ([506f607](https://github.com/Ombi-app/Ombi/commit/506f60773bf1031d0be51ccd34289b855a04ea40)), closes [/github.com/Lidarr/Lidarr/issues/3597#issuecomment-1530804055](https://github.com//github.com/Lidarr/Lidarr/issues/3597/issues/issuecomment-1530804055)
-
-
-
-# [4.37.0](https://github.com/Ombi-app/Ombi/compare/v4.36.1...v4.37.0) (2023-04-24)
-
-
-### Features
-
-* Search by genre ([1837419](https://github.com/Ombi-app/Ombi/commit/18374198f9f2462ba85c5781b0fcc05892728b21))
-
-
-
-## [4.36.1](https://github.com/Ombi-app/Ombi/compare/v4.36.0...v4.36.1) (2023-04-20)
-
-
-### Bug Fixes
-
-* **healthchecks:** Removed redundant ping check ([1751305](https://github.com/Ombi-app/Ombi/commit/1751305064176d2c0135f867773ccc46b03915ec))
-
-
-
-# [4.36.0](https://github.com/Ombi-app/Ombi/compare/v4.35.19...v4.36.0) (2023-04-20)
-
-
-### Features
-
-* **discover:** Add deny option to recently requested ([#4907](https://github.com/Ombi-app/Ombi/issues/4907)) ([78f340e](https://github.com/Ombi-app/Ombi/commit/78f340ee5f309c55690497170897533801957668))
-
-
-
-## [4.35.19](https://github.com/Ombi-app/Ombi/compare/v4.35.18...v4.35.19) (2023-04-20)
-
-
-### Bug Fixes
-
-* **radarr:** Fixed an issue where the radarr sync would break ([de4baad](https://github.com/Ombi-app/Ombi/commit/de4baade9f87248d77106ff1a313a498870f4fb3))
-
-
-
-## [4.35.18](https://github.com/Ombi-app/Ombi/compare/v4.35.17...v4.35.18) (2023-04-15)
-
-
-### Bug Fixes
-
-* **#4906:** :bug: Fixed an issue with power users and permissions ([80884bc](https://github.com/Ombi-app/Ombi/commit/80884bcd725c329867c278ad235cd4096cd4fe7a))
-
-
-
-## [4.35.17](https://github.com/Ombi-app/Ombi/compare/v4.35.16...v4.35.17) (2023-04-15)
-
-
-### Bug Fixes
-
-* **discover:** Fix denied requests displayed as approved ([#4901](https://github.com/Ombi-app/Ombi/issues/4901)) ([1e87f20](https://github.com/Ombi-app/Ombi/commit/1e87f2010491b0f3fdda70d2b19d9afd94438df7))
-* Fix denied movie shown as 'processing request' in details view ([#4900](https://github.com/Ombi-app/Ombi/issues/4900)) ([0069bfd](https://github.com/Ombi-app/Ombi/commit/0069bfdf54e0785bad45c832ca052f19fd4b940b))
-
-
-
-## [4.35.16](https://github.com/Ombi-app/Ombi/compare/v4.35.15...v4.35.16) (2023-04-13)
-
-
-### Bug Fixes
-
-* Support duplicates in Emby/JF collections ([#4902](https://github.com/Ombi-app/Ombi/issues/4902)) ([141f96d](https://github.com/Ombi-app/Ombi/commit/141f96da5e45d5b3fa5f496806b102e473da6607))
-
-
-
-## [4.35.15](https://github.com/Ombi-app/Ombi/compare/v4.35.14...v4.35.15) (2023-04-06)
-
-
-### Bug Fixes
-
-* **sonarr:** :bug: Stop the sonarr version endpoint from breaking when Sonarr is down [#4895](https://github.com/Ombi-app/Ombi/issues/4895) ([7bb8bec](https://github.com/Ombi-app/Ombi/commit/7bb8becfb140ef6012356752a71d53b5b404e482))
-
-
-
-## [4.35.14](https://github.com/Ombi-app/Ombi/compare/v4.35.13...v4.35.14) (2023-04-06)
-
-
-### Bug Fixes
-
-* Some minor tweaks to the movie info panel ([#4883](https://github.com/Ombi-app/Ombi/issues/4883)) ([1244487](https://github.com/Ombi-app/Ombi/commit/12444871df2f7602200f73971fce962f06b4a80b))
-
-
-
-## [4.35.13](https://github.com/Ombi-app/Ombi/compare/v4.35.12...v4.35.13) (2023-03-28)
-
-
-### Bug Fixes
-
-* **sonarr:** :bug: Added some more error handling and information around testing sonarr ([bd2c2d3](https://github.com/Ombi-app/Ombi/commit/bd2c2d3901e239393010fd582b207f1571fb4b7e)), closes [#4877](https://github.com/Ombi-app/Ombi/issues/4877)
-
-
-
-## [4.35.12](https://github.com/Ombi-app/Ombi/compare/v4.35.10...v4.35.12) (2023-03-25)
-
-
-### Bug Fixes
-
-* **sonarr:** :bug: Improved the error handling in the sonarr settings page in the UI ([fcd78fe](https://github.com/Ombi-app/Ombi/commit/fcd78fee619d10ec7d78e8c8ec6c3ac4b0a361a1)), closes [#4877](https://github.com/Ombi-app/Ombi/issues/4877)
-
-
-
-## [4.35.9](https://github.com/Ombi-app/Ombi/compare/v4.35.8...v4.35.9) (2023-02-24)
-
-
-
-## [4.35.8](https://github.com/Ombi-app/Ombi/compare/v4.35.7...v4.35.8) (2023-02-17)
-
-
-### Bug Fixes
-
-* **plex-oauth:** 🐛 Fixed an issue where using OAuth you could log in as a Ombi Local user [#4835](https://github.com/Ombi-app/Ombi/issues/4835) ([4098da3](https://github.com/Ombi-app/Ombi/commit/4098da305aaea9dae9a552644268a4fed7204cfe))
-
-
-
-## [4.35.7](https://github.com/Ombi-app/Ombi/compare/v4.35.6...v4.35.7) (2023-02-10)
-
-
-### Bug Fixes
-
-* **wizard:** :bug: Stop access to the wizard when you have already setup ombi ([#4866](https://github.com/Ombi-app/Ombi/issues/4866)) ([353de98](https://github.com/Ombi-app/Ombi/commit/353de981a462e1753288d225ec4644a44a62d2bc))
-
-
-
-## [4.35.6](https://github.com/Ombi-app/Ombi/compare/v4.35.5...v4.35.6) (2023-01-31)
-
-
-### Bug Fixes
-
-* Fixed the issue where the login page is still present after logging in with oauth ([aca4ee3](https://github.com/Ombi-app/Ombi/commit/aca4ee37915a28200e5233be3dc711ccc4a5aee9))
-
-
-
-## [4.35.5](https://github.com/Ombi-app/Ombi/compare/v4.35.4...v4.35.5) (2023-01-24)
-
-
-### Bug Fixes
-
-* **radarr-settings:** 🐛 Fixed a typo ([4a50a00](https://github.com/Ombi-app/Ombi/commit/4a50a00d4729d99f4359874b9af4dbc58a0c220b))
-
-
-
-## [4.35.4](https://github.com/Ombi-app/Ombi/compare/v4.35.3...v4.35.4) (2023-01-22)
-
-
-### Bug Fixes
-
-* **discover:** :bug: Fixed the default poster not taking into account the base url in some scenarios [#4845](https://github.com/Ombi-app/Ombi/issues/4845) ([8eda250](https://github.com/Ombi-app/Ombi/commit/8eda250367953183daec03ccb5cdf9fe94275b27))
-* **Hide music from navbar and request list when not enabled:** :bug: ([5123a76](https://github.com/Ombi-app/Ombi/commit/5123a76954e9f81d58c05e31afc7a29aec19cb7a))
-
-
-
-## [4.35.3](https://github.com/Ombi-app/Ombi/compare/v4.35.2...v4.35.3) (2023-01-13)
-
-
-### Bug Fixes
-
-* **#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](https://github.com/Ombi-app/Ombi/issues/4848)) ([f229d88](https://github.com/Ombi-app/Ombi/commit/f229d88bd744bc5253b5d3db69ae5ef22d014230))
-
-
-
-## [4.35.2](https://github.com/Ombi-app/Ombi/compare/v4.35.1...v4.35.2) (2023-01-08)
-
-
-### Bug Fixes
-
-* **database:** Just some tweaks, shouldn't notice any difference, maybe a less error in the log ([67fb992](https://github.com/Ombi-app/Ombi/commit/67fb9921c0c025025286eb6c0a9d09fd01b18465))
-
-
-
-## [4.35.1](https://github.com/Ombi-app/Ombi/compare/v4.35.0...v4.35.1) (2023-01-06)
-
-
-### Bug Fixes
-
-* **plex-watchlist:** Index out of bounds error ([8cd556e](https://github.com/Ombi-app/Ombi/commit/8cd556e268931596b9c1d1ae0ce533bfaaf330f4))
-
-
-
-# [4.35.0](https://github.com/Ombi-app/Ombi/compare/v4.34.1...v4.35.0) (2023-01-04)
-
-
-### Features
-
-* Add the option for header authentication to create users ([#4841](https://github.com/Ombi-app/Ombi/issues/4841)) ([e6c9ce5](https://github.com/Ombi-app/Ombi/commit/e6c9ce5ad0056608ecda8273fb8124ed292e2942))
-
-
-
-## [4.34.1](https://github.com/Ombi-app/Ombi/compare/v4.34.0...v4.34.1) (2023-01-04)
-
-
-### Bug Fixes
-
-* **plex-watchlist:** Lookup the ID from different sources when Plex doesn't contain the metadata ([#4843](https://github.com/Ombi-app/Ombi/issues/4843)) ([a2cc23b](https://github.com/Ombi-app/Ombi/commit/a2cc23b351c4a568c44e6c855f94db9f71ad084a))
-
-
-
-# [4.34.0](https://github.com/Ombi-app/Ombi/compare/v4.33.1...v4.34.0) (2023-01-04)
-
-
-### Features
-
-* Radarr tags ([#4815](https://github.com/Ombi-app/Ombi/issues/4815)) ([6fa5064](https://github.com/Ombi-app/Ombi/commit/6fa506491fe867cdeef9df79991ae49319d71c3d))
-
-
-
-## [4.33.1](https://github.com/Ombi-app/Ombi/compare/v4.33.0...v4.33.1) (2022-12-22)
-
-
-### Bug Fixes
-
-* **plex:** Added the watchlist request whole show back into the settings ([10701c4](https://github.com/Ombi-app/Ombi/commit/10701c4a0b6190eebb75c5d8b18224f3d0bc8502))
-
-
-
-# [4.33.0](https://github.com/Ombi-app/Ombi/compare/v4.32.3...v4.33.0) (2022-12-01)
-
-
-### Features
-
-* Angular 15 and Dependency upgrades ([#4818](https://github.com/Ombi-app/Ombi/issues/4818)) ([4816acf](https://github.com/Ombi-app/Ombi/commit/4816acf6f94443d23ebef6091d4cfcbca580f9ca))
-
-
-
-## [4.32.3](https://github.com/Ombi-app/Ombi/compare/v4.32.2...v4.32.3) (2022-11-24)
-
-
-### Bug Fixes
-
-* **sonarr:** V4 actually works this time around ([f62e70f](https://github.com/Ombi-app/Ombi/commit/f62e70fc493c7971da5e4508ce10522f5df0bbf7))
-
-
-
-## [4.32.2](https://github.com/Ombi-app/Ombi/compare/v4.32.1...v4.32.2) (2022-11-23)
-
-
-### Bug Fixes
-
-* **sonarr:** :bug: Sonarr V4 should work now ([#4810](https://github.com/Ombi-app/Ombi/issues/4810)) ([37655af](https://github.com/Ombi-app/Ombi/commit/37655aff9d3d133b42f5664bc9445d6571e966d6))
-
-
-
-## [4.32.1](https://github.com/Ombi-app/Ombi/compare/v4.32.0...v4.32.1) (2022-11-21)
-
-
-### Bug Fixes
-
-* **plex:** :bug: Fixed the issue where you couldn't add a new server on a fresh setup after the settings page rework ([187b18d](https://github.com/Ombi-app/Ombi/commit/187b18d5c01f6a13831e4a410b5d7c349e27d847))
-
-
-
-# [4.32.0](https://github.com/Ombi-app/Ombi/compare/v4.31.0...v4.32.0) (2022-11-18)
-
-
-### Bug Fixes
-
-* **translations:** 🌐 New translations from Crowdin [skip ci] ([#4801](https://github.com/Ombi-app/Ombi/issues/4801)) ([4692003](https://github.com/Ombi-app/Ombi/commit/46920032baed04675b2ffbe1700afdc0740a4ac4))
-
-
-### Features
-
-* **plex:** Rework the Plex Settings page ([#4805](https://github.com/Ombi-app/Ombi/issues/4805)) ([1b8c47f](https://github.com/Ombi-app/Ombi/commit/1b8c47f3163f618851d4904732cb07015e1e93ff))
-
-
-
-# [4.31.0](https://github.com/Ombi-app/Ombi/compare/v4.30.0...v4.31.0) (2022-11-18)
-
-
-### Features
-
-* **sonarr:** Added the ability to add default tags when sending to Sonarr ([#4803](https://github.com/Ombi-app/Ombi/issues/4803)) ([ecfbb8e](https://github.com/Ombi-app/Ombi/commit/ecfbb8eda91e1a90239dcf8be847afcc2394a78e))
-
-
-
-# [4.30.0](https://github.com/Ombi-app/Ombi/compare/v4.29.3...v4.30.0) (2022-11-17)
-
-
-### Features
-
-* **sonarr:** :sparkles: Add the username to a Sonarr tag when sent to Sonarr ([#4802](https://github.com/Ombi-app/Ombi/issues/4802)) ([1d5fabd](https://github.com/Ombi-app/Ombi/commit/1d5fabd317e3ce8f6dd31f06d15dc81277f39dbd))
-
-
-
-## [4.29.3](https://github.com/Ombi-app/Ombi/compare/v4.29.2...v4.29.3) (2022-11-14)
-
-
-### Bug Fixes
-
-* **notifications:** Fixed the Partially TV notifications going to the admin [#4797](https://github.com/Ombi-app/Ombi/issues/4797) ([#4799](https://github.com/Ombi-app/Ombi/issues/4799)) ([bcb3e7f](https://github.com/Ombi-app/Ombi/commit/bcb3e7f00380a4c4278f59dc55febf43e6d05d47))
-* Only log error messages from Microsoft ([#4787](https://github.com/Ombi-app/Ombi/issues/4787)) ([c614e0c](https://github.com/Ombi-app/Ombi/commit/c614e0ca5fe5023cbe7ced326145273cd75be85d))
-
-
-
-## [4.29.2](https://github.com/Ombi-app/Ombi/compare/v4.29.1...v4.29.2) (2022-10-24)
-
-
-### Bug Fixes
-
-* **plex:** Fixed an issue where sometimes the availability checker would throw an exception when checking episodes ([17ba202](https://github.com/Ombi-app/Ombi/commit/17ba2020ee0950c2c0e0e03fdb7835b579da75a9))
-
-
-
-## [4.29.1](https://github.com/Ombi-app/Ombi/compare/v4.29.0...v4.29.1) (2022-10-22)
-
-
-### Bug Fixes
-
-* Consistently reset loading flag when requesting movies on discover page. ([#4777](https://github.com/Ombi-app/Ombi/issues/4777)) ([a40ab5c](https://github.com/Ombi-app/Ombi/commit/a40ab5cddf769d4147696eca50c1610b466ab99b))
-* **sonarr:** :bug: Fixed an issue where the language list didn't correctly load for power users in the advanced options [#4782](https://github.com/Ombi-app/Ombi/issues/4782) ([2173670](https://github.com/Ombi-app/Ombi/commit/217367047d1568070dd507e54ad3fd2c68f05b88))
-
-
-
-# [4.29.0](https://github.com/Ombi-app/Ombi/compare/v4.28.1...v4.29.0) (2022-10-19)
-
-
-### Bug Fixes
-
-* Partially Available prevents further TV requests ([#4768](https://github.com/Ombi-app/Ombi/issues/4768)) ([#4779](https://github.com/Ombi-app/Ombi/issues/4779)) ([031e2b9](https://github.com/Ombi-app/Ombi/commit/031e2b9283b239827cabaca4e35f69f2f93a4d7b))
-* Unable to Delete Jellyfin Server ([#4705](https://github.com/Ombi-app/Ombi/issues/4705)) ([#4780](https://github.com/Ombi-app/Ombi/issues/4780)) ([76a0d0d](https://github.com/Ombi-app/Ombi/commit/76a0d0d26893bd480fea4735f77522ac6261a425))
-
-
-### Features
-
-* Provide a flag for missing users on Plex Server ([#4688](https://github.com/Ombi-app/Ombi/issues/4688)) ([#4778](https://github.com/Ombi-app/Ombi/issues/4778)) ([b4a14c2](https://github.com/Ombi-app/Ombi/commit/b4a14c2d28218409390e517b226130e3e84efee1))
-
-
-
-## [4.28.1](https://github.com/Ombi-app/Ombi/compare/v4.28.0...v4.28.1) (2022-10-19)
-
-
-### Bug Fixes
-
-* **plex:** :bug: Fixed not being able to enable watchlist requests in the Plex settings ([3e5158e](https://github.com/Ombi-app/Ombi/commit/3e5158ef9cda58ea2dd3be143f07aa5433691d79))
-* Reworked the version check ([#4719](https://github.com/Ombi-app/Ombi/issues/4719)) ([#4781](https://github.com/Ombi-app/Ombi/issues/4781)) ([55855c5](https://github.com/Ombi-app/Ombi/commit/55855c5adda3cd1c51b7fbd0c19b469fc813f98e))
-
-
-
-# [4.28.0](https://github.com/Ombi-app/Ombi/compare/v4.27.8...v4.28.0) (2022-10-07)
-
-
-### Features
-
-* **plex:** ✨ Added the ability to configure the watchlist to request the whole TV show rather than latest season ([#4774](https://github.com/Ombi-app/Ombi/issues/4774)) ([fa65712](https://github.com/Ombi-app/Ombi/commit/fa65712bd570fe8d5d21b8ca0abe182b84960017))
-
-
-
-## [4.27.8](https://github.com/Ombi-app/Ombi/compare/v4.27.7...v4.27.8) (2022-10-07)
-
-
-
-## [4.27.7](https://github.com/Ombi-app/Ombi/compare/v4.27.6...v4.27.7) (2022-10-07)
-
-
-### Bug Fixes
-
-* Fixes default image for recently requested items. ([#4767](https://github.com/Ombi-app/Ombi/issues/4767)) ([2e6f35f](https://github.com/Ombi-app/Ombi/commit/2e6f35f89abb3dd3685ec8289f8620c7ef7072cd))
-
-
-
-## [4.27.6](https://github.com/Ombi-app/Ombi/compare/v4.27.5...v4.27.6) (2022-10-01)
-
-
-### Bug Fixes
-
-* **notifications:** Fixed the error when sending multiple test notifications. Added more logging when Discord complains the message is invalid ([fc14780](https://github.com/Ombi-app/Ombi/commit/fc14780bd354483119ddcbb55a8c382e1890a783))
-
-
-
-## [4.27.5](https://github.com/Ombi-app/Ombi/compare/v4.27.4...v4.27.5) (2022-09-30)
-
-
-### Bug Fixes
-
-* **importer:** 🐛 Allow you to only import Plex Admins without the Plex Users ([8c9ad9b](https://github.com/Ombi-app/Ombi/commit/8c9ad9b414fdc6c88bdb911d6057ae5d38783b98))
-
-
-
-## [4.27.4](https://github.com/Ombi-app/Ombi/compare/v4.27.3...v4.27.4) (2022-09-30)
-
-
-
-## [4.27.3](https://github.com/Ombi-app/Ombi/compare/v4.27.2...v4.27.3) (2022-09-30)
-
-
-### Bug Fixes
-
-* **availability:** 🐛 Fixed a issue with the availability checker after the previous update. Added full test coverage around that area ([28e2480](https://github.com/Ombi-app/Ombi/commit/28e248046ad56390595f84172bbd5f5961325b4d))
-
-
-
-## [4.27.2](https://github.com/Ombi-app/Ombi/compare/v4.27.1...v4.27.2) (2022-09-29)
-
-
-### Bug Fixes
-
-* **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](https://github.com/Ombi-app/Ombi/issues/4764)) ([2cddec7](https://github.com/Ombi-app/Ombi/commit/2cddec759004b6490f686ff74cb092238e3dc946))
-
-
-
-## [4.27.1](https://github.com/Ombi-app/Ombi/compare/v4.27.0...v4.27.1) (2022-09-20)
-
-
-### Bug Fixes
-
-* **plex:** stop the plex sync from deleting episodes when we can't find the plex key ([66b05e5](https://github.com/Ombi-app/Ombi/commit/66b05e5a85dbfe1fec5f9366e80987f2cfa1f4fe))
-
-
-
-# [4.27.0](https://github.com/Ombi-app/Ombi/compare/v4.26.0...v4.27.0) (2022-09-14)
-
-
-### Features
-
-* Recently requested improvements ([#4755](https://github.com/Ombi-app/Ombi/issues/4755)) ([ff04d87](https://github.com/Ombi-app/Ombi/commit/ff04d875343604c77c391bf55d0968977e480281))
-
-
-
-# [4.26.0](https://github.com/Ombi-app/Ombi/compare/v4.25.1...v4.26.0) (2022-09-07)
-
-
-### Features
-
-* **notifications:** Add more curly variables for partially available notification ([66aa101](https://github.com/Ombi-app/Ombi/commit/66aa101019c4c4b34e186db9d303049d02b9c781))
-
-
-
-## [4.25.1](https://github.com/Ombi-app/Ombi/compare/v4.25.0...v4.25.1) (2022-09-07)
-
-
-### Bug Fixes
-
-* **webhook:** Remove added trailing slash from webhook URL [#4710](https://github.com/Ombi-app/Ombi/issues/4710) ([369eb33](https://github.com/Ombi-app/Ombi/commit/369eb339171671101be219486e2aab27a20f3d74))
-
-
-
-# [4.25.0](https://github.com/Ombi-app/Ombi/compare/v4.24.0...v4.25.0) (2022-08-23)
-
-
-### Bug Fixes
-
-* fixed stats controller ([#4742](https://github.com/Ombi-app/Ombi/issues/4742)) ([47ea64b](https://github.com/Ombi-app/Ombi/commit/47ea64b5a401770f1943b575ca40f84d515e96b3))
-
-
-### Features
-
-* Watchlist history errors([#4741](https://github.com/Ombi-app/Ombi/issues/4741)) ([c222f1a](https://github.com/Ombi-app/Ombi/commit/c222f1a945e944ef34e68cad2b61f40e57cab823))
-
-
-
-# [4.24.0](https://github.com/Ombi-app/Ombi/compare/v4.23.2...v4.24.0) (2022-08-22)
-
-
-### Features
-
-* add crew on movie page ([#4722](https://github.com/Ombi-app/Ombi/issues/4722)) ([1d53261](https://github.com/Ombi-app/Ombi/commit/1d532613823804b25984bd1d223d081a54ad143d))
-
-
-
-## [4.23.2](https://github.com/Ombi-app/Ombi/compare/v4.23.1...v4.23.2) (2022-08-22)
-
-
-### Bug Fixes
-
-* Fix conflicting property name for Swagger ([#4733](https://github.com/Ombi-app/Ombi/issues/4733)) ([d661f32](https://github.com/Ombi-app/Ombi/commit/d661f32e8a9e105faab6380b4b7b642896b98163))
-
-
-
-## [4.23.1](https://github.com/Ombi-app/Ombi/compare/v4.23.0...v4.23.1) (2022-08-12)
-
-
-### Bug Fixes
-
-* Localize recently requested on discover page ([#4729](https://github.com/Ombi-app/Ombi/issues/4729)) ([bf65c76](https://github.com/Ombi-app/Ombi/commit/bf65c76ff9ce38f65a9e5feb872734e8d8e35eb6))
-
-
-
-# [4.23.0](https://github.com/Ombi-app/Ombi/compare/v4.22.5...v4.23.0) (2022-08-09)
-
-
-### Bug Fixes
-
-* Log Microsoft warnings to log file ([#4723](https://github.com/Ombi-app/Ombi/issues/4723)) ([26ac75f](https://github.com/Ombi-app/Ombi/commit/26ac75f0c223c2a91e3471797ae46ede3fde89cc))
-
-
-### Features
-
-* ✨ Recently Requested on Discover Page ([#4387](https://github.com/Ombi-app/Ombi/issues/4387)) ([44d38fb](https://github.com/Ombi-app/Ombi/commit/44d38fbaae521dbb467b61c7471b2384015ac52e))
-
-
-
-## [4.22.4](https://github.com/Ombi-app/Ombi/compare/v4.22.3...v4.22.4) (2022-08-04)
-
-
-### Bug Fixes
-
-* :bug: Fixed missing externals ([#4712](https://github.com/Ombi-app/Ombi/issues/4712)) ([fcc1eaa](https://github.com/Ombi-app/Ombi/commit/fcc1eaaa377683dcdc81d62a2a688fb0c4490c7b))
-* fixed trakt image not loading when base url present ([#4711](https://github.com/Ombi-app/Ombi/issues/4711)) ([f102dcf](https://github.com/Ombi-app/Ombi/commit/f102dcf751c2eb62ebfe30f9f8e4b2ad863c3b0d))
-* **translations:** 🌐 New translations from Crowdin [skip ci] ([#4713](https://github.com/Ombi-app/Ombi/issues/4713)) ([ff142b0](https://github.com/Ombi-app/Ombi/commit/ff142b09abbb2f9540387284222552e6e12639fe))
-
-
-
-## [4.22.3](https://github.com/Ombi-app/Ombi/compare/v4.22.2...v4.22.3) (2022-07-28)
-
-
-### Bug Fixes
-
-* Override Sonarr V3 Profiles endpoint ([#4678](https://github.com/Ombi-app/Ombi/issues/4678)) ([875da95](https://github.com/Ombi-app/Ombi/commit/875da959f353119b05138d68ee6d32a49e14b91e))
-
-
-
-## [4.22.2](https://github.com/Ombi-app/Ombi/compare/v4.22.1...v4.22.2) (2022-07-25)
-
-
-### Bug Fixes
-
-* fixed an issue where I broke images for some users ([81ddc85](https://github.com/Ombi-app/Ombi/commit/81ddc8553b9094c3f6843b036daebb2eb9262e00))
-
-
-
-## [4.22.1](https://github.com/Ombi-app/Ombi/compare/v4.22.0...v4.22.1) (2022-07-25)
-
-
-### Bug Fixes
-
-* **discover:** :bug: Created new Image component to handle 429's from TMDB ([#4698](https://github.com/Ombi-app/Ombi/issues/4698)) and fixed [#4635](https://github.com/Ombi-app/Ombi/issues/4635) ([#4699](https://github.com/Ombi-app/Ombi/issues/4699)) ([f22d3da](https://github.com/Ombi-app/Ombi/commit/f22d3da765799365455b919027f7563e52b347c3))
-
-
-
-# [4.22.0](https://github.com/Ombi-app/Ombi/compare/v4.21.2...v4.22.0) (2022-07-22)
-
-
-### Features
-
-* **discover:** ✨ Added infinite scroll on advanced search results ([898bc89](https://github.com/Ombi-app/Ombi/commit/898bc89fa78245c1f3de9481f6c724f087a16e39))
-
-
-
-## [4.21.2](https://github.com/Ombi-app/Ombi/compare/v4.21.1...v4.21.2) (2022-07-22)
-
-
-### Bug Fixes
-
-* Landing and Login page improvements ([#4690](https://github.com/Ombi-app/Ombi/issues/4690)) ([6d423b5](https://github.com/Ombi-app/Ombi/commit/6d423b5447c52c5e59d8d2bd92a23b47468eb736))
-
-
-
-## [4.21.1](https://github.com/Ombi-app/Ombi/compare/v4.21.0...v4.21.1) (2022-07-11)
-
-
-### Bug Fixes
-
-* **images:** Retry images with a backoff when we get a Too Many requests from TheMovieDb [#4685](https://github.com/Ombi-app/Ombi/issues/4685) ([3f1f35d](https://github.com/Ombi-app/Ombi/commit/3f1f35df3164db6739691cdda8f925c296239791))
-
-
-
-# [4.21.0](https://github.com/Ombi-app/Ombi/compare/v4.20.4...v4.21.0) (2022-06-22)
-
-
-### Features
-
-* Upgrade to Angular14 ([#4668](https://github.com/Ombi-app/Ombi/issues/4668)) ([b9d55a4](https://github.com/Ombi-app/Ombi/commit/b9d55a469b412558cbf67c1e25db7fdda5964cd8))
-
-
-### Performance Improvements
-
-* stop populating obsolete subscribe fields ([#4625](https://github.com/Ombi-app/Ombi/issues/4625)) ([9a73463](https://github.com/Ombi-app/Ombi/commit/9a734637665f671b17c2bb440d93b35a891c142b))
-
-
-
-## [4.20.4](https://github.com/Ombi-app/Ombi/compare/v4.20.3...v4.20.4) (2022-06-15)
-
-
-### Bug Fixes
-
-* fixed build ([f877921](https://github.com/Ombi-app/Ombi/commit/f8779219146051ea74f8b6408658ff7975afb88b))
-
-
-
-## [4.20.3](https://github.com/Ombi-app/Ombi/compare/v4.20.2...v4.20.3) (2022-06-05)
-
-
-### Bug Fixes
-
-* **plex:** 🐛 Fixed an issue with the Plex Sync ([ab1a11a](https://github.com/Ombi-app/Ombi/commit/ab1a11af78efbe9d37bd55aa80a640796c138a98))
-
-
-
-## [4.20.2](https://github.com/Ombi-app/Ombi/compare/v4.20.1...v4.20.2) (2022-06-03)
-
-
-### Bug Fixes
-
-* :bug: Fixed the Request on Behalf of having blanks ([#4667](https://github.com/Ombi-app/Ombi/issues/4667)) ([7dd9b1c](https://github.com/Ombi-app/Ombi/commit/7dd9b1cac07f571dd35b362544e4fe0226c4b817))
-
-
-
-## [4.20.1](https://github.com/Ombi-app/Ombi/compare/v4.20.0...v4.20.1) (2022-05-27)
-
-
-### Bug Fixes
-
-* added media type tag to media type text ([#4638](https://github.com/Ombi-app/Ombi/issues/4638)) ([fe501d3](https://github.com/Ombi-app/Ombi/commit/fe501d34a0c36ac9f000b107eca49dbc6694d006))
-* **API:** Fix pagination in some edge cases ([#4649](https://github.com/Ombi-app/Ombi/issues/4649)) ([a70bf8f](https://github.com/Ombi-app/Ombi/commit/a70bf8f46c76d74c9dfdf908c53bd9955ca0a35d))
-* **discover:** Carousel touch not working when scrolling page and recommendations and similar movie navigation ([#4633](https://github.com/Ombi-app/Ombi/issues/4633)) ([d5ef1d5](https://github.com/Ombi-app/Ombi/commit/d5ef1d53e5f77d19dba8b8059c80b538a3e14f2a))
-* Improve Swagger documentation ([#4652](https://github.com/Ombi-app/Ombi/issues/4652)) ([181892b](https://github.com/Ombi-app/Ombi/commit/181892bcfe88e6d76febf49ef57745d04552d08e))
-* Missing Poster broken link fix ([#4637](https://github.com/Ombi-app/Ombi/issues/4637)) ([4070f0d](https://github.com/Ombi-app/Ombi/commit/4070f0d093b1c92487a1c80cabad8283a9650f51))
-* **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](https://github.com/Ombi-app/Ombi/issues/4648)) ([6d16442](https://github.com/Ombi-app/Ombi/commit/6d16442d4d714920367df065a3ced42b729f4233))
-* **sync:** Emby+Jellyfin - sync multi-episode files of 3+ episodes ([bd8fd89](https://github.com/Ombi-app/Ombi/commit/bd8fd890554c9d85d6da4d2cee813e82ce698e52))
-
-
-
-# [4.20.0](https://github.com/Ombi-app/Ombi/compare/v4.19.1...v4.20.0) (2022-04-28)
-
-
-### Features
-
-* **discover:** Show more relevant shows in upcoming TV ([8357819](https://github.com/Ombi-app/Ombi/commit/8357819b53b8c675c0b246d7006b5a778bdba33f))
-
-
-
-## [4.19.1](https://github.com/Ombi-app/Ombi/compare/v4.19.0...v4.19.1) (2022-04-27)
-
-
-
-# [4.19.0](https://github.com/Ombi-app/Ombi/compare/v4.18.0...v4.19.0) (2022-04-27)
-
-
-### Features
-
-* **sync:** Detect reidentified movies in Emby and Jellyfin ([5938077](https://github.com/Ombi-app/Ombi/commit/5938077d82a5357f79c07b218b3986557a5816e8))
-* **sync:** Detect reidentified series in Emby and Jellyfin ([9096e91](https://github.com/Ombi-app/Ombi/commit/9096e91d55d268819bce22831f8a8b27f2a1776b))
-
-
-
-# [4.18.0](https://github.com/Ombi-app/Ombi/compare/v4.17.0...v4.18.0) (2022-04-26)
-
-
-### Bug Fixes
-
-* **discover:** Fix cache mix up ([03d9422](https://github.com/Ombi-app/Ombi/commit/03d94220c7eaafb50c6c80a6ed1150794b873ac3))
-* **discover:** Fix new trending feature detection ([6794b88](https://github.com/Ombi-app/Ombi/commit/6794b887f6544fb41528bdd9728b7824b65e47ee))
-* **settings:** Allow toggling features when there are more than one ([a373359](https://github.com/Ombi-app/Ombi/commit/a373359ae8e6bad42b558a6e01a8ff2840d3bbaa))
-
-
-### Features
-
-* **discover:** Add new trending source experimental feature ([1a0823c](https://github.com/Ombi-app/Ombi/commit/1a0823ca80559417c67323aaeaa1ef5243e98031))
-* **discover:** Default trending source to new logic ([4f12939](https://github.com/Ombi-app/Ombi/commit/4f12939e22020a67a5ee75e2907923faea136e8d))
-
-
-
-# [4.17.0](https://github.com/Ombi-app/Ombi/compare/v4.16.17...v4.17.0) (2022-04-25)
-
-
-
-## [4.16.17](https://github.com/Ombi-app/Ombi/compare/v4.16.16...v4.16.17) (2022-04-25)
-
-
-
-## [4.16.16](https://github.com/Ombi-app/Ombi/compare/v4.16.15...v4.16.16) (2022-04-25)
-
-
-### Bug Fixes
-
-* **4616:** :bug: fixed mandatory fields ([d8f2260](https://github.com/Ombi-app/Ombi/commit/d8f2260c7ae3ed48386743b7adbd06e284487034))
-
-
-
-## [4.16.15](https://github.com/Ombi-app/Ombi/compare/v4.16.14...v4.16.15) (2022-04-24)
-
-
-### Features
-
-* **discover:** Add original language filter ([ef7ec86](https://github.com/Ombi-app/Ombi/commit/ef7ec861d8aede2a4817752c990617f583805391))
-
-
-
-## [4.16.14](https://github.com/Ombi-app/Ombi/compare/v4.16.13...v4.16.14) (2022-04-19)
-
-
-
-## [4.16.13](https://github.com/Ombi-app/Ombi/compare/v4.16.12...v4.16.13) (2022-04-19)
-
-
-
diff --git a/README.md b/README.md
index 8fb37b8f8..098c7f6d0 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@ ____
[](https://github.com/ombi-app/Ombi)
[](http://www.firsttimersonly.com/)
[](https://crowdin.com/project/ombi)
-[](https://github.com/Ombi-app/Ombi/actions/workflows/automation-tests.yml)
+[](https://github.com/Ombi-app/Ombi/actions/workflows/cypress.yml)
[](https://patreon.com/tidusjar/Ombi)
[](https://paypal.me/PlexRequestsNet)
@@ -78,6 +78,13 @@ Here are some of the features Ombi has:
Jamie
+
+
+
+
+ Roxedus
+
+ |
@@ -85,6 +92,13 @@ Here are some of the features Ombi has:
Twan Ariens
|
+
+
+
+
+ Drew
+
+ |
@@ -98,7 +112,8 @@ Here are some of the features Ombi has:
Anojh Thayaparan
- |
+
+
@@ -112,8 +127,7 @@ Here are some of the features Ombi has:
James Carty
- |
-
+
@@ -122,10 +136,10 @@ Here are some of the features Ombi has:
|
-
-
+
+
- Amy Jeanes
+ Matt Jeanes
|
@@ -141,7 +155,8 @@ Here are some of the features Ombi has:
Dhruv Bhavsar
- |
+
+
@@ -155,8 +170,7 @@ Here are some of the features Ombi has:
Bruvv
- |
-
+
@@ -184,7 +198,8 @@ Here are some of the features Ombi has:
Julien Loir
- |
+
+
@@ -198,8 +213,7 @@ Here are some of the features Ombi has:
Avi
- |
-
+
@@ -214,13 +228,6 @@ Here are some of the features Ombi has:
Stefan
|
-
-
-
-
- Taylor Buchanan
-
- |
@@ -228,6 +235,14 @@ Here are some of the features Ombi has:
Shannon Barrett
|
+
+
+
+
+ Taylor Buchanan
+
+ |
+
@@ -241,8 +256,7 @@ Here are some of the features Ombi has:
Patrick Collins
- |
-
+
@@ -251,38 +265,24 @@ Here are some of the features Ombi has:
|
-
-
+
+
- Snyk Bot
+ Chris Pritchard
|
-
-
+
+
- Fire-Swan
+ Michael Reber
|
-
-
+
+
- Ombi-bot
-
- |
-
-
-
-
- Mhann
-
- |
-
-
-
-
- Dr3amer
+ Stephen Panzer
|
@@ -294,96 +294,46 @@ Here are some of the features Ombi has:
-
-
+
+
- Stephen Panzer
+ Dr3amer
|
-
-
+
+
- Michael Reber
+ Mhann
|
-
-
+
+
- Chris Pritchard
+ Ombi-bot
|
-
-
+
+
- Javier Pastor
+ Snyk Bot
|
-
-
+
+
- Sorano
+ Andrew Metzger
|
-
-
+
+
- Vbgf
-
- |
-
-
-
-
- Qstick
-
- |
-
-
-
-
- Marius Schiffer
-
- |
-
-
-
-
- Jeffrey Peters
-
- |
-
-
-
-
- Jack Steel
-
- |
-
-
-
-
- Guillaume Taquet Gasperini
-
- |
-
-
-
-
-
- Fredrik81
-
- |
-
-
-
-
- David Pooley
+ Austin Jackson
|
@@ -394,325 +344,117 @@ Here are some of the features Ombi has:
|
-
-
+
+
- Austin Jackson
+ David Pooley
|
-
-
+
+
- Andrew Metzger
+ Fredrik81
|
-
-
+
+
- Tom McClellan
+ Guillaume Taquet Gasperini
+
+ |
+
+
+
+
+ Jack Steel
|
-
-
+
+
- Tim Trott
+ Jeffrey Peters
|
-
-
+
+
- Thomas Van Tilburg
+ Marius Schiffer
|
-
-
+
+
- Teifun2
+ Qstick
|
-
-
+
+
- Shoghi
+ Vbgf
|
-
-
+
+
- Sean Callinan
+ Sorano
|
-
-
+
+
- Samuel Bartík
+ Javier Pastor
|
-
-
+
+
- Rob Gökemeijer
+ Abe Kline
|
-
-
+
+
- Qiming Chen
+ Alexander Standke
|
-
-
+
+
- Nathan Miller
+ Aljosa Asanovic
|
-
-
+
+
- Miguel A Vico Moya
+ Ashyni
|
-
-
+
+
- Micky
+ Majawat
|
-
-
+
+
- Maxence Lecanu
-
- |
-
-
-
-
-
- Matt
-
- |
-
-
-
-
- Marley
-
- |
-
-
-
-
- Madeleine Schönemann
-
- |
-
-
-
-
- Lucane
-
- |
-
-
-
-
- Zobe123
-
- |
-
-
-
-
- Mike
-
- |
-
-
-
-
-
- Tdorsey
-
- |
-
-
-
-
- Sirmarv
-
- |
-
-
-
-
- Ryan-c44
-
- |
-
-
-
-
- Mkgeeky
-
- |
-
-
-
-
- Patrick Weber
-
- |
-
-
-
-
- Maartenheebink
-
- |
-
-
-
-
-
- M4tta
-
- |
-
-
-
-
- Echel0n
-
- |
-
-
-
-
- Dorian ALKOUM
-
- |
-
-
-
-
- Michael DiStaula
-
- |
-
-
-
-
- Camjac251
-
- |
-
-
-
-
- Blake Drumm
-
- |
-
-
-
-
-
- Tim OBrien
-
- |
-
-
-
-
- Xirg
-
- |
-
-
-
-
- Travis Bybee
-
- |
-
-
-
-
- Torkil
-
- |
-
-
-
-
- Lea
-
- |
-
-
-
-
- Devin Buhl
-
- |
-
-
-
-
-
- David Torosyan
-
- |
-
-
-
-
- David
-
- |
-
-
-
-
- David Benson
-
- |
-
-
-
-
- Daniel Lamando
-
- |
-
-
-
-
- Codehhh
-
- |
-
-
-
-
- Christopher Demicoli
+ Calvin
|
@@ -724,81 +466,124 @@ Here are some of the features Ombi has:
-
-
+
+
- Calvin
+ Christopher Demicoli
|
-
-
+
+
- Majawat
+ Codehhh
|
-
-
+
+
- Ashyni
+ Daniel Lamando
|
-
-
+
+
- Antonin
+ David
|
-
-
+
+
- Aljosa Asanovic
+ David Torosyan
|
-
-
+
+
- Alexandre Picavet
+ Devin Buhl
|
-
-
+
+
- Alexander Standke
+ Eli
|
-
-
+
+
- Alexander Russell
+ Fish2
|
-
-
+
+
- Abe Kline
+ Hadrien
|
-
-
+
+
- Kyle Lucy
+ Haries Ramdhani
|
-
-
+
+
- Kris Klosterman
+ Igor Borges
+
+ |
+
+
+
+
+
+ Imgbot
+
+ |
+
+
+
+
+ Jacob Pyke
+
+ |
+
+
+
+
+ James White
+
+ |
+
+
+
+
+ Joe Groocock
+
+ |
+
+
+
+
+ Joe Harvey
+
+ |
+
+
+
+
+ Jon Bloom
|
@@ -810,103 +595,275 @@ Here are some of the features Ombi has:
-
-
+
+
- Jon Bloom
+ Kris Klosterman
|
-
-
+
+
- Joel Samson
+ Kyle Lucy
|
-
-
+
+
- Joe Harvey
+ Lightkeeper
|
-
-
+
+
- Joe Groocock
+ Lucane
|
-
-
+
+
- James White
+ Madeleine Schönemann
|
-
-
+
+
- Jacob Pyke
+ Marley
|
-
-
+
+
- Imgbot
+ Matt
|
-
-
+
+
- Igor Borges
+ Maxence Lecanu
|
-
-
+
+
- Haries Ramdhani
+ Micky
|
-
-
+
+
- Hadrien
+ Miguel A Vico Moya
|
-
-
+
+
- Grygon
+ Nathan Miller
|
-
-
+
+
- Fish2
+ Qiming Chen
|
-
-
+
+
- Eli
+ Randall Bruder
|
-
-
+
+
- Drew
+ Rob Gökemeijer
+
+ |
+
+
+
+
+ Samuel Bartík
+
+ |
+
+
+
+
+ Sean Callinan
+
+ |
+
+
+
+
+ Shoghi
+
+ |
+
+
+
+
+
+ Teifun2
+
+ |
+
+
+
+
+ Thomas Van Tilburg
+
+ |
+
+
+
+
+ Tim Trott
+
+ |
+
+
+
+
+ Tom McClellan
+
+ |
+
+
+
+
+ Torkil
+
+ |
+
+
+
+
+ Travis Bybee
+
+ |
+
+
+
+
+
+ Xirg
+
+ |
+
+
+
+
+ Tim OBrien
+
+ |
+
+
+
+
+ Blake Drumm
+
+ |
+
+
+
+
+ Camjac251
+
+ |
+
+
+
+
+ Michael DiStaula
+
+ |
+
+
+
+
+ Dorian ALKOUM
+
+ |
+
+
+
+
+
+ Echel0n
+
+ |
+
+
+
+
+ M4tta
+
+ |
+
+
+
+
+ Maartenheebink
+
+ |
+
+
+
+
+ Patrick Weber
+
+ |
+
+
+
+
+ Mkgeeky
+
+ |
+
+
+
+
+ Sirmarv
+
+ |
+
+
+
+
+
+ Tdorsey
+
+ |
+
+
+
+
+ Mike
+
+ |
+
+
+
+
+ Zobe123
|
diff --git a/src/.idea/.idea.Ombi/.idea/contentModel.xml b/src/.idea/.idea.Ombi/.idea/contentModel.xml
new file mode 100644
index 000000000..ffc2d3ce6
--- /dev/null
+++ b/src/.idea/.idea.Ombi/.idea/contentModel.xml
@@ -0,0 +1,2309 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/.idea.Ombi/.idea/dbnavigator.xml b/src/.idea/.idea.Ombi/.idea/dbnavigator.xml
deleted file mode 100644
index 4e210d20a..000000000
--- a/src/.idea/.idea.Ombi/.idea/dbnavigator.xml
+++ /dev/null
@@ -1,440 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/.idea/.idea.Ombi/.idea/indexLayout.xml b/src/.idea/.idea.Ombi/.idea/indexLayout.xml
index 7b08163ce..27ba142e9 100644
--- a/src/.idea/.idea.Ombi/.idea/indexLayout.xml
+++ b/src/.idea/.idea.Ombi/.idea/indexLayout.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/src/.idea/.idea.Ombi/.idea/modules.xml b/src/.idea/.idea.Ombi/.idea/modules.xml
new file mode 100644
index 000000000..4d6d71637
--- /dev/null
+++ b/src/.idea/.idea.Ombi/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.idea/.idea.Ombi/.idea/projectSettingsUpdater.xml b/src/.idea/.idea.Ombi/.idea/projectSettingsUpdater.xml
deleted file mode 100644
index 64af657f5..000000000
--- a/src/.idea/.idea.Ombi/.idea/projectSettingsUpdater.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/.idea/.idea.Ombi/.idea/workspace.xml b/src/.idea/.idea.Ombi/.idea/workspace.xml
index d008ba9a7..30951a63b 100644
--- a/src/.idea/.idea.Ombi/.idea/workspace.xml
+++ b/src/.idea/.idea.Ombi/.idea/workspace.xml
@@ -1,20 +1,25 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
@@ -232,75 +237,27 @@
- {
- "lastFilter": {
- "state": "OPEN",
- "assignee": "tidusjar"
- }
-}
-
-
-
-
-
-
-
-
-
-
-
- {
- "selectedUrlAndAccountId": {
- "url": "https://github.com/ombi-app/ombi",
- "accountId": "22dd09fe-fb9e-48a4-bfcc-3c152edf3f25"
- }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -318,17 +275,12 @@
- {
- "customColor": "",
- "associatedIndex": 0
-}
-
@@ -391,26 +343,27 @@
-
-
-
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -423,7 +376,7 @@
-
+
@@ -438,7 +391,7 @@
-
+
@@ -453,7 +406,7 @@
-
+
@@ -468,7 +421,7 @@
-
+
@@ -483,11 +436,10 @@
-
+
-
@@ -496,9 +448,6 @@
1563957157468
-
-
-
@@ -544,11 +493,7 @@
-
-
-
-
-
+
@@ -560,7 +505,7 @@
file://$PROJECT_DIR$/Ombi/Controllers/V1/TokenController.cs
48
-
+
@@ -573,12 +518,12 @@
file://$PROJECT_DIR$/Ombi.Core/Engine/V2/MultiSearchEngine.cs
59
-
+
-
+
-
+
@@ -586,12 +531,12 @@
file://$PROJECT_DIR$/Ombi.Core/Engine/V2/MultiSearchEngine.cs
49
-
+
-
+
-
+
@@ -599,55 +544,16 @@
file://$PROJECT_DIR$/Ombi.Api.MusicBrainz/MusicBrainzApi.cs
30
-
+
-
+
-
+
-
- file://$PROJECT_DIR$/Ombi.Schedule/Jobs/Plex/PlexWatchlistImport.cs
- 110
-
-
-
-
-
-
-
-
-
-
-
- file://$PROJECT_DIR$/Ombi.Schedule/Jobs/Plex/PlexWatchlistImport.cs
- 77
-
-
-
-
-
-
-
-
-
-
-
- file://$PROJECT_DIR$/Ombi.Schedule/Jobs/Plex/PlexWatchlistImport.cs
- 100
-
-
-
-
-
-
-
-
-
-
diff --git a/src/.idea/.idea.Ombi/riderModule.iml b/src/.idea/.idea.Ombi/riderModule.iml
new file mode 100644
index 000000000..d716cec6d
--- /dev/null
+++ b/src/.idea/.idea.Ombi/riderModule.iml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/.vscode/tasks.json b/src/.vscode/tasks.json
index ad83d25c8..ad868d2dc 100644
--- a/src/.vscode/tasks.json
+++ b/src/.vscode/tasks.json
@@ -1,31 +1,22 @@
{
- "version": "2.0.0",
+ "version": "0.1.0",
"command": "dotnet",
+ "isShellCommand": true,
"args": [],
"tasks": [
{
- "label": "build",
- "type": "shell",
- "command": "dotnet",
+ "taskName": "build",
"args": [
- "build",
"${workspaceRoot}/Ombi/Ombi.csproj"
],
- "problemMatcher": "$msCompile",
- "group": {
- "_id": "build",
- "isDefault": false
- }
+ "isBuildCommand": true,
+ "problemMatcher": "$msCompile"
},
{
- "label": "lint",
- "type": "shell",
+ "taskName": "lint",
"command": "npm",
- "args": [
- "run",
- "lint"
- ],
- "problemMatcher": []
+ "isShellCommand": true,
+ "args": ["run", "lint"]
}
]
}
\ No newline at end of file
diff --git a/src/Ombi.Api.CloudService/Ombi.Api.CloudService.csproj b/src/Ombi.Api.CloudService/Ombi.Api.CloudService.csproj
index a0a4edab3..5939549de 100644
--- a/src/Ombi.Api.CloudService/Ombi.Api.CloudService.csproj
+++ b/src/Ombi.Api.CloudService/Ombi.Api.CloudService.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
Debug;Release;NonUiBuild
diff --git a/src/Ombi.Api.CouchPotato/Ombi.Api.CouchPotato.csproj b/src/Ombi.Api.CouchPotato/Ombi.Api.CouchPotato.csproj
index 9d0efbe77..89c47d251 100644
--- a/src/Ombi.Api.CouchPotato/Ombi.Api.CouchPotato.csproj
+++ b/src/Ombi.Api.CouchPotato/Ombi.Api.CouchPotato.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
latest
Debug;Release;NonUiBuild
diff --git a/src/Ombi.Api.Discord/Models/DiscordWebhookBody.cs b/src/Ombi.Api.Discord/Models/DiscordWebhookBody.cs
index 45f959882..7700005c8 100644
--- a/src/Ombi.Api.Discord/Models/DiscordWebhookBody.cs
+++ b/src/Ombi.Api.Discord/Models/DiscordWebhookBody.cs
@@ -7,7 +7,6 @@ namespace Ombi.Api.Discord.Models
{
public string content { get; set; }
public string username { get; set; }
- public string avatar_url { get; set; }
public List embeds { get; set; }
}
@@ -33,6 +32,7 @@ namespace Ombi.Api.Discord.Models
{
public string name { get; set; }
public string url { get; set; }
+ public string iconurl { get; set; }
}
public class DiscordField
diff --git a/src/Ombi.Api.Discord/Ombi.Api.Discord.csproj b/src/Ombi.Api.Discord/Ombi.Api.Discord.csproj
index ea91cee48..70032d638 100644
--- a/src/Ombi.Api.Discord/Ombi.Api.Discord.csproj
+++ b/src/Ombi.Api.Discord/Ombi.Api.Discord.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
diff --git a/src/Ombi.Api.DogNzb/Ombi.Api.DogNzb.csproj b/src/Ombi.Api.DogNzb/Ombi.Api.DogNzb.csproj
index 9d0efbe77..89c47d251 100644
--- a/src/Ombi.Api.DogNzb/Ombi.Api.DogNzb.csproj
+++ b/src/Ombi.Api.DogNzb/Ombi.Api.DogNzb.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
latest
Debug;Release;NonUiBuild
diff --git a/src/Ombi.Api.Emby/EmbyApi.cs b/src/Ombi.Api.Emby/EmbyApi.cs
index 5d941b083..e9e5f0fca 100644
--- a/src/Ombi.Api.Emby/EmbyApi.cs
+++ b/src/Ombi.Api.Emby/EmbyApi.cs
@@ -56,7 +56,7 @@ namespace Ombi.Api.Emby
return obj;
}
- public async Task LogIn(string username, string password, string apiKey, string baseUri, string clientIpAddress)
+ public async Task LogIn(string username, string password, string apiKey, string baseUri)
{
var request = new Request("emby/users/authenticatebyname", baseUri, HttpMethod.Post);
var body = new
@@ -71,11 +71,6 @@ namespace Ombi.Api.Emby
$"MediaBrowser Client=\"Ombi\", Device=\"Ombi\", DeviceId=\"v3\", Version=\"v3\"");
AddHeaders(request, apiKey);
- if (!string.IsNullOrEmpty(clientIpAddress))
- {
- request.AddHeader("X-Forwarded-For", clientIpAddress);
- }
-
var obj = await Api.Request(request);
return obj;
}
@@ -253,49 +248,5 @@ namespace Ombi.Api.Emby
req.AddContentHeader("Content-Type", "application/json");
req.AddHeader("Device", "Ombi");
}
-
- public async Task> GetMoviesPlayed(string apiKey, string parentIdFilder, int startIndex, int count, string userId, string baseUri) =>
- await GetPlayed("Movie", apiKey, userId, baseUri, startIndex, count, parentIdFilder, "ProviderIds");
-
- public async Task> GetTvPlayed(string apiKey, string parentIdFilder, int startIndex, int count, string userId, string baseUri) =>
- await GetPlayed("Episode", apiKey, userId, baseUri, startIndex, count, parentIdFilder);
-
- private async Task> GetPlayed(
- string type,
- string apiKey,
- string userId,
- string baseUri,
- int startIndex,
- int count,
- string parentIdFilder = default,
- string fields = default)
- {
- var request = new Request($"emby/items", baseUri, HttpMethod.Get);
-
- request.AddQueryString("Recursive", true.ToString());
- request.AddQueryString("IncludeItemTypes", type);
- if (!string.IsNullOrEmpty(fields))
- {
- request.AddQueryString("Fields", fields);
- }
- request.AddQueryString("UserId", userId);
- request.AddQueryString("isPlayed", true.ToString());
-
- // paginate and display recently played items first
- request.AddQueryString("sortBy", "DatePlayed");
- request.AddQueryString("SortOrder", "Descending");
- request.AddQueryString("startIndex", startIndex.ToString());
- request.AddQueryString("limit", count.ToString());
-
- if (!string.IsNullOrEmpty(parentIdFilder))
- {
- request.AddQueryString("ParentId", parentIdFilder);
- }
-
- AddHeaders(request, apiKey);
-
- var obj = await Api.Request>(request);
- return obj;
- }
}
}
diff --git a/src/Ombi.Api.Emby/IBaseEmbyApi.cs b/src/Ombi.Api.Emby/IBaseEmbyApi.cs
index e2ebc513c..248c0a88f 100644
--- a/src/Ombi.Api.Emby/IBaseEmbyApi.cs
+++ b/src/Ombi.Api.Emby/IBaseEmbyApi.cs
@@ -11,7 +11,7 @@ namespace Ombi.Api.Emby
{
Task GetSystemInformation(string apiKey, string baseUrl);
Task> GetUsers(string baseUri, string apiKey);
- Task LogIn(string username, string password, string apiKey, string baseUri, string clientIpAddress);
+ Task LogIn(string username, string password, string apiKey, string baseUri);
Task> GetAllMovies(string apiKey, string parentIdFilder, int startIndex, int count, string userId,
string baseUri);
@@ -32,8 +32,5 @@ namespace Ombi.Api.Emby
Task> RecentlyAddedMovies(string apiKey, string parentIdFilder, int startIndex, int count, string userId, string baseUri);
Task> RecentlyAddedEpisodes(string apiKey, string parentIdFilder, int startIndex, int count, string userId, string baseUri);
Task> RecentlyAddedShows(string apiKey, string parentIdFilder, int startIndex, int count, string userId, string baseUri);
-
- Task> GetMoviesPlayed(string apiKey, string parentIdFilder, int startIndex, int count, string userId, string baseUri);
- Task> GetTvPlayed(string apiKey, string parentIdFilder, int startIndex, int count, string userId, string baseUri);
}
}
\ No newline at end of file
diff --git a/src/Ombi.Api.Emby/Models/Media/Movie/EmbyMovie.cs b/src/Ombi.Api.Emby/Models/Media/Movie/EmbyMovie.cs
index 3e8f5407e..e127f75f6 100644
--- a/src/Ombi.Api.Emby/Models/Media/Movie/EmbyMovie.cs
+++ b/src/Ombi.Api.Emby/Models/Media/Movie/EmbyMovie.cs
@@ -5,8 +5,30 @@ namespace Ombi.Api.Emby.Models.Movie
public class EmbyMovie
{
public string Name { get; set; }
+ public string ServerId { get; set; }
public string Id { get; set; }
+ public string Container { get; set; }
+ public DateTime PremiereDate { get; set; }
+ public object[] ProductionLocations { get; set; }
+ public string OfficialRating { get; set; }
+ public float CommunityRating { get; set; }
+ public long RunTimeTicks { get; set; }
+ public string PlayAccess { get; set; }
+ public int ProductionYear { get; set; }
+ public bool IsPlaceHolder { get; set; }
+ public bool IsHD { get; set; }
+ public bool IsFolder { get; set; }
public string Type { get; set; }
+ public int LocalTrailerCount { get; set; }
+ public EmbyUserdata UserData { get; set; }
+ public string VideoType { get; set; }
+ public EmbyImagetags ImageTags { get; set; }
+ public string[] BackdropImageTags { get; set; }
+ public string LocationType { get; set; }
+ public string MediaType { get; set; }
+ public bool HasSubtitles { get; set; }
+ public int CriticRating { get; set; }
+ public string Overview { get; set; }
public EmbyProviderids ProviderIds { get; set; }
public EmbyMediastream[] MediaStreams { get; set; }
}
diff --git a/src/Ombi.Api.Emby/Ombi.Api.Emby.csproj b/src/Ombi.Api.Emby/Ombi.Api.Emby.csproj
index 6578445f9..f60971192 100644
--- a/src/Ombi.Api.Emby/Ombi.Api.Emby.csproj
+++ b/src/Ombi.Api.Emby/Ombi.Api.Emby.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
diff --git a/src/Ombi.Api.FanartTv/Ombi.Api.FanartTv.csproj b/src/Ombi.Api.FanartTv/Ombi.Api.FanartTv.csproj
index ea91cee48..70032d638 100644
--- a/src/Ombi.Api.FanartTv/Ombi.Api.FanartTv.csproj
+++ b/src/Ombi.Api.FanartTv/Ombi.Api.FanartTv.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
diff --git a/src/Ombi.Api.Github/Ombi.Api.Github.csproj b/src/Ombi.Api.Github/Ombi.Api.Github.csproj
index 9d0efbe77..89c47d251 100644
--- a/src/Ombi.Api.Github/Ombi.Api.Github.csproj
+++ b/src/Ombi.Api.Github/Ombi.Api.Github.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
latest
Debug;Release;NonUiBuild
diff --git a/src/Ombi.Api.Gotify/Ombi.Api.Gotify.csproj b/src/Ombi.Api.Gotify/Ombi.Api.Gotify.csproj
index bb37e2156..be32916f8 100644
--- a/src/Ombi.Api.Gotify/Ombi.Api.Gotify.csproj
+++ b/src/Ombi.Api.Gotify/Ombi.Api.Gotify.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
diff --git a/src/Ombi.Api.GroupMe/Ombi.Api.GroupMe.csproj b/src/Ombi.Api.GroupMe/Ombi.Api.GroupMe.csproj
index 9d0efbe77..89c47d251 100644
--- a/src/Ombi.Api.GroupMe/Ombi.Api.GroupMe.csproj
+++ b/src/Ombi.Api.GroupMe/Ombi.Api.GroupMe.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
latest
Debug;Release;NonUiBuild
diff --git a/src/Ombi.Api.Jellyfin/Models/Media/Movie/JellyfinMovie.cs b/src/Ombi.Api.Jellyfin/Models/Media/Movie/JellyfinMovie.cs
index 7368c194e..a83e1f087 100644
--- a/src/Ombi.Api.Jellyfin/Models/Media/Movie/JellyfinMovie.cs
+++ b/src/Ombi.Api.Jellyfin/Models/Media/Movie/JellyfinMovie.cs
@@ -5,8 +5,30 @@ namespace Ombi.Api.Jellyfin.Models.Movie
public class JellyfinMovie
{
public string Name { get; set; }
+ public string ServerId { get; set; }
public string Id { get; set; }
+ public string Container { get; set; }
+ public DateTime PremiereDate { get; set; }
+ public object[] ProductionLocations { get; set; }
+ public string OfficialRating { get; set; }
+ public float CommunityRating { get; set; }
+ public long RunTimeTicks { get; set; }
+ public string PlayAccess { get; set; }
+ public int ProductionYear { get; set; }
+ public bool IsPlaceHolder { get; set; }
+ public bool IsHD { get; set; }
+ public bool IsFolder { get; set; }
public string Type { get; set; }
+ public int LocalTrailerCount { get; set; }
+ public JellyfinUserdata UserData { get; set; }
+ public string VideoType { get; set; }
+ public JellyfinImagetags ImageTags { get; set; }
+ public string[] BackdropImageTags { get; set; }
+ public string LocationType { get; set; }
+ public string MediaType { get; set; }
+ public bool HasSubtitles { get; set; }
+ public int CriticRating { get; set; }
+ public string Overview { get; set; }
public JellyfinProviderids ProviderIds { get; set; }
public JellyfinMediastream[] MediaStreams { get; set; }
}
diff --git a/src/Ombi.Api.Jellyfin/Ombi.Api.Jellyfin.csproj b/src/Ombi.Api.Jellyfin/Ombi.Api.Jellyfin.csproj
index b338f214f..0c745556e 100644
--- a/src/Ombi.Api.Jellyfin/Ombi.Api.Jellyfin.csproj
+++ b/src/Ombi.Api.Jellyfin/Ombi.Api.Jellyfin.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
diff --git a/src/Ombi.Api.Lidarr/Ombi.Api.Lidarr.csproj b/src/Ombi.Api.Lidarr/Ombi.Api.Lidarr.csproj
index 9d0efbe77..89c47d251 100644
--- a/src/Ombi.Api.Lidarr/Ombi.Api.Lidarr.csproj
+++ b/src/Ombi.Api.Lidarr/Ombi.Api.Lidarr.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
latest
Debug;Release;NonUiBuild
diff --git a/src/Ombi.Api.Mattermost/Ombi.Api.Mattermost.csproj b/src/Ombi.Api.Mattermost/Ombi.Api.Mattermost.csproj
index 8b01997b3..2dd241a24 100644
--- a/src/Ombi.Api.Mattermost/Ombi.Api.Mattermost.csproj
+++ b/src/Ombi.Api.Mattermost/Ombi.Api.Mattermost.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
diff --git a/src/Ombi.Api.MediaServer/Ombi.Api.MediaServer.csproj b/src/Ombi.Api.MediaServer/Ombi.Api.MediaServer.csproj
index adac0e42b..a1b98b765 100644
--- a/src/Ombi.Api.MediaServer/Ombi.Api.MediaServer.csproj
+++ b/src/Ombi.Api.MediaServer/Ombi.Api.MediaServer.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
diff --git a/src/Ombi.Api.MusicBrainz/Ombi.Api.MusicBrainz.csproj b/src/Ombi.Api.MusicBrainz/Ombi.Api.MusicBrainz.csproj
index 4a5eb42a0..1a6497ceb 100644
--- a/src/Ombi.Api.MusicBrainz/Ombi.Api.MusicBrainz.csproj
+++ b/src/Ombi.Api.MusicBrainz/Ombi.Api.MusicBrainz.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
latest
Debug;Release;NonUiBuild
diff --git a/src/Ombi.Api.Notifications/Ombi.Api.Notifications.csproj b/src/Ombi.Api.Notifications/Ombi.Api.Notifications.csproj
index 5fa7050c0..029acb3c5 100644
--- a/src/Ombi.Api.Notifications/Ombi.Api.Notifications.csproj
+++ b/src/Ombi.Api.Notifications/Ombi.Api.Notifications.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
latest
Debug;Release;NonUiBuild
diff --git a/src/Ombi.Api.Plex/IPlexApi.cs b/src/Ombi.Api.Plex/IPlexApi.cs
index be6a61c16..746c85b77 100644
--- a/src/Ombi.Api.Plex/IPlexApi.cs
+++ b/src/Ombi.Api.Plex/IPlexApi.cs
@@ -21,7 +21,7 @@ namespace Ombi.Api.Plex
Task GetMetadata(string authToken, string plexFullHost, string itemId);
Task GetSeasons(string authToken, string plexFullHost, string ratingKey);
Task GetAllEpisodes(string authToken, string host, string section, int start, int retCount);
- Task GetUsers(string authToken);
+ Task GetUsers(string authToken);
Task GetAccount(string authToken);
Task GetRecentlyAdded(string authToken, string uri, string sectionId);
Task GetPin(int pinId);
@@ -29,6 +29,5 @@ namespace Ombi.Api.Plex
Task AddUser(string emailAddress, string serverId, string authToken, int[] libs);
Task GetWatchlist(string plexToken, CancellationToken cancellationToken);
Task GetWatchlistMetadata(string ratingKey, string plexToken, CancellationToken cancellationToken);
- Task Ping(string authToken, CancellationToken cancellationToken = default);
}
}
\ No newline at end of file
diff --git a/src/Ombi.Api.Plex/Models/Friends/PlexFriends.cs b/src/Ombi.Api.Plex/Models/Friends/PlexFriends.cs
index c0442da03..e38eca6f6 100644
--- a/src/Ombi.Api.Plex/Models/Friends/PlexFriends.cs
+++ b/src/Ombi.Api.Plex/Models/Friends/PlexFriends.cs
@@ -2,42 +2,46 @@
namespace Ombi.Api.Plex.Models.Friends
{
- [XmlRoot(ElementName = "User")]
- public class UserFriends
+ [XmlRoot(ElementName = "Server")]
+ public class Server
{
[XmlAttribute(AttributeName = "id")]
public string Id { get; set; }
- ///
- /// Title is for Home Users only
- ///
+ [XmlAttribute(AttributeName = "serverId")]
+ public string ServerId { get; set; }
+ [XmlAttribute(AttributeName = "machineIdentifier")]
+ public string MachineIdentifier { get; set; }
+ [XmlAttribute(AttributeName = "name")]
+ public string Name { get; set; }
+ [XmlAttribute(AttributeName = "lastSeenAt")]
+ public string LastSeenAt { get; set; }
+ [XmlAttribute(AttributeName = "numLibraries")]
+ public string NumLibraries { get; set; }
+ [XmlAttribute(AttributeName = "owned")]
+ public string Owned { get; set; }
+ }
+
+ [XmlRoot(ElementName = "User")]
+ public class UserFriends
+ {
+ [XmlElement(ElementName = "Server")]
+ public Server Server { get; set; }
+ [XmlAttribute(AttributeName = "id")]
+ public string Id { get; set; }
[XmlAttribute(AttributeName = "title")]
public string Title { get; set; }
[XmlAttribute(AttributeName = "username")]
public string Username { get; set; }
[XmlAttribute(AttributeName = "email")]
public string Email { get; set; }
- ///
- /// DO NOT USE THIS
- /// Home Users can actually be an unmanaged account with an email/username to log in.
- ///
- [XmlAttribute(AttributeName = "home")]
- public bool HomeUser { get; set; }
-
- [XmlElement(ElementName = "Server")]
- public PlexUserServer[] Server { get; set; }
- }
-
- public class PlexUserServer
- {
- [XmlAttribute(AttributeName = "id")]
- public string Id { get; set; }
-
- [XmlAttribute(AttributeName = "serverId")]
- public string ServerId { get; set; }
+ [XmlAttribute(AttributeName = "recommendationsPlaylistId")]
+ public string RecommendationsPlaylistId { get; set; }
+ [XmlAttribute(AttributeName = "thumb")]
+ public string Thumb { get; set; }
}
[XmlRoot(ElementName = "MediaContainer")]
- public class PlexUsers
+ public class PlexFriends
{
[XmlElement(ElementName = "User")]
public UserFriends[] User { get; set; }
diff --git a/src/Ombi.Api.Plex/Ombi.Api.Plex.csproj b/src/Ombi.Api.Plex/Ombi.Api.Plex.csproj
index ea91cee48..70032d638 100644
--- a/src/Ombi.Api.Plex/Ombi.Api.Plex.csproj
+++ b/src/Ombi.Api.Plex/Ombi.Api.Plex.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
diff --git a/src/Ombi.Api.Plex/PlexApi.cs b/src/Ombi.Api.Plex/PlexApi.cs
index 8babba05d..fae4a78b9 100644
--- a/src/Ombi.Api.Plex/PlexApi.cs
+++ b/src/Ombi.Api.Plex/PlexApi.cs
@@ -65,10 +65,10 @@ namespace Ombi.Api.Plex
}
private const string SignInUri = "https://plex.tv/users/sign_in.json";
- private const string FriendsUri = "https://plex.tv/api/users";
+ private const string FriendsUri = "https://plex.tv/pms/friends/all";
private const string GetAccountUri = "https://plex.tv/users/account.json";
private const string ServerUri = "https://plex.tv/pms/servers.xml";
- private const string WatchlistUri = "https://discover.provider.plex.tv/";
+ private const string WatchlistUri = "https://metadata.provider.plex.tv/";
///
/// Sign into the Plex API
@@ -195,12 +195,12 @@ namespace Ombi.Api.Plex
///
///
///
- public async Task GetUsers(string authToken)
+ public async Task GetUsers(string authToken)
{
var request = new Request(string.Empty, FriendsUri, HttpMethod.Get, ContentType.Xml);
await AddHeaders(request, authToken);
- return await Api.Request(request);
+ return await Api.Request(request);
}
public async Task GetRecentlyAdded(string authToken, string uri, string sectionId)
@@ -320,30 +320,6 @@ namespace Ombi.Api.Plex
return result;
}
- ///
- /// Pings the Plex API to validate if a token is still valid
- ///
- /// The authentication token to validate
- /// Cancellation token
- /// True if the token is valid, false otherwise
- public async Task Ping(string authToken, CancellationToken cancellationToken = default)
- {
- try
- {
- var request = new Request("api/v2/ping", "https://plex.tv/", HttpMethod.Get);
- await AddHeaders(request, authToken);
-
- // We don't need to parse the response, just check if the request succeeds
- await Api.Request(request, cancellationToken);
- return true;
- }
- catch
- {
- // If the request fails (401, 403, etc.), the token is invalid
- return false;
- }
- }
-
///
/// Adds the required headers and also the authorization header
diff --git a/src/Ombi.Api.Pushbullet/Ombi.Api.Pushbullet.csproj b/src/Ombi.Api.Pushbullet/Ombi.Api.Pushbullet.csproj
index ea91cee48..70032d638 100644
--- a/src/Ombi.Api.Pushbullet/Ombi.Api.Pushbullet.csproj
+++ b/src/Ombi.Api.Pushbullet/Ombi.Api.Pushbullet.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
diff --git a/src/Ombi.Api.Pushover/Ombi.Api.Pushover.csproj b/src/Ombi.Api.Pushover/Ombi.Api.Pushover.csproj
index bb37e2156..be32916f8 100644
--- a/src/Ombi.Api.Pushover/Ombi.Api.Pushover.csproj
+++ b/src/Ombi.Api.Pushover/Ombi.Api.Pushover.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
diff --git a/src/Ombi.Api.Radarr/Ombi.Api.Radarr.csproj b/src/Ombi.Api.Radarr/Ombi.Api.Radarr.csproj
index d3ab9b35b..97d0cb959 100644
--- a/src/Ombi.Api.Radarr/Ombi.Api.Radarr.csproj
+++ b/src/Ombi.Api.Radarr/Ombi.Api.Radarr.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
@@ -11,7 +11,7 @@
-
+
diff --git a/src/Ombi.Api.RottenTomatoes/Ombi.Api.RottenTomatoes.csproj b/src/Ombi.Api.RottenTomatoes/Ombi.Api.RottenTomatoes.csproj
index 9d0efbe77..89c47d251 100644
--- a/src/Ombi.Api.RottenTomatoes/Ombi.Api.RottenTomatoes.csproj
+++ b/src/Ombi.Api.RottenTomatoes/Ombi.Api.RottenTomatoes.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
latest
Debug;Release;NonUiBuild
diff --git a/src/Ombi.Api.Service/Ombi.Api.Service.csproj b/src/Ombi.Api.Service/Ombi.Api.Service.csproj
index ebe80cda4..38bcd678a 100644
--- a/src/Ombi.Api.Service/Ombi.Api.Service.csproj
+++ b/src/Ombi.Api.Service/Ombi.Api.Service.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
@@ -13,7 +13,7 @@
-
+
diff --git a/src/Ombi.Api.SickRage/Ombi.Api.SickRage.csproj b/src/Ombi.Api.SickRage/Ombi.Api.SickRage.csproj
index 9d0efbe77..89c47d251 100644
--- a/src/Ombi.Api.SickRage/Ombi.Api.SickRage.csproj
+++ b/src/Ombi.Api.SickRage/Ombi.Api.SickRage.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
latest
Debug;Release;NonUiBuild
diff --git a/src/Ombi.Api.Slack/Ombi.Api.Slack.csproj b/src/Ombi.Api.Slack/Ombi.Api.Slack.csproj
index ea91cee48..70032d638 100644
--- a/src/Ombi.Api.Slack/Ombi.Api.Slack.csproj
+++ b/src/Ombi.Api.Slack/Ombi.Api.Slack.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
diff --git a/src/Ombi.Api.Sonarr/Models/SystemStatus.cs b/src/Ombi.Api.Sonarr/Models/SystemStatus.cs
index a78429328..778570a4c 100644
--- a/src/Ombi.Api.Sonarr/Models/SystemStatus.cs
+++ b/src/Ombi.Api.Sonarr/Models/SystemStatus.cs
@@ -3,6 +3,23 @@ namespace Ombi.Api.Sonarr
public class SystemStatus
{
public string version { get; set; }
+ public string buildTime { get; set; }
+ public bool isDebug { get; set; }
+ public bool isProduction { get; set; }
+ public bool isAdmin { get; set; }
+ public bool isUserInteractive { get; set; }
+ public string startupPath { get; set; }
+ public string appData { get; set; }
+ public string osVersion { get; set; }
+ public bool isMonoRuntime { get; set; }
+ public bool isMono { get; set; }
+ public bool isLinux { get; set; }
+ public bool isOsx { get; set; }
+ public bool isWindows { get; set; }
+ public string branch { get; set; }
+ public string authentication { get; set; }
+ public string sqliteVersion { get; set; }
public string urlBase { get; set; }
+ public string runtimeVersion { get; set; }
}
}
\ No newline at end of file
diff --git a/src/Ombi.Api.Sonarr/Ombi.Api.Sonarr.csproj b/src/Ombi.Api.Sonarr/Ombi.Api.Sonarr.csproj
index ea91cee48..70032d638 100644
--- a/src/Ombi.Api.Sonarr/Ombi.Api.Sonarr.csproj
+++ b/src/Ombi.Api.Sonarr/Ombi.Api.Sonarr.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
diff --git a/src/Ombi.Api.Sonarr/SonarrV3Api.cs b/src/Ombi.Api.Sonarr/SonarrV3Api.cs
index 0f5b27ac8..6cf94b825 100644
--- a/src/Ombi.Api.Sonarr/SonarrV3Api.cs
+++ b/src/Ombi.Api.Sonarr/SonarrV3Api.cs
@@ -49,7 +49,7 @@ namespace Ombi.Api.Sonarr
public async Task> MonitorEpisode(int[] episodeIds, bool monitor, string apiKey, string baseUrl)
{
- var request = new Request($"{ApiBaseUrl}episode/monitor", baseUrl, HttpMethod.Put);
+ var request = new Request($"{ApiBaseUrl}Episode/monitor", baseUrl, HttpMethod.Put);
request.AddHeader("X-Api-Key", apiKey);
request.AddJsonBody(new { episodeIds = episodeIds, monitored = monitor });
return await Api.Request>(request);
diff --git a/src/Ombi.Api.Telegram/Ombi.Api.Telegram.csproj b/src/Ombi.Api.Telegram/Ombi.Api.Telegram.csproj
index 9d0efbe77..89c47d251 100644
--- a/src/Ombi.Api.Telegram/Ombi.Api.Telegram.csproj
+++ b/src/Ombi.Api.Telegram/Ombi.Api.Telegram.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
latest
Debug;Release;NonUiBuild
diff --git a/src/Ombi.Api.Trakt/Ombi.Api.Trakt.csproj b/src/Ombi.Api.Trakt/Ombi.Api.Trakt.csproj
index d485b038a..fd9632e56 100644
--- a/src/Ombi.Api.Trakt/Ombi.Api.Trakt.csproj
+++ b/src/Ombi.Api.Trakt/Ombi.Api.Trakt.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
diff --git a/src/Ombi.Api.TvMaze/Ombi.Api.TvMaze.csproj b/src/Ombi.Api.TvMaze/Ombi.Api.TvMaze.csproj
index adac0e42b..a1b98b765 100644
--- a/src/Ombi.Api.TvMaze/Ombi.Api.TvMaze.csproj
+++ b/src/Ombi.Api.TvMaze/Ombi.Api.TvMaze.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
diff --git a/src/Ombi.Api.Twilio/Ombi.Api.Twilio.csproj b/src/Ombi.Api.Twilio/Ombi.Api.Twilio.csproj
index 26a440276..2b4bb3d8d 100644
--- a/src/Ombi.Api.Twilio/Ombi.Api.Twilio.csproj
+++ b/src/Ombi.Api.Twilio/Ombi.Api.Twilio.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
Debug;Release;NonUiBuild
diff --git a/src/Ombi.Api.Webhook/Ombi.Api.Webhook.csproj b/src/Ombi.Api.Webhook/Ombi.Api.Webhook.csproj
index b9b0dd347..7748aad45 100644
--- a/src/Ombi.Api.Webhook/Ombi.Api.Webhook.csproj
+++ b/src/Ombi.Api.Webhook/Ombi.Api.Webhook.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
diff --git a/src/Ombi.Api/Ombi.Api.csproj b/src/Ombi.Api/Ombi.Api.csproj
index 2b1148b22..ab0d14b5e 100644
--- a/src/Ombi.Api/Ombi.Api.csproj
+++ b/src/Ombi.Api/Ombi.Api.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
@@ -11,8 +11,8 @@
-
-
+
+
diff --git a/src/Ombi.Core.Tests/Engine/MovieRequestEngineTests.cs b/src/Ombi.Core.Tests/Engine/MovieRequestEngineTests.cs
index c55d76e8f..8418cddbc 100644
--- a/src/Ombi.Core.Tests/Engine/MovieRequestEngineTests.cs
+++ b/src/Ombi.Core.Tests/Engine/MovieRequestEngineTests.cs
@@ -52,7 +52,6 @@ namespace Ombi.Core.Tests.Engine
_subject = _mocker.CreateInstance();
var list = DbHelper.GetQueryableMockDbSet(new RequestSubscription());
_mocker.Setup, IQueryable>(x => x.GetAll()).Returns(new List().AsQueryable().BuildMock());
- _mocker.Setup>(x => x.GetAll()).Returns(new List().AsQueryable().BuildMock());
}
[Test]
diff --git a/src/Ombi.Core.Tests/Engine/MovieRequestLimitsTests.cs b/src/Ombi.Core.Tests/Engine/MovieRequestLimitsTests.cs
index 538aca7a4..5bb4c69cb 100644
--- a/src/Ombi.Core.Tests/Engine/MovieRequestLimitsTests.cs
+++ b/src/Ombi.Core.Tests/Engine/MovieRequestLimitsTests.cs
@@ -300,13 +300,13 @@ namespace Ombi.Core.Tests.Engine
{
UserId = "id1",
RequestType = RequestType.Movie,
- RequestDate = today.AddMinutes(-1),
+ RequestDate = today.AddHours(-1),
},
new RequestLog
{
UserId = "id1",
RequestType = RequestType.Movie,
- RequestDate = today.AddMinutes(-2),
+ RequestDate = today.AddHours(-2),
},
};
var repoMock = _mocker.GetMock>();
diff --git a/src/Ombi.Core.Tests/Engine/MusicRequestLimitTests.cs b/src/Ombi.Core.Tests/Engine/MusicRequestLimitTests.cs
index 544a76a55..477ab7502 100644
--- a/src/Ombi.Core.Tests/Engine/MusicRequestLimitTests.cs
+++ b/src/Ombi.Core.Tests/Engine/MusicRequestLimitTests.cs
@@ -298,13 +298,13 @@ namespace Ombi.Core.Tests.Engine
{
UserId = "id1",
RequestType = RequestType.Album,
- RequestDate = today.AddMinutes(-1),
+ RequestDate = today.AddHours(-1),
},
new RequestLog
{
UserId = "id1",
RequestType = RequestType.Album,
- RequestDate = today.AddMinutes(-2),
+ RequestDate = today.AddHours(-2),
},
};
var repoMock = _mocker.GetMock>();
diff --git a/src/Ombi.Core.Tests/Engine/TvRequestLimitsTests.cs b/src/Ombi.Core.Tests/Engine/TvRequestLimitsTests.cs
index 5cfd322f4..201251960 100644
--- a/src/Ombi.Core.Tests/Engine/TvRequestLimitsTests.cs
+++ b/src/Ombi.Core.Tests/Engine/TvRequestLimitsTests.cs
@@ -304,7 +304,7 @@ namespace Ombi.Core.Tests.Engine
{
UserId = "id1",
RequestType = RequestType.TvShow,
- RequestDate = today.AddMinutes(-1),
+ RequestDate = today.AddHours(-1),
EpisodeCount = 1,
},
new RequestLog
@@ -312,7 +312,7 @@ namespace Ombi.Core.Tests.Engine
UserId = "id1",
RequestType = RequestType.TvShow,
EpisodeCount = 1,
- RequestDate = today.AddMinutes(-2),
+ RequestDate = today.AddHours(-2),
},
};
var repoMock = _mocker.GetMock>();
@@ -345,7 +345,7 @@ namespace Ombi.Core.Tests.Engine
{
UserId = "id1",
RequestType = RequestType.TvShow,
- RequestDate = today.AddMinutes(-1),
+ RequestDate = today.AddHours(-1),
EpisodeCount = 5,
},
new RequestLog
@@ -353,7 +353,7 @@ namespace Ombi.Core.Tests.Engine
UserId = "id1",
RequestType = RequestType.TvShow,
EpisodeCount = 4,
- RequestDate = today.AddMinutes(-2),
+ RequestDate = today.AddHours(-2),
},
};
var repoMock = _mocker.GetMock>();
diff --git a/src/Ombi.Core.Tests/Engine/V2/MovieRequestEngineTests.cs b/src/Ombi.Core.Tests/Engine/V2/MovieRequestEngineTests.cs
index c483d81ba..16b7cb811 100644
--- a/src/Ombi.Core.Tests/Engine/V2/MovieRequestEngineTests.cs
+++ b/src/Ombi.Core.Tests/Engine/V2/MovieRequestEngineTests.cs
@@ -46,9 +46,8 @@ namespace Ombi.Core.Tests.Engine.V2
var requestSubs = new Mock>();
var mediaCache = new Mock();
var featureService = new Mock();
- var userPlayedMovieRepository = new Mock();
_engine = new MovieRequestEngine(movieApi.Object, requestService.Object, user.Object, notificationHelper.Object, rules.Object, movieSender.Object,
- logger.Object, userManager.Object, requestLogRepo.Object, cache.Object, ombiSettings.Object, requestSubs.Object, mediaCache.Object, featureService.Object, userPlayedMovieRepository.Object);
+ logger.Object, userManager.Object, requestLogRepo.Object, cache.Object, ombiSettings.Object, requestSubs.Object, mediaCache.Object, featureService.Object);
}
[Test]
diff --git a/src/Ombi.Core.Tests/Ombi.Core.Tests.csproj b/src/Ombi.Core.Tests/Ombi.Core.Tests.csproj
index f63762bd4..40956f5fc 100644
--- a/src/Ombi.Core.Tests/Ombi.Core.Tests.csproj
+++ b/src/Ombi.Core.Tests/Ombi.Core.Tests.csproj
@@ -1,15 +1,15 @@
- net8.0
+ net6.0
true
true
Debug;Release;NonUiBuild
-
-
+
+
@@ -18,7 +18,8 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
+
diff --git a/src/Ombi.Core.Tests/Rule/Request/AutoApproveRuleTests.cs b/src/Ombi.Core.Tests/Rule/Request/AutoApproveRuleTests.cs
index 2bc3e8777..c73237097 100644
--- a/src/Ombi.Core.Tests/Rule/Request/AutoApproveRuleTests.cs
+++ b/src/Ombi.Core.Tests/Rule/Request/AutoApproveRuleTests.cs
@@ -54,17 +54,6 @@ namespace Ombi.Core.Tests.Rule.Request
Assert.True(request.Approved);
}
- [Test]
- public async Task Should_ReturnSuccess_WhenAdminAndRequest4KMovie()
- {
- UserManager.Setup(x => x.IsInRoleAsync(It.IsAny(), OmbiRoles.Admin)).ReturnsAsync(true);
- var request = new MovieRequests() { RequestType = Store.Entities.RequestType.Movie, Is4kRequest = true };
- var result = await Rule.Execute(request);
-
- Assert.True(result.Success);
- Assert.True(request.Approved);
- }
-
[Test]
public async Task Should_ReturnSuccess_WhenAdminAndRequestTV()
{
@@ -87,17 +76,6 @@ namespace Ombi.Core.Tests.Rule.Request
Assert.True(request.Approved);
}
- [Test]
- public async Task Should_ReturnSuccess_WhenAutoApprove4KMovieAndRequest4KMovie()
- {
- UserManager.Setup(x => x.IsInRoleAsync(It.IsAny(), OmbiRoles.AutoApprove4KMovie)).ReturnsAsync(true);
- var request = new MovieRequests() { RequestType = Store.Entities.RequestType.Movie, Is4kRequest = true };
- var result = await Rule.Execute(request);
-
- Assert.True(result.Success);
- Assert.True(request.Approved);
- }
-
[Test]
public async Task Should_ReturnFail_WhenAutoApproveMovie_And_RequestTV()
{
@@ -137,7 +115,7 @@ namespace Ombi.Core.Tests.Rule.Request
public async Task Should_ReturnFail_WhenAutoApproveTV_And_RequestMovie()
{
UserManager.Setup(x => x.IsInRoleAsync(It.IsAny(), OmbiRoles.AutoApproveTv)).ReturnsAsync(true);
- var request = new MovieRequests() { RequestType = Store.Entities.RequestType.Movie };
+ var request = new BaseRequest() { RequestType = Store.Entities.RequestType.Movie };
var result = await Rule.Execute(request);
Assert.True(result.Success);
@@ -148,7 +126,7 @@ namespace Ombi.Core.Tests.Rule.Request
public async Task Should_ReturnFail_WhenNoClaimsAndRequestMovie()
{
UserManager.Setup(x => x.IsInRoleAsync(It.IsAny(), It.IsAny())).ReturnsAsync(false);
- var request = new MovieRequests() { RequestType = Store.Entities.RequestType.Movie };
+ var request = new BaseRequest() { RequestType = Store.Entities.RequestType.Movie };
var result = await Rule.Execute(request);
Assert.True(result.Success);
diff --git a/src/Ombi.Core.Tests/Rule/Request/CanRequestRuleTests.cs b/src/Ombi.Core.Tests/Rule/Request/CanRequestRuleTests.cs
index 653de2fe7..9d8db25d1 100644
--- a/src/Ombi.Core.Tests/Rule/Request/CanRequestRuleTests.cs
+++ b/src/Ombi.Core.Tests/Rule/Request/CanRequestRuleTests.cs
@@ -51,20 +51,11 @@ namespace Ombi.Core.Tests.Rule.Request
}
[Test]
- public async Task Should_ReturnSuccess_WhenRequestingMovieWithAutoApproveRole()
- {
- UserManager.Setup(x => x.IsInRoleAsync(It.IsAny(), OmbiRoles.AutoApproveMovie)).ReturnsAsync(true);
- var request = new MovieRequests() { RequestType = Store.Entities.RequestType.Movie };
- var result = await Rule.Execute(request);
-
- Assert.True(result.Success);
- }
-
- [Test]
- public async Task Should_ReturnSuccess_WhenRequestingMovie4KWithMovie4KRole()
+ public async Task Should_ReturnSuccess_WhenRequestingMovie4KWithMovieRole()
{
+ UserManager.Setup(x => x.IsInRoleAsync(It.IsAny(), OmbiRoles.RequestMovie)).ReturnsAsync(true);
UserManager.Setup(x => x.IsInRoleAsync(It.IsAny(), OmbiRoles.Request4KMovie)).ReturnsAsync(true);
- var request = new MovieRequests() { RequestType = Store.Entities.RequestType.Movie, Is4kRequest = true };
+ var request = new MovieRequests() { RequestType = Store.Entities.RequestType.Movie, Has4KRequest = true };
var result = await Rule.Execute(request);
Assert.True(result.Success);
@@ -83,29 +74,15 @@ namespace Ombi.Core.Tests.Rule.Request
}
[Test]
- public async Task Should_ReturnSuccess_WhenRequestingMovie4KWithAutoApprove4K()
- {
- UserManager.Setup(x => x.IsInRoleAsync(It.IsAny(), OmbiRoles.RequestMovie)).ReturnsAsync(false);
- UserManager.Setup(x => x.IsInRoleAsync(It.IsAny(), OmbiRoles.AutoApproveMovie)).ReturnsAsync(false);
- UserManager.Setup(x => x.IsInRoleAsync(It.IsAny(), OmbiRoles.Request4KMovie)).ReturnsAsync(false);
- UserManager.Setup(x => x.IsInRoleAsync(It.IsAny(), OmbiRoles.AutoApprove4KMovie)).ReturnsAsync(true);
- var request = new MovieRequests() { RequestType = Store.Entities.RequestType.Movie, Is4kRequest = true };
- var result = await Rule.Execute(request);
-
- Assert.True(result.Success);
- }
-
- [Test]
- public async Task Should_ReturnFailure_WhenRequestingMovie4KWithout4KRoles()
+ public async Task Should_ReturnSuccess_WhenRequestingMovie4KWithAutoApprove()
{
UserManager.Setup(x => x.IsInRoleAsync(It.IsAny(), OmbiRoles.RequestMovie)).ReturnsAsync(true);
UserManager.Setup(x => x.IsInRoleAsync(It.IsAny(), OmbiRoles.AutoApproveMovie)).ReturnsAsync(true);
UserManager.Setup(x => x.IsInRoleAsync(It.IsAny(), OmbiRoles.Request4KMovie)).ReturnsAsync(false);
- UserManager.Setup(x => x.IsInRoleAsync(It.IsAny(), OmbiRoles.AutoApprove4KMovie)).ReturnsAsync(false);
- var request = new MovieRequests() { RequestType = Store.Entities.RequestType.Movie, Is4kRequest = true };
+ var request = new MovieRequests() { RequestType = Store.Entities.RequestType.Movie, Has4KRequest = true };
var result = await Rule.Execute(request);
- Assert.False(result.Success);
+ Assert.True(result.Success);
}
[Test]
diff --git a/src/Ombi.Core.Tests/Services/RecentlyRequestedServiceTests.cs b/src/Ombi.Core.Tests/Services/RecentlyRequestedServiceTests.cs
index dc748e0d9..018ee99e9 100644
--- a/src/Ombi.Core.Tests/Services/RecentlyRequestedServiceTests.cs
+++ b/src/Ombi.Core.Tests/Services/RecentlyRequestedServiceTests.cs
@@ -173,7 +173,6 @@ namespace Ombi.Core.Tests.Services
[Test]
- [Ignore("Flaky")]
public async Task GetRecentlyRequested_HideUsernames()
{
_mocker.Setup, Task>(x => x.GetSettingsAsync())
@@ -183,25 +182,20 @@ namespace Ombi.Core.Tests.Services
var releaseDate = new DateTime(2019, 01, 01);
var requestDate = DateTime.Now;
- var movies = _fixture.CreateMany(10).ToList();
+ var movies = _fixture.CreateMany(10);
var albums = _fixture.CreateMany(10);
var chilRequests = _fixture.CreateMany(10);
- movies.Add(_fixture.Build().With(x => x.RequestedUserId, "a").With(x => x.Title, "unit").Create());
_mocker.Setup>(x => x.GetAll()).Returns(movies.AsQueryable().BuildMock());
_mocker.Setup>(x => x.GetAll()).Returns(albums.AsQueryable().BuildMock());
_mocker.Setup>(x => x.GetChild()).Returns(chilRequests.AsQueryable().BuildMock());
- _mocker.Setup>(x => x.GetUser()).ReturnsAsync(new OmbiUser { UserName = "test", Id = "a", Alias = "alias", UserType = UserType.LocalUser });
+ _mocker.Setup>(x => x.GetUser()).ReturnsAsync(new OmbiUser { UserName = "test", Alias = "alias", UserType = UserType.LocalUser });
_mocker.Setup(x => x.Username).Returns("test");
_mocker.Setup>(x => x.IsInRoleAsync(It.IsAny(), It.IsAny())).ReturnsAsync(false);
var result = await _subject.GetRecentlyRequested(CancellationToken.None);
- Assert.Multiple(() =>
- {
- Assert.That(result.Count, Is.EqualTo(1));
- Assert.That(result.First().Title, Is.EqualTo("unit"));
- });
+ CollectionAssert.IsEmpty(result.Where(x => !string.IsNullOrEmpty(x.Username) && !string.IsNullOrEmpty(x.UserId)));
}
}
}
diff --git a/src/Ombi.Core/Authentication/OmbiUserManager.cs b/src/Ombi.Core/Authentication/OmbiUserManager.cs
index e80469a00..124ff1aeb 100644
--- a/src/Ombi.Core/Authentication/OmbiUserManager.cs
+++ b/src/Ombi.Core/Authentication/OmbiUserManager.cs
@@ -69,8 +69,6 @@ namespace Ombi.Core.Authentication
private readonly ISettingsService _embySettings;
private readonly ISettingsService _jellyfinSettings;
private readonly ISettingsService _authSettings;
- private string _clientIpAddress;
- public string ClientIpAddress { get => _clientIpAddress; set => _clientIpAddress = value; }
public override async Task CheckPasswordAsync(OmbiUser user, string password)
{
@@ -90,7 +88,7 @@ namespace Ombi.Core.Authentication
}
if (user.UserType == UserType.EmbyUser || user.UserType == UserType.EmbyConnectUser)
{
- return await CheckEmbyPasswordAsync(user, password, ClientIpAddress);
+ return await CheckEmbyPasswordAsync(user, password);
}
if (user.UserType == UserType.JellyfinUser)
{
@@ -170,7 +168,7 @@ namespace Ombi.Core.Authentication
///
///
///
- private async Task CheckEmbyPasswordAsync(OmbiUser user, string password, string clientIpAddress="")
+ private async Task CheckEmbyPasswordAsync(OmbiUser user, string password)
{
var embySettings = await _embySettings.GetSettingsAsync();
var client = _embyApi.CreateClient(embySettings);
@@ -198,7 +196,7 @@ namespace Ombi.Core.Authentication
{
try
{
- var result = await client.LogIn(user.UserName, password, server.ApiKey, server.FullUri, clientIpAddress);
+ var result = await client.LogIn(user.UserName, password, server.ApiKey, server.FullUri);
if (result != null)
{
return true;
diff --git a/src/Ombi.Core/Authentication/PlexTokenKeepAliveService.cs b/src/Ombi.Core/Authentication/PlexTokenKeepAliveService.cs
deleted file mode 100644
index d29da4a5a..000000000
--- a/src/Ombi.Core/Authentication/PlexTokenKeepAliveService.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-using System;
-using System.Threading;
-using System.Threading.Tasks;
-using Microsoft.Extensions.Logging;
-using Ombi.Api.Plex;
-
-namespace Ombi.Core.Authentication
-{
- public interface IPlexTokenKeepAliveService
- {
- Task KeepTokenAliveAsync(string token, CancellationToken cancellationToken);
- }
-
- public class PlexTokenKeepAliveService : IPlexTokenKeepAliveService
- {
- private readonly IPlexApi _plexApi;
- private readonly ILogger _logger;
-
- public PlexTokenKeepAliveService(IPlexApi plexApi, ILogger logger)
- {
- _plexApi = plexApi;
- _logger = logger;
- }
-
- public async Task KeepTokenAliveAsync(string token, CancellationToken cancellationToken)
- {
- try
- {
- if (string.IsNullOrEmpty(token))
- {
- _logger.LogWarning("Token is null or empty");
- return false;
- }
-
- // Use the Ping method to validate the token
- var isValid = await _plexApi.Ping(token, cancellationToken);
-
- if (!isValid)
- {
- _logger.LogWarning("Token validation failed - token may be expired or invalid");
- }
-
- return isValid;
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "Error occurred while keeping token alive");
- return false;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/src/Ombi.Core/Engine/MovieRequestEngine.cs b/src/Ombi.Core/Engine/MovieRequestEngine.cs
index 82a6bce21..109460ff9 100644
--- a/src/Ombi.Core/Engine/MovieRequestEngine.cs
+++ b/src/Ombi.Core/Engine/MovieRequestEngine.cs
@@ -33,8 +33,7 @@ namespace Ombi.Core.Engine
INotificationHelper helper, IRuleEvaluator r, IMovieSender sender, ILogger log,
OmbiUserManager manager, IRepository rl, ICacheService cache,
ISettingsService ombiSettings, IRepository sub, IMediaCacheService mediaCacheService,
- IFeatureService featureService,
- IUserPlayedMovieRepository userPlayedMovieRepository)
+ IFeatureService featureService)
: base(user, requestService, r, manager, cache, ombiSettings, sub)
{
MovieApi = movieApi;
@@ -44,7 +43,6 @@ namespace Ombi.Core.Engine
_requestLog = rl;
_mediaCacheService = mediaCacheService;
_featureService = featureService;
- _userPlayedMovieRepository = userPlayedMovieRepository;
}
private IMovieDbApi MovieApi { get; }
@@ -54,7 +52,6 @@ namespace Ombi.Core.Engine
private readonly IRepository _requestLog;
private readonly IMediaCacheService _mediaCacheService;
private readonly IFeatureService _featureService;
- protected readonly IUserPlayedMovieRepository _userPlayedMovieRepository;
///
/// Requests the movie.
@@ -80,8 +77,7 @@ namespace Ombi.Core.Engine
var userDetails = await GetUser();
var canRequestOnBehalf = model.RequestOnBehalf.HasValue();
- var isAdmin = Username.Equals("API", StringComparison.CurrentCultureIgnoreCase)
- || await UserManager.IsInRoleAsync(userDetails, OmbiRoles.PowerUser)
+ var isAdmin = await UserManager.IsInRoleAsync(userDetails, OmbiRoles.PowerUser)
|| await UserManager.IsInRoleAsync(userDetails, OmbiRoles.Admin);
if (canRequestOnBehalf && !isAdmin)
{
@@ -256,7 +252,7 @@ namespace Ombi.Core.Engine
var requests = await (OrderMovies(allRequests, orderFilter.OrderType)).Skip(position).Take(count)
.ToListAsync();
- await FillAdditionalFields(shouldHide, requests);
+ await CheckForSubscription(shouldHide.UserId, requests);
return new RequestsViewModel
{
Collection = requests,
@@ -300,7 +296,7 @@ namespace Ombi.Core.Engine
var total = requests.Count();
requests = requests.Skip(position).Take(count).ToList();
- await FillAdditionalFields(shouldHide, requests);
+ await CheckForSubscription(shouldHide.UserId, requests);
return new RequestsViewModel
{
Collection = requests,
@@ -385,7 +381,7 @@ namespace Ombi.Core.Engine
// TODO fix this so we execute this on the server
requests = requests.Skip(position).Take(count).ToList();
- await FillAdditionalFields(shouldHide, requests);
+ await CheckForSubscription(shouldHide.UserId, requests);
return new RequestsViewModel
{
Collection = requests,
@@ -428,7 +424,7 @@ namespace Ombi.Core.Engine
var total = requests.Count();
requests = requests.Skip(position).Take(count).ToList();
- await FillAdditionalFields(shouldHide, requests);
+ await CheckForSubscription(shouldHide.UserId, requests);
return new RequestsViewModel
{
Collection = requests,
@@ -510,25 +506,18 @@ namespace Ombi.Core.Engine
allRequests = await MovieRepository.GetWithUser().ToListAsync();
}
- await FillAdditionalFields(shouldHide, allRequests);
+ await CheckForSubscription(shouldHide.UserId, allRequests);
return allRequests;
}
public async Task GetRequest(int requestId)
{
- var shouldHide = await HideFromOtherUsers();
- // TODO: this query should return the request only if the user is allowed to see it (see shouldHide implementations)
var request = await MovieRepository.GetWithUser().Where(x => x.Id == requestId).FirstOrDefaultAsync();
- await FillAdditionalFields(shouldHide, new List { request });
+ await CheckForSubscription((await GetUser()).Id, new List { request });
return request;
}
- private async Task FillAdditionalFields(HideResult shouldHide, List requests)
- {
- await CheckForSubscription(shouldHide.UserId, requests);
- await CheckForPlayed(shouldHide, requests);
- }
private async Task CheckForSubscription(string UserId, List movieRequests)
{
@@ -554,23 +543,6 @@ namespace Ombi.Core.Engine
}
}
}
-
- private async Task CheckForPlayed(HideResult shouldHide, List movieRequests)
- {
- var theMovieDbIds = movieRequests.Select(x => x.TheMovieDbId);
- var plays = await _userPlayedMovieRepository.GetAll().Where(x =>
- theMovieDbIds.Contains(x.TheMovieDbId))
- .ToListAsync();
- foreach (var request in movieRequests)
- {
- request.WatchedByRequestedUser = plays.Exists(x => x.TheMovieDbId == request.TheMovieDbId && x.UserId == request.RequestedUserId);
-
- if (!shouldHide.Hide)
- {
- request.PlayedByUsersCount = plays.Count(x => x.TheMovieDbId == request.TheMovieDbId);
- }
- }
- }
///
/// Searches the movie request.
@@ -591,20 +563,20 @@ namespace Ombi.Core.Engine
}
var results = allRequests.Where(x => x.Title.Contains(search, CompareOptions.IgnoreCase)).ToList();
- await FillAdditionalFields(shouldHide, results);
+ await CheckForSubscription(shouldHide.UserId, results);
return results;
}
public async Task ApproveMovieById(int requestId, bool is4K)
{
- var request = await MovieRepository.GetWithUser().FirstOrDefaultAsync(x => x.Id == requestId);
+ var request = await MovieRepository.Find(requestId);
return await ApproveMovie(request, is4K);
}
public async Task DenyMovieById(int modelId, string denyReason, bool is4K)
{
- var request = await MovieRepository.GetWithUser().FirstOrDefaultAsync(x => x.Id == modelId);
+ var request = await MovieRepository.Find(modelId);
if (request == null)
{
return new RequestEngineResult
@@ -790,7 +762,7 @@ namespace Ombi.Core.Engine
public async Task ReProcessRequest(int requestId, bool is4K, CancellationToken cancellationToken)
{
- var request = await MovieRepository.GetWithUser().FirstOrDefaultAsync(x => x.Id == requestId);
+ var request = await MovieRepository.Find(requestId);
if (request == null)
{
return new RequestEngineResult
@@ -805,7 +777,7 @@ namespace Ombi.Core.Engine
public async Task MarkUnavailable(int modelId, bool is4K)
{
- var request = await MovieRepository.GetWithUser().FirstOrDefaultAsync(x => x.Id == modelId);
+ var request = await MovieRepository.Find(modelId);
if (request == null)
{
return new RequestEngineResult
@@ -834,7 +806,7 @@ namespace Ombi.Core.Engine
public async Task MarkAvailable(int modelId, bool is4K)
{
- var request = await MovieRepository.GetWithUser().FirstOrDefaultAsync(x => x.Id == modelId);
+ var request = await MovieRepository.Find(modelId);
if (request == null)
{
return new RequestEngineResult
diff --git a/src/Ombi.Core/Engine/TvRequestEngine.cs b/src/Ombi.Core/Engine/TvRequestEngine.cs
index a586156aa..8ccc6d17e 100644
--- a/src/Ombi.Core/Engine/TvRequestEngine.cs
+++ b/src/Ombi.Core/Engine/TvRequestEngine.cs
@@ -35,8 +35,7 @@ namespace Ombi.Core.Engine
public TvRequestEngine(ITvMazeApi tvApi, IMovieDbApi movApi, IRequestServiceMain requestService, ICurrentUser user,
INotificationHelper helper, IRuleEvaluator rule, OmbiUserManager manager, ILogger logger,
ITvSender sender, IRepository rl, ISettingsService settings, ICacheService cache,
- IRepository sub, IMediaCacheService mediaCacheService,
- IUserPlayedEpisodeRepository userPlayedEpisodeRepository) : base(user, requestService, rule, manager, cache, settings, sub)
+ IRepository sub, IMediaCacheService mediaCacheService) : base(user, requestService, rule, manager, cache, settings, sub)
{
TvApi = tvApi;
MovieDbApi = movApi;
@@ -45,7 +44,6 @@ namespace Ombi.Core.Engine
TvSender = sender;
_requestLog = rl;
_mediaCacheService = mediaCacheService;
- _userPlayedEpisodeRepository = userPlayedEpisodeRepository;
}
private INotificationHelper NotificationHelper { get; }
@@ -56,7 +54,6 @@ namespace Ombi.Core.Engine
private readonly ILogger _logger;
private readonly IRepository _requestLog;
private readonly IMediaCacheService _mediaCacheService;
- private readonly IUserPlayedEpisodeRepository _userPlayedEpisodeRepository;
public async Task RequestTvShow(TvRequestViewModel tv)
{
@@ -164,7 +161,7 @@ namespace Ombi.Core.Engine
var user = await GetUser();
var canRequestOnBehalf = tv.RequestOnBehalf.HasValue();
- var isAdmin = Username.Equals("API", StringComparison.CurrentCultureIgnoreCase) || await UserManager.IsInRoleAsync(user, OmbiRoles.PowerUser) || await UserManager.IsInRoleAsync(user, OmbiRoles.Admin);
+ var isAdmin = await UserManager.IsInRoleAsync(user, OmbiRoles.PowerUser) || await UserManager.IsInRoleAsync(user, OmbiRoles.Admin);
if (tv.RequestOnBehalf.HasValue() && !isAdmin)
{
return new RequestEngineResult
@@ -295,7 +292,7 @@ namespace Ombi.Core.Engine
.Skip(position).Take(count).ToListAsync();
}
- await FillAdditionalFields(shouldHide, allRequests);
+ await CheckForSubscription(shouldHide, allRequests);
return new RequestsViewModel
{
@@ -331,7 +328,7 @@ namespace Ombi.Core.Engine
return new RequestsViewModel();
}
- await FillAdditionalFields(shouldHide, allRequests);
+ await CheckForSubscription(shouldHide, allRequests);
return new RequestsViewModel
{
@@ -354,7 +351,7 @@ namespace Ombi.Core.Engine
allRequests = await TvRepository.Get().ToListAsync();
}
- await FillAdditionalFields(shouldHide, allRequests);
+ await CheckForSubscription(shouldHide, allRequests);
return allRequests;
}
@@ -399,7 +396,7 @@ namespace Ombi.Core.Engine
? allRequests.OrderBy(x => prop.GetValue(x)).ToList()
: allRequests.OrderByDescending(x => prop.GetValue(x)).ToList();
- await FillAdditionalFields(shouldHide, allRequests);
+ await CheckForSubscription(shouldHide, allRequests);
// Make sure we do not show duplicate child requests
allRequests = allRequests.DistinctBy(x => x.ParentRequest.Title).ToList();
@@ -472,7 +469,7 @@ namespace Ombi.Core.Engine
? allRequests.OrderBy(x => prop.GetValue(x)).ToList()
: allRequests.OrderByDescending(x => prop.GetValue(x)).ToList();
- await FillAdditionalFields(shouldHide, allRequests);
+ await CheckForSubscription(shouldHide, allRequests);
// Make sure we do not show duplicate child requests
allRequests = allRequests.DistinctBy(x => x.ParentRequest.Title).ToList();
@@ -526,7 +523,7 @@ namespace Ombi.Core.Engine
allRequests = sortOrder.Equals("asc", StringComparison.InvariantCultureIgnoreCase)
? allRequests.OrderBy(x => prop.GetValue(x)).ToList()
: allRequests.OrderByDescending(x => prop.GetValue(x)).ToList();
- await FillAdditionalFields(shouldHide, allRequests);
+ await CheckForSubscription(shouldHide, allRequests);
// Make sure we do not show duplicate child requests
allRequests = allRequests.DistinctBy(x => x.ParentRequest.Title).ToList();
@@ -554,7 +551,7 @@ namespace Ombi.Core.Engine
allRequests = await TvRepository.GetLite().ToListAsync();
}
- await FillAdditionalFields(shouldHide, allRequests);
+ await CheckForSubscription(shouldHide, allRequests);
return allRequests;
}
@@ -573,7 +570,7 @@ namespace Ombi.Core.Engine
request = await TvRepository.Get().Where(x => x.Id == requestId).FirstOrDefaultAsync();
}
- await FillAdditionalFields(shouldHide, new List{request});
+ await CheckForSubscription(shouldHide, new List{request});
return request;
}
@@ -627,7 +624,7 @@ namespace Ombi.Core.Engine
allRequests = await TvRepository.GetChild().Include(x => x.SeasonRequests).Where(x => x.ParentRequestId == tvId).ToListAsync();
}
- await FillAdditionalFields(shouldHide, allRequests);
+ await CheckForSubscription(shouldHide, allRequests);
return allRequests;
}
@@ -646,7 +643,7 @@ namespace Ombi.Core.Engine
}
var results = await allRequests.Where(x => x.Title.Contains(search, CompareOptions.IgnoreCase)).ToListAsync();
- await FillAdditionalFields(shouldHide, results);
+ await CheckForSubscription(shouldHide, results);
return results;
}
@@ -867,20 +864,14 @@ namespace Ombi.Core.Engine
}
}
- private async Task FillAdditionalFields(HideResult shouldHide, List x)
+ private async Task CheckForSubscription(HideResult shouldHide, List x)
{
foreach (var tvRequest in x)
{
- await FillAdditionalFields(shouldHide, tvRequest.ChildRequests);
+ await CheckForSubscription(shouldHide, tvRequest.ChildRequests);
}
}
- private async Task FillAdditionalFields(HideResult shouldHide, List childRequests)
- {
- await CheckForSubscription(shouldHide, childRequests);
- CheckForPlayed(shouldHide, childRequests);
- }
-
private async Task CheckForSubscription(HideResult shouldHide, List childRequests)
{
var sub = _subscriptionRepository.GetAll();
@@ -905,59 +896,6 @@ namespace Ombi.Core.Engine
}
}
- private class EpisodeKey
- {
- public int SeasonNumber;
- public int EpisodeNumber;
- }
-
- private void CheckForPlayed(HideResult shouldHide, List childRequests)
- {
- var theMovieDbIds = childRequests.Select(x => x.Id);
- foreach (var request in childRequests)
- {
- var requestedEpisodes = GetEpisodesKeys(request);
-
- var playedEpisodes = _userPlayedEpisodeRepository
- .GetAll()
- .Where(x => x.TheMovieDbId == request.Id && x.UserId == request.RequestedUserId)
- .AsEnumerable()
- .Join(requestedEpisodes,
- played => new { played.SeasonNumber, played.EpisodeNumber },
- requested => new { requested.SeasonNumber, requested.EpisodeNumber },
- (played, requested) => new { played });
-
- var playedCount = playedEpisodes.Count();
- var toWatchCount = requestedEpisodes.Count();
- if (playedCount == 0 || toWatchCount == 0)
- {
- request.RequestedUserPlayedProgress = 0;
- }
- else
- {
- request.RequestedUserPlayedProgress = 100 * playedCount / toWatchCount;
- }
-
- }
- }
-
- private List GetEpisodesKeys(ChildRequests request)
- {
- List result = new List();
- foreach(var season in request.SeasonRequests)
- {
- foreach(var episode in season.Episodes)
- {
- result.Add(new EpisodeKey
- {
- SeasonNumber = season.SeasonNumber,
- EpisodeNumber = episode.EpisodeNumber
- });
- }
- }
- return result;
- }
-
private async Task AddExistingRequest(ChildRequests newRequest, TvRequests existingRequest, string requestOnBehalf, int rootFolder, int qualityProfile)
{
// Add the child
diff --git a/src/Ombi.Core/Engine/UserDeletionEngine.cs b/src/Ombi.Core/Engine/UserDeletionEngine.cs
index eef7bd2f1..1c8fd63ca 100644
--- a/src/Ombi.Core/Engine/UserDeletionEngine.cs
+++ b/src/Ombi.Core/Engine/UserDeletionEngine.cs
@@ -1,6 +1,5 @@
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
-using Microsoft.VisualBasic;
using Ombi.Core.Authentication;
using Ombi.Store.Entities;
using Ombi.Store.Entities.Requests;
diff --git a/src/Ombi.Core/Engine/V2/MovieSearchEngineV2.cs b/src/Ombi.Core/Engine/V2/MovieSearchEngineV2.cs
index fbe9bf4cf..044d79969 100644
--- a/src/Ombi.Core/Engine/V2/MovieSearchEngineV2.cs
+++ b/src/Ombi.Core/Engine/V2/MovieSearchEngineV2.cs
@@ -200,14 +200,19 @@ namespace Ombi.Core.Engine.V2
public async Task> NowPlayingMovies(int currentPosition, int amountToLoad)
{
var langCode = await DefaultLanguageCode(null);
+ var isOldTrendingSourceEnabled = await _feature.FeatureEnabled(FeatureNames.OldTrendingSource);
var pages = PaginationHelper.GetNextPages(currentPosition, amountToLoad, _theMovieDbMaxPageItems);
var results = new List();
foreach (var pagesToLoad in pages)
{
+ var search = () => (isOldTrendingSourceEnabled) ?
+ MovieApi.NowPlaying(langCode, pagesToLoad.Page)
+ : MovieApi.TrendingMovies(langCode, pagesToLoad.Page);
+
var apiResult = await Cache.GetOrAddAsync(nameof(NowPlayingMovies) + pagesToLoad.Page + langCode,
- () => MovieApi.TrendingMovies(langCode, pagesToLoad.Page), DateTimeOffset.Now.AddHours(12));
+ search, DateTimeOffset.Now.AddHours(12));
results.AddRange(apiResult.Skip(pagesToLoad.Skip).Take(pagesToLoad.Take));
}
return await TransformMovieResultsToResponse(results);
diff --git a/src/Ombi.Core/Engine/V2/TvSearchEngineV2.cs b/src/Ombi.Core/Engine/V2/TvSearchEngineV2.cs
index da3c4574e..ee21db8dd 100644
--- a/src/Ombi.Core/Engine/V2/TvSearchEngineV2.cs
+++ b/src/Ombi.Core/Engine/V2/TvSearchEngineV2.cs
@@ -138,13 +138,17 @@ namespace Ombi.Core.Engine.V2
public async Task> Trending(int currentlyLoaded, int amountToLoad)
{
var langCode = await DefaultLanguageCode(null);
+ var isOldTrendingSourceEnabled = await _feature.FeatureEnabled(FeatureNames.OldTrendingSource);
var pages = PaginationHelper.GetNextPages(currentlyLoaded, amountToLoad, ResultLimit);
var results = new List();
foreach (var pagesToLoad in pages)
{
+ var search = ( async () => (isOldTrendingSourceEnabled) ?
+ await _movieApi.TopRatedTv(langCode, pagesToLoad.Page)
+ : await _movieApi.TrendingTv(langCode, pagesToLoad.Page));
var apiResult = await Cache.GetOrAddAsync(nameof(Trending) + langCode + pagesToLoad.Page,
- () => _movieApi.TrendingTv(langCode, pagesToLoad.Page), DateTimeOffset.Now.AddHours(12));
+ search, DateTimeOffset.Now.AddHours(12));
results.AddRange(apiResult.Skip(pagesToLoad.Skip).Take(pagesToLoad.Take));
}
diff --git a/src/Ombi.Core/Helpers/DatabaseConfigurationSetup.cs b/src/Ombi.Core/Helpers/DatabaseConfigurationSetup.cs
deleted file mode 100644
index 2f1933184..000000000
--- a/src/Ombi.Core/Helpers/DatabaseConfigurationSetup.cs
+++ /dev/null
@@ -1,67 +0,0 @@
-using System;
-using System.Text;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Storage;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal;
-using Ombi.Core.Models;
-using Polly;
-using Pomelo.EntityFrameworkCore.MySql.Storage.Internal;
-
-namespace Ombi.Core.Helpers;
-
-public static class DatabaseConfigurationSetup
-{
- public static void ConfigurePostgres(DbContextOptionsBuilder options, PerDatabaseConfiguration config)
- {
- options.UseNpgsql(config.ConnectionString, b =>
- {
- b.EnableRetryOnFailure();
- }).ReplaceService();
- }
-
- public static void ConfigureMySql(DbContextOptionsBuilder options, PerDatabaseConfiguration config)
- {
- if (string.IsNullOrEmpty(config.ConnectionString))
- {
- throw new ArgumentNullException("ConnectionString for the MySql/Mariadb database is empty");
- }
-
- options.UseMySql(config.ConnectionString, GetServerVersion(config.ConnectionString), b =>
- {
- //b.CharSetBehavior(Pomelo.EntityFrameworkCore.MySql.Infrastructure.CharSetBehavior.NeverAppend); // ##ISSUE, link to migrations?
- b.EnableRetryOnFailure();
- });
- }
-
- private static ServerVersion GetServerVersion(string connectionString)
- {
- // Workaround Windows bug, that can lead to the following exception:
- //
- // MySqlConnector.MySqlException (0x80004005): SSL Authentication Error
- // ---> System.Security.Authentication.AuthenticationException: Authentication failed, see inner exception.
- // ---> System.ComponentModel.Win32Exception (0x8009030F): The message or signature supplied for verification has been altered
- //
- // See https://github.com/dotnet/runtime/issues/17005#issuecomment-305848835
- //
- // Also workaround for the fact, that ServerVersion.AutoDetect() does not use any retrying strategy.
- ServerVersion serverVersion = null;
-#pragma warning disable EF1001
- var retryPolicy = Policy.Handle(exception => MySqlTransientExceptionDetector.ShouldRetryOn(exception))
-#pragma warning restore EF1001
- .WaitAndRetry(3, (count, context) => TimeSpan.FromMilliseconds(count * 250));
-
- serverVersion = retryPolicy.Execute(() => serverVersion = ServerVersion.AutoDetect(connectionString));
-
- return serverVersion;
- }
- public class NpgsqlCaseInsensitiveSqlGenerationHelper : NpgsqlSqlGenerationHelper
- {
- const string EFMigrationsHisory = "__EFMigrationsHistory";
- public NpgsqlCaseInsensitiveSqlGenerationHelper(RelationalSqlGenerationHelperDependencies dependencies)
- : base(dependencies) { }
- public override string DelimitIdentifier(string identifier) =>
- base.DelimitIdentifier(identifier == EFMigrationsHisory ? identifier : identifier.ToLower());
- public override void DelimitIdentifier(StringBuilder builder, string identifier)
- => base.DelimitIdentifier(builder, identifier == EFMigrationsHisory ? identifier : identifier.ToLower());
- }
-}
\ No newline at end of file
diff --git a/src/Ombi.Core/Helpers/FileSystem.cs b/src/Ombi.Core/Helpers/FileSystem.cs
deleted file mode 100644
index 97b9da0bf..000000000
--- a/src/Ombi.Core/Helpers/FileSystem.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace Ombi.Core.Helpers;
-
-public class FileSystem : IFileSystem
-{
- public bool FileExists(string path)
- {
- return System.IO.File.Exists(path);
- }
- // Implement other file system operations as needed
-}
\ No newline at end of file
diff --git a/src/Ombi.Core/Helpers/IFileSystem.cs b/src/Ombi.Core/Helpers/IFileSystem.cs
deleted file mode 100644
index da2c9bba5..000000000
--- a/src/Ombi.Core/Helpers/IFileSystem.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace Ombi.Core.Helpers;
-
-public interface IFileSystem
-{
- bool FileExists(string path);
- // Add other file system operations as needed
-}
\ No newline at end of file
diff --git a/src/Ombi.Core/Models/DatabaseConfiguration.cs b/src/Ombi.Core/Models/DatabaseConfiguration.cs
deleted file mode 100644
index 550800108..000000000
--- a/src/Ombi.Core/Models/DatabaseConfiguration.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using System.IO;
-
-namespace Ombi.Core.Models;
-
-public class DatabaseConfiguration
-{
- public const string SqliteDatabase = "Sqlite";
-
- public DatabaseConfiguration()
- {
-
- }
-
- public DatabaseConfiguration(string defaultSqlitePath)
- {
- OmbiDatabase = new PerDatabaseConfiguration(SqliteDatabase, $"Data Source={Path.Combine(defaultSqlitePath, "Ombi.db")}");
- SettingsDatabase = new PerDatabaseConfiguration(SqliteDatabase, $"Data Source={Path.Combine(defaultSqlitePath, "OmbiSettings.db")}");
- ExternalDatabase = new PerDatabaseConfiguration(SqliteDatabase, $"Data Source={Path.Combine(defaultSqlitePath, "OmbiExternal.db")}");
- }
- public PerDatabaseConfiguration OmbiDatabase { get; set; }
- public PerDatabaseConfiguration SettingsDatabase { get; set; }
- public PerDatabaseConfiguration ExternalDatabase { get; set; }
-}
-
-public class PerDatabaseConfiguration
-{
- public PerDatabaseConfiguration(string type, string connectionString)
- {
- Type = type;
- ConnectionString = connectionString;
- }
-
- // Used in Deserialization
- public PerDatabaseConfiguration()
- {
-
- }
- public string Type { get; set; }
- public string ConnectionString { get; set; }
-}
\ No newline at end of file
diff --git a/src/Ombi.Core/Models/Requests/RecentlyRequestedModel.cs b/src/Ombi.Core/Models/Requests/RecentlyRequestedModel.cs
index daab65e71..4296c2cc1 100644
--- a/src/Ombi.Core/Models/Requests/RecentlyRequestedModel.cs
+++ b/src/Ombi.Core/Models/Requests/RecentlyRequestedModel.cs
@@ -16,7 +16,6 @@ namespace Ombi.Core.Models.Requests
public string Overview { get; set; }
public DateTime ReleaseDate { get; set; }
public bool Approved { get; set; }
- public bool Denied { get; set; }
public string MediaId { get; set; }
public string PosterPath { get; set; }
diff --git a/src/Ombi.Core/Models/TesterResultModel.cs b/src/Ombi.Core/Models/TesterResultModel.cs
index 945e0e261..563fa5cb2 100644
--- a/src/Ombi.Core/Models/TesterResultModel.cs
+++ b/src/Ombi.Core/Models/TesterResultModel.cs
@@ -5,6 +5,5 @@
public bool IsValid { get; set; }
public string Version { get; set; }
public string ExpectedSubDir { get; set; }
- public string AdditionalInformation { get; set; }
}
}
diff --git a/src/Ombi.Core/Ombi.Core.csproj b/src/Ombi.Core/Ombi.Core.csproj
index 7f15da6db..e4826d3c9 100644
--- a/src/Ombi.Core/Ombi.Core.csproj
+++ b/src/Ombi.Core/Ombi.Core.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net6.0
3.0.0.0
3.0.0.0
@@ -13,8 +13,8 @@
-
-
+
+
diff --git a/src/Ombi.Core/Rule/Rules/Request/AutoApproveRule.cs b/src/Ombi.Core/Rule/Rules/Request/AutoApproveRule.cs
index 6f9d20d62..23d26625b 100644
--- a/src/Ombi.Core/Rule/Rules/Request/AutoApproveRule.cs
+++ b/src/Ombi.Core/Rule/Rules/Request/AutoApproveRule.cs
@@ -36,7 +36,7 @@ namespace Ombi.Core.Rule.Rules.Request
{
if (obj is MovieRequests movie)
{
- await ApproveMovie(movie);
+ await Check4K(movie);
}
else
{
@@ -45,14 +45,10 @@ namespace Ombi.Core.Rule.Rules.Request
return Success();
}
- if (obj.RequestType == RequestType.Movie)
+ if (obj.RequestType == RequestType.Movie && await _manager.IsInRoleAsync(user, OmbiRoles.AutoApproveMovie))
{
var movie = (MovieRequests)obj;
- var autoApproveRole = movie.Is4kRequest ? OmbiRoles.AutoApprove4KMovie : OmbiRoles.AutoApproveMovie;
- if (await _manager.IsInRoleAsync(user, autoApproveRole))
- {
- await ApproveMovie(movie);
- }
+ await Check4K(movie);
}
if (obj.RequestType == RequestType.TvShow && await _manager.IsInRoleAsync(user, OmbiRoles.AutoApproveTv))
obj.Approved = true;
@@ -61,7 +57,7 @@ namespace Ombi.Core.Rule.Rules.Request
return Success(); // We don't really care, we just don't set the obj to approve
}
- private async Task ApproveMovie(MovieRequests movie)
+ private async Task Check4K(MovieRequests movie)
{
var featureEnabled = await _featureService.FeatureEnabled(FeatureNames.Movie4KRequests);
if (movie.Is4kRequest && featureEnabled)
diff --git a/src/Ombi.Core/Rule/Rules/Request/CanRequestRule.cs b/src/Ombi.Core/Rule/Rules/Request/CanRequestRule.cs
index daafde272..e2e81e612 100644
--- a/src/Ombi.Core/Rule/Rules/Request/CanRequestRule.cs
+++ b/src/Ombi.Core/Rule/Rules/Request/CanRequestRule.cs
@@ -36,13 +36,21 @@ namespace Ombi.Core.Rule.Rules.Request
if (obj.RequestType == RequestType.Movie)
{
var movie = (MovieRequests)obj;
-
- var requestRole = movie.Is4kRequest ? OmbiRoles.Request4KMovie : OmbiRoles.RequestMovie;
- var autoApproveRole = movie.Is4kRequest ? OmbiRoles.AutoApprove4KMovie : OmbiRoles.AutoApproveMovie;
-
- if (await _manager.IsInRoleAsync(user, requestRole) || await _manager.IsInRoleAsync(user, autoApproveRole))
+ var hasAutoApprove = await _manager.IsInRoleAsync(user, OmbiRoles.AutoApproveMovie);
+ if (await _manager.IsInRoleAsync(user, OmbiRoles.RequestMovie) || hasAutoApprove)
{
- return Success();
+ if (movie.Is4kRequest && !hasAutoApprove)
+ {
+ var has4kPermission = await _manager.IsInRoleAsync(user, OmbiRoles.Request4KMovie);
+ if (has4kPermission)
+ {
+ return Success();
+ }
+ }
+ else
+ {
+ return Success();
+ }
}
return Fail(ErrorCode.NoPermissionsRequestMovie, "You do not have permissions to Request a Movie");
}
diff --git a/src/Ombi.Core/Senders/MovieSender.cs b/src/Ombi.Core/Senders/MovieSender.cs
index a7ae4a6e7..f6907e2f5 100644
--- a/src/Ombi.Core/Senders/MovieSender.cs
+++ b/src/Ombi.Core/Senders/MovieSender.cs
@@ -69,7 +69,7 @@ namespace Ombi.Core.Senders
}
if (radarrSettings.Enabled)
{
- return await SendToRadarr(model, radarrSettings, is4K);
+ return await SendToRadarr(model, radarrSettings);
}
var dogSettings = await _dogNzbSettings.GetSettingsAsync();
@@ -133,7 +133,7 @@ namespace Ombi.Core.Senders
return await _dogNzbApi.AddMovie(settings.ApiKey, id);
}
- private async Task SendToRadarr(MovieRequests model, RadarrSettings settings, bool is4k)
+ private async Task SendToRadarr(MovieRequests model, RadarrSettings settings)
{
var qualityToUse = int.Parse(settings.DefaultQualityProfile);
@@ -142,35 +142,17 @@ namespace Ombi.Core.Senders
var profiles = await _userProfiles.GetAll().FirstOrDefaultAsync(x => x.UserId == model.RequestedUserId);
if (profiles != null)
{
- if (is4k)
+ if (profiles.RadarrRootPath > 0)
{
- if (profiles.Radarr4KRootPath > 0)
+ var tempPath = await RadarrRootPath(profiles.RadarrRootPath, settings);
+ if (tempPath.HasValue())
{
- var tempPath = await RadarrRootPath(profiles.Radarr4KRootPath, settings);
- if (tempPath.HasValue())
- {
- rootFolderPath = tempPath;
- }
+ rootFolderPath = tempPath;
}
- if (profiles.Radarr4KQualityProfile > 0)
- {
- qualityToUse = profiles.Radarr4KQualityProfile;
- }
- }
- else
+ }
+ if (profiles.RadarrQualityProfile > 0)
{
- if (profiles.RadarrRootPath > 0)
- {
- var tempPath = await RadarrRootPath(profiles.RadarrRootPath, settings);
- if (tempPath.HasValue())
- {
- rootFolderPath = tempPath;
- }
- }
- if (profiles.RadarrQualityProfile > 0)
- {
- qualityToUse = profiles.RadarrQualityProfile;
- }
+ qualityToUse = profiles.RadarrQualityProfile;
}
}
@@ -182,10 +164,7 @@ namespace Ombi.Core.Senders
if (settings.SendUserTags)
{
var userTag = await GetOrCreateTag(model, settings);
- if (userTag != null)
- {
- tags.Add(userTag.id);
- }
+ tags.Add(userTag.id);
}
// Overrides on the request take priority
@@ -201,9 +180,7 @@ namespace Ombi.Core.Senders
List movies;
// Check if the movie already exists? Since it could be unmonitored
- // Get the appropriate Radarr instance settings for existence check
- var existenceCheckSettings = is4k ? await _radarr4KSettings.GetSettingsAsync() : settings;
- movies = await _radarrV3Api.GetMovies(existenceCheckSettings.ApiKey, existenceCheckSettings.FullUri);
+ movies = await _radarrV3Api.GetMovies(settings.ApiKey, settings.FullUri);
var existingMovie = movies.FirstOrDefault(x => x.tmdbId == model.TheMovieDbId);
if (existingMovie == null)
@@ -251,12 +228,6 @@ namespace Ombi.Core.Senders
private async Task GetOrCreateTag(MovieRequests model, RadarrSettings s)
{
- if (model.RequestedUser == null)
- {
- _log.LogWarning("Cannot create tag - RequestedUser is null for movie request {MovieTitle}", model.Title);
- return null;
- }
-
var tagName = model.RequestedUser.UserName;
// Does tag exist?
diff --git a/src/Ombi.Core/Senders/MusicSender.cs b/src/Ombi.Core/Senders/MusicSender.cs
index 57bf4ab68..260b008fe 100644
--- a/src/Ombi.Core/Senders/MusicSender.cs
+++ b/src/Ombi.Core/Senders/MusicSender.cs
@@ -100,7 +100,7 @@ namespace Ombi.Core.Senders
addOptions = new Addoptions
{
monitored = true,
- monitor = MonitorTypes.Existing,
+ monitor = MonitorTypes.None,
searchForMissingAlbums = false,
AlbumsToMonitor = new[] {model.ForeignAlbumId}
},
@@ -199,4 +199,4 @@ namespace Ombi.Core.Senders
return new SenderResult { Message = "Could not set album to monitored", Sent = false, Success = false };
}
}
-}
+}
\ No newline at end of file
diff --git a/src/Ombi.Core/Senders/TvSender.cs b/src/Ombi.Core/Senders/TvSender.cs
index 1928ecea9..68a7507e7 100644
--- a/src/Ombi.Core/Senders/TvSender.cs
+++ b/src/Ombi.Core/Senders/TvSender.cs
@@ -1,9 +1,13 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
+using Microsoft.VisualBasic;
+using Ombi.Api.DogNzb;
+using Ombi.Api.DogNzb.Models;
using Ombi.Api.SickRage;
using Ombi.Api.SickRage.Models;
using Ombi.Api.Sonarr;
@@ -19,13 +23,15 @@ namespace Ombi.Core.Senders
{
public class TvSender : ITvSender
{
- public TvSender(ISonarrV3Api sonarrV3Api, ILogger log, ISettingsService sonarrSettings,
- ISettingsService srSettings,
+ public TvSender(ISonarrApi sonarrApi, ISonarrV3Api sonarrV3Api, ILogger log, ISettingsService sonarrSettings,
+ ISettingsService dog, IDogNzbApi dogApi, ISettingsService srSettings,
ISickRageApi srApi, IRepository userProfiles, IRepository requestQueue, INotificationHelper notify)
{
SonarrApi = sonarrV3Api;
Logger = log;
SonarrSettings = sonarrSettings;
+ DogNzbSettings = dog;
+ DogNzbApi = dogApi;
SickRageSettings = srSettings;
SickRageApi = srApi;
UserQualityProfiles = userProfiles;
@@ -34,9 +40,11 @@ namespace Ombi.Core.Senders
}
private ISonarrV3Api SonarrApi { get; }
+ private IDogNzbApi DogNzbApi { get; }
private ISickRageApi SickRageApi { get; }
private ILogger Logger { get; }
private ISettingsService SonarrSettings { get; }
+ private ISettingsService DogNzbSettings { get; }
private ISettingsService SickRageSettings { get; }
private IRepository UserQualityProfiles { get; }
private readonly IRepository _requestQueueRepository;
@@ -59,7 +67,23 @@ namespace Ombi.Core.Senders
};
}
}
-
+ var dog = await DogNzbSettings.GetSettingsAsync();
+ if (dog.Enabled)
+ {
+ var result = await SendToDogNzb(model, dog);
+ if (!result.Failure)
+ {
+ return new SenderResult
+ {
+ Sent = true,
+ Success = true
+ };
+ }
+ return new SenderResult
+ {
+ Message = result.ErrorMessage
+ };
+ }
var sr = await SickRageSettings.GetSettingsAsync();
if (sr.Enabled)
{
@@ -113,6 +137,12 @@ namespace Ombi.Core.Senders
};
}
+ private async Task SendToDogNzb(ChildRequests model, DogNzbSettings settings)
+ {
+ var id = model.ParentRequest.ExternalProviderId;
+ return await DogNzbApi.AddTvShow(settings.ApiKey, id.ToString());
+ }
+
///
/// Send the request to Sonarr to process
///
@@ -133,14 +163,7 @@ namespace Ombi.Core.Senders
string seriesType;
int? tagToUse = null;
- Logger.LogInformation("Starting SendToSonarr for series {Title} (TvDbId: {TvDbId})", model.ParentRequest.Title, model.ParentRequest.TvDbId);
- Logger.LogInformation("Series type: {SeriesType}", model.SeriesType);
-
var profiles = await UserQualityProfiles.GetAll().FirstOrDefaultAsync(x => x.UserId == model.RequestedUserId);
- if (profiles != null)
- {
- Logger.LogInformation("Found user quality profile for user {UserId}", model.RequestedUserId);
- }
if (model.SeriesType == SeriesType.Anime)
{
@@ -148,10 +171,8 @@ namespace Ombi.Core.Senders
// For some reason, if we haven't got one use the first root folder in Sonarr
if (!int.TryParse(s.RootPathAnime, out int animePath))
{
- Logger.LogWarning("Failed to parse RootPathAnime: {RootPathAnime}, falling back to main root path", s.RootPathAnime);
animePath = int.Parse(s.RootPath); // Set it to the main root folder if we have no anime folder.
}
- Logger.LogInformation("Using anime path ID: {AnimePath}", animePath);
rootFolderPath = await GetSonarrRootPath(animePath, s);
languageProfileId = s.LanguageProfileAnime > 0 ? s.LanguageProfileAnime : s.LanguageProfile;
@@ -163,7 +184,6 @@ namespace Ombi.Core.Senders
{
if (profiles.SonarrRootPathAnime > 0)
{
- Logger.LogInformation("Using user's anime root path override: {RootPath}", profiles.SonarrRootPathAnime);
rootFolderPath = await GetSonarrRootPath(profiles.SonarrRootPathAnime, s);
}
if (profiles.SonarrQualityProfileAnime > 0)
@@ -179,13 +199,11 @@ namespace Ombi.Core.Senders
int.TryParse(s.QualityProfile, out qualityToUse);
// Get the root path from the rootfolder selected.
// For some reason, if we haven't got one use the first root folder in Sonarr
- Logger.LogInformation("Using standard path ID: {RootPath}", s.RootPath);
rootFolderPath = await GetSonarrRootPath(int.Parse(s.RootPath), s);
if (profiles != null)
{
if (profiles.SonarrRootPath > 0)
{
- Logger.LogInformation("Using user's standard root path override: {RootPath}", profiles.SonarrRootPath);
rootFolderPath = await GetSonarrRootPath(profiles.SonarrRootPath, s);
}
if (profiles.SonarrQualityProfile > 0)
@@ -198,24 +216,32 @@ namespace Ombi.Core.Senders
}
// Overrides on the request take priority
- if (model.ParentRequest.QualityOverride.HasValue && model.ParentRequest.QualityOverride.Value > 0)
+ if (model.ParentRequest.QualityOverride.HasValue)
{
- qualityToUse = model.ParentRequest.QualityOverride.Value;
+ var qualityOverride = model.ParentRequest.QualityOverride.Value;
+ if (qualityOverride > 0)
+ {
+ qualityToUse = qualityOverride;
+ }
+ }
+ if (model.ParentRequest.RootFolder.HasValue)
+ {
+ var rootfolderOverride = model.ParentRequest.RootFolder.Value;
+ if (rootfolderOverride > 0)
+ {
+ rootFolderPath = await GetSonarrRootPath(rootfolderOverride, s);
+ }
}
- if (model.ParentRequest.RootFolder.HasValue && model.ParentRequest.RootFolder.Value > 0)
+ if (model.ParentRequest.LanguageProfile.HasValue)
{
- Logger.LogInformation("Using request root folder override: {RootFolder}", model.ParentRequest.RootFolder.Value);
- rootFolderPath = await GetSonarrRootPath(model.ParentRequest.RootFolder.Value, s);
+ var languageProfile = model.ParentRequest.LanguageProfile.Value;
+ if (languageProfile > 0)
+ {
+ languageProfileId = languageProfile;
+ }
}
- if (model.ParentRequest.LanguageProfile.HasValue && model.ParentRequest.LanguageProfile.Value > 0)
- {
- languageProfileId = model.ParentRequest.LanguageProfile.Value;
- }
-
- Logger.LogInformation("Final root folder path: {RootFolderPath}", rootFolderPath);
-
try
{
if (tagToUse.HasValue)
@@ -398,11 +424,10 @@ namespace Ombi.Core.Senders
await SonarrApi.MonitorEpisode(epToUnmonitored.Select(x => x.id).ToArray(), false, s.ApiKey, s.FullUri);
}
+ // Now update the episodes that need updating
+ await SonarrApi.MonitorEpisode(episodesToUpdate.Where(x => x.seasonNumber == season.SeasonNumber).Select(x => x.id).ToArray(), true, s.ApiKey, s.FullUri);
}
- // Now update the episodes that need updating
- await SonarrApi.MonitorEpisode(episodesToUpdate.Select(x => x.id).ToArray(), true, s.ApiKey, s.FullUri);
-
if (!s.AddOnly)
{
await SearchForRequest(model, sonarrEpList, result, s, episodesToUpdate);
@@ -535,36 +560,17 @@ namespace Ombi.Core.Senders
private async Task GetSonarrRootPath(int pathId, SonarrSettings sonarrSettings)
{
- Logger.LogInformation("Getting Sonarr root path for ID: {PathId}", pathId);
var rootFoldersResult = await SonarrApi.GetRootFolders(sonarrSettings.ApiKey, sonarrSettings.FullUri);
-
- if (rootFoldersResult == null || !rootFoldersResult.Any())
- {
- Logger.LogError("No root folders returned from Sonarr API");
- return string.Empty;
- }
-
- Logger.LogInformation("Found {Count} root folders in Sonarr", rootFoldersResult.Count());
- foreach (var folder in rootFoldersResult)
- {
- Logger.LogDebug("Root folder - ID: {Id}, Path: {Path}", folder.id, folder.path);
- }
if (pathId == 0)
{
- var defaultPath = rootFoldersResult.FirstOrDefault()?.path;
- Logger.LogInformation("Using first root folder as default: {Path}", defaultPath);
- return defaultPath;
+ return rootFoldersResult.FirstOrDefault().path;
}
- var matchingFolder = rootFoldersResult.FirstOrDefault(r => r.id == pathId);
- if (matchingFolder != null)
+ foreach (var r in rootFoldersResult?.Where(r => r.id == pathId))
{
- Logger.LogInformation("Found matching root folder for ID {PathId}: {Path}", pathId, matchingFolder.path);
- return matchingFolder.path;
+ return r.path;
}
-
- Logger.LogError("No matching root folder found for ID: {PathId}", pathId);
return string.Empty;
}
}
diff --git a/src/Ombi.Core/Services/DatabaseConfigurationService.cs b/src/Ombi.Core/Services/DatabaseConfigurationService.cs
deleted file mode 100644
index 750499b19..000000000
--- a/src/Ombi.Core/Services/DatabaseConfigurationService.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-using System;
-using System.IO;
-using System.Threading;
-using System.Threading.Tasks;
-using Microsoft.Extensions.Logging;
-using Newtonsoft.Json;
-using Ombi.Core.Helpers;
-using Ombi.Core.Models;
-using Ombi.Helpers;
-
-namespace Ombi.Core.Services;
-
-public class DatabaseConfigurationService : IDatabaseConfigurationService
-{
-
- private readonly ILogger _logger;
- private readonly IFileSystem _fileSystem;
-
- public DatabaseConfigurationService(
- ILogger logger,
- IFileSystem fileSystem)
- {
- _logger = logger;
- _fileSystem = fileSystem;
- }
-
- public async Task ConfigureDatabase(string databaseType, string connectionString, CancellationToken token)
- {
- var i = StartupSingleton.Instance;
- if (string.IsNullOrEmpty(i.StoragePath))
- {
- i.StoragePath = string.Empty;
- }
-
- var databaseFileLocation = Path.Combine(i.StoragePath, "database.json");
- if (_fileSystem.FileExists(databaseFileLocation))
- {
- var error = $"The database file at '{databaseFileLocation}' already exists";
- _logger.LogError(error);
- return false;
- }
-
- var configuration = new DatabaseConfiguration
- {
- ExternalDatabase = new PerDatabaseConfiguration(databaseType, connectionString),
- OmbiDatabase = new PerDatabaseConfiguration(databaseType, connectionString),
- SettingsDatabase = new PerDatabaseConfiguration(databaseType, connectionString)
- };
-
- var json = JsonConvert.SerializeObject(configuration, Formatting.Indented);
-
- _logger.LogInformation("Writing database configuration to file");
-
- try
- {
- await File.WriteAllTextAsync(databaseFileLocation, json, token);
- }
- catch (Exception e)
- {
- _logger.LogError(e, "Failed to write database configuration to file");
- return false;
- }
-
- _logger.LogInformation("Database configuration written to file");
-
-
- return true;
- }
-}
\ No newline at end of file
diff --git a/src/Ombi.Core/Services/IDatabaseConfigurationService.cs b/src/Ombi.Core/Services/IDatabaseConfigurationService.cs
deleted file mode 100644
index 3530bf913..000000000
--- a/src/Ombi.Core/Services/IDatabaseConfigurationService.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace Ombi.Core.Services;
-
-public interface IDatabaseConfigurationService
-{
- const string MySqlDatabase = "MySQL";
- const string PostgresDatabase = "Postgres";
- Task ConfigureDatabase(string databaseType, string connectionString, CancellationToken token);
-}
\ No newline at end of file
diff --git a/src/Ombi.Core/Services/RecentlyRequestedService.cs b/src/Ombi.Core/Services/RecentlyRequestedService.cs
index 26d873c4d..1c67472d4 100644
--- a/src/Ombi.Core/Services/RecentlyRequestedService.cs
+++ b/src/Ombi.Core/Services/RecentlyRequestedService.cs
@@ -73,10 +73,6 @@ namespace Ombi.Core.Services
var lang = await DefaultLanguageCode();
foreach (var item in await recentMovieRequests.ToListAsync(cancellationToken))
{
- if (hideUsers.Hide && item.RequestedUserId != hideUsers.UserId)
- {
- continue;
- }
var images = await _cache.GetOrAddAsync($"{CacheKeys.TmdbImages}movie{item.TheMovieDbId}", () => _movieDbApi.GetMovieImages(item.TheMovieDbId.ToString(), cancellationToken), DateTimeOffset.Now.AddDays(1));
model.Add(new RecentlyRequestedModel
{
@@ -88,9 +84,8 @@ namespace Ombi.Core.Services
Title = item.Title,
Type = RequestType.Movie,
Approved = item.Approved,
- Denied = item.Denied ?? false,
- UserId = item.RequestedUserId,
- Username = item.RequestedUser.UserAlias,
+ UserId = hideUsers.Hide ? string.Empty : item.RequestedUserId,
+ Username = hideUsers.Hide ? string.Empty : item.RequestedUser.UserAlias,
MediaId = item.TheMovieDbId.ToString(),
PosterPath = images?.posters?.Where(x => lang.Equals(x?.iso_639_1, StringComparison.InvariantCultureIgnoreCase))?.OrderByDescending(x => x.vote_count)?.Select(x => x.file_path)?.FirstOrDefault(),
Background = images?.backdrops?.Where(x => lang.Equals(x?.iso_639_1, StringComparison.InvariantCultureIgnoreCase))?.OrderByDescending(x => x.vote_count)?.Select(x => x.file_path)?.FirstOrDefault(),
@@ -99,33 +94,24 @@ namespace Ombi.Core.Services
foreach (var item in await recentMusicRequests.ToListAsync(cancellationToken))
{
- if (hideUsers.Hide && item.RequestedUserId != hideUsers.UserId)
- {
- continue;
- }
model.Add(new RecentlyRequestedModel
{
RequestId = item.Id,
Available = item.Available,
Overview = item.ArtistName,
Approved = item.Approved,
- Denied = item.Denied ?? false,
ReleaseDate = item.ReleaseDate,
RequestDate = item.RequestedDate,
Title = item.Title,
Type = RequestType.Album,
- UserId = item.RequestedUserId,
- Username = item.RequestedUser.UserAlias,
+ UserId = hideUsers.Hide ? string.Empty : item.RequestedUserId,
+ Username = hideUsers.Hide ? string.Empty : item.RequestedUser.UserAlias,
MediaId = item.ForeignAlbumId,
});
}
foreach (var item in await recentTvRequests.ToListAsync(cancellationToken))
{
- if (hideUsers.Hide && item.RequestedUserId != hideUsers.UserId)
- {
- continue;
- }
var providerId = item.ParentRequest.ExternalProviderId.ToString();
var images = await _cache.GetOrAddAsync($"{CacheKeys.TmdbImages}tv{providerId}", () => _movieDbApi.GetTvImages(providerId.ToString(), cancellationToken), DateTimeOffset.Now.AddDays(1));
@@ -137,13 +123,12 @@ namespace Ombi.Core.Services
Overview = item.ParentRequest.Overview,
ReleaseDate = item.ParentRequest.ReleaseDate,
Approved = item.Approved,
- Denied = item.Denied ?? false,
RequestDate = item.RequestedDate,
TvPartiallyAvailable = partialAvailability,
Title = item.ParentRequest.Title,
Type = RequestType.TvShow,
- UserId = item.RequestedUserId,
- Username = item.RequestedUser.UserAlias,
+ UserId = hideUsers.Hide ? string.Empty : item.RequestedUserId,
+ Username = hideUsers.Hide ? string.Empty : item.RequestedUser.UserAlias,
MediaId = providerId.ToString(),
PosterPath = images?.posters?.Where(x => lang.Equals(x?.iso_639_1, StringComparison.InvariantCultureIgnoreCase))?.OrderByDescending(x => x.vote_count)?.Select(x => x.file_path)?.FirstOrDefault(),
Background = images?.backdrops?.Where(x => lang.Equals(x?.iso_639_1, StringComparison.InvariantCultureIgnoreCase))?.OrderByDescending(x => x.vote_count)?.Select(x => x.file_path)?.FirstOrDefault(),
diff --git a/src/Ombi.DependencyInjection/IocExtensions.cs b/src/Ombi.DependencyInjection/IocExtensions.cs
index 027717bbe..09d99d4b7 100644
--- a/src/Ombi.DependencyInjection/IocExtensions.cs
+++ b/src/Ombi.DependencyInjection/IocExtensions.cs
@@ -107,7 +107,6 @@ namespace Ombi.DependencyInjection
services.AddTransient();
services.AddTransient();
services.AddTransient();
- services.AddTransient();
services.AddTransient();
services.AddTransient();
services.AddTransient();
@@ -198,8 +197,6 @@ namespace Ombi.DependencyInjection
services.AddScoped();
services.AddScoped();
services.AddScoped();
- services.AddScoped();
- services.AddScoped();
services.AddScoped();
services.AddScoped();
@@ -237,8 +234,6 @@ namespace Ombi.DependencyInjection
services.AddScoped();
services.AddTransient();
services.AddTransient();
- services.AddSingleton();
- services.AddSingleton();
}
public static void RegisterJobs(this IServiceCollection services)
@@ -249,7 +244,6 @@ namespace Ombi.DependencyInjection
services.AddTransient