Merge remote-tracking branch 'upstream/develop' into newsletter-localization

This commit is contained in:
Florian Dupret 2022-02-01 11:19:22 +01:00
commit e995044b05
19 changed files with 325 additions and 197 deletions

View file

@ -68,7 +68,7 @@ jobs:
uses: TriPSs/conventional-changelog-action@v3 uses: TriPSs/conventional-changelog-action@v3
with: with:
version-file: 'version.json' version-file: 'version.json'
release-count: 20 release-count: 40
skip-on-empty: 'false' skip-on-empty: 'false'
git-message: 'chore(release): :rocket: {version}' git-message: 'chore(release): :rocket: {version}'

View file

@ -1,3 +1,21 @@
## [4.10.3](https://github.com/Ombi-app/Ombi/compare/v4.10.1...v4.10.3) (2022-01-31)
### Bug Fixes
* fix swagger api key auth ([#4483](https://github.com/Ombi-app/Ombi/issues/4483)) [no ci] ([32ee4e8](https://github.com/Ombi-app/Ombi/commit/32ee4e88ec05bf610150933974408fbe95ccd7bd))
* **frontend:** add link on logo text ([6d7274a](https://github.com/Ombi-app/Ombi/commit/6d7274a94ea24343f32fc028984bd3fd5d5f2ee3))
## [4.10.1](https://github.com/Ombi-app/Ombi/compare/v4.10.0...v4.10.1) (2022-01-22)
## [4.3.3](https://github.com/Ombi-app/Ombi/compare/v4.3.2...v4.3.3) (2021-11-05)
# [4.10.0](https://github.com/Ombi-app/Ombi/compare/v4.9.2...v4.10.0) (2022-01-14) # [4.10.0](https://github.com/Ombi-app/Ombi/compare/v4.9.2...v4.10.0) (2022-01-14)
@ -181,3 +199,184 @@
## [4.6.3](https://github.com/Ombi-app/Ombi/compare/v4.6.2...v4.6.3) (2021-11-11)
### Bug Fixes
* **discover:** :bug: Display TV + movies on actor page in user language ([#4395](https://github.com/Ombi-app/Ombi/issues/4395)) ([fe635c7](https://github.com/Ombi-app/Ombi/commit/fe635c7106bc487ff879bdc8a73bab16cb389b97))
* **permissions:** :bug: Improved the security around the role "Manage Own Requests" ([#4397](https://github.com/Ombi-app/Ombi/issues/4397)) ([334a32b](https://github.com/Ombi-app/Ombi/commit/334a32bca42f90198d9b720d2bdb710a583be47f)), closes [#4391](https://github.com/Ombi-app/Ombi/issues/4391)
* **search:** Fixed some cases where search wouldn't work correctly ([#4398](https://github.com/Ombi-app/Ombi/issues/4398)) ([4410790](https://github.com/Ombi-app/Ombi/commit/4410790bc096826bc11554098f846e3acb59589a))
## [4.6.2](https://github.com/Ombi-app/Ombi/compare/v4.6.1...v4.6.2) (2021-11-10)
### Bug Fixes
* **discover:** TV shows now display on the Actor Pages ([#4388](https://github.com/Ombi-app/Ombi/issues/4388)) ([6b716e7](https://github.com/Ombi-app/Ombi/commit/6b716e722076e3d1e6bf2097c5263645d5ea9edf))
## [4.6.1](https://github.com/Ombi-app/Ombi/compare/v4.6.0...v4.6.1) (2021-11-10)
### Bug Fixes
* :bug: Fixed the MySQL issue after .net 6 upgrade [#4393](https://github.com/Ombi-app/Ombi/issues/4393) ([fea7ff0](https://github.com/Ombi-app/Ombi/commit/fea7ff05139e9ff50c8097fa5389b4ef9ad21a15))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([c6acb45](https://github.com/Ombi-app/Ombi/commit/c6acb45f8d3f371c0b4024c4272849d0d0cc867f))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([18c220a](https://github.com/Ombi-app/Ombi/commit/18c220a0cd0d19e45a07d0c319da2b9512778a8a))
# [4.6.0](https://github.com/Ombi-app/Ombi/compare/v4.4.0...v4.6.0) (2021-11-09)
### Features
* :sparkles: Upgrade Ombi to .NET 6 ([#4390](https://github.com/Ombi-app/Ombi/issues/4390)) ([719eb7d](https://github.com/Ombi-app/Ombi/commit/719eb7dbe37b3a72d264e2f670067518eef70694)), closes [#4392](https://github.com/Ombi-app/Ombi/issues/4392)
# [4.4.0](https://github.com/Ombi-app/Ombi/compare/v4.3.3...v4.4.0) (2021-11-06)
### Bug Fixes
* **request-list:** :bug: Fixed an issue where the request options were not appearing for Music requests ([c0406a2](https://github.com/Ombi-app/Ombi/commit/c0406a2ddebafb03d98ed25cdf7d89dc9a600c7d))
### Features
* **mass-email:** :sparkles: Added the ability to configure the Mass Email, we can now send BCC and we are less likely to be rate limited when not using bcc [#4377](https://github.com/Ombi-app/Ombi/issues/4377) ([ca655ae](https://github.com/Ombi-app/Ombi/commit/ca655ae57042dec44106a2f2ef5ba2e6f1019ee4))
## [4.3.3](https://github.com/Ombi-app/Ombi/compare/v4.3.2...v4.3.3) (2021-11-05)
## [4.3.2](https://github.com/Ombi-app/Ombi/compare/v4.3.1...v4.3.2) (2021-11-02)
### Bug Fixes
* **translations:** 🌐 Localization - Ensuring all of the app including backend are localized [#4366](https://github.com/Ombi-app/Ombi/issues/4366) ([5e140ab](https://github.com/Ombi-app/Ombi/commit/5e140ab6183b887a7665f5e870eb0bd05d487ace))
## [4.3.1](https://github.com/Ombi-app/Ombi/compare/v4.3.0...v4.3.1) (2021-10-27)
### Bug Fixes
* :bug: Hides no results message during search. ([#4375](https://github.com/Ombi-app/Ombi/issues/4375)) ([b819b0e](https://github.com/Ombi-app/Ombi/commit/b819b0e007e578bf3d8425f19591f87029c64d06))
# [4.3.0](https://github.com/Ombi-app/Ombi/compare/v4.2.13...v4.3.0) (2021-10-20)
### Bug Fixes
* **translations:** 🌐 New translations from Crowdin [skip ci] ([b0f3abb](https://github.com/Ombi-app/Ombi/commit/b0f3abb9ceebdbe5d6c20af98b7355df2999eb58))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([77d017b](https://github.com/Ombi-app/Ombi/commit/77d017b3d8ffd1714a2f6efecc8c900d56d062e4))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([f6e9784](https://github.com/Ombi-app/Ombi/commit/f6e9784367d3678d899ed79bef6caa52005b6661))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([601a877](https://github.com/Ombi-app/Ombi/commit/601a87762a2ad393ee5fa2fe52052ceeeefb1bef))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([a4a80ba](https://github.com/Ombi-app/Ombi/commit/a4a80ba4da49733a65e691003646c0f349bd4c5f))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([2961319](https://github.com/Ombi-app/Ombi/commit/2961319f61e95b2871480152b86ddca3375576a1))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([fc8d108](https://github.com/Ombi-app/Ombi/commit/fc8d108b660d53f499538328bfc271b05ac47d2b))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([1e03651](https://github.com/Ombi-app/Ombi/commit/1e03651c3b0eb77e45f9f6c55d31ee672eacd51e))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([c0dd327](https://github.com/Ombi-app/Ombi/commit/c0dd327426514e305a88750d7c3deb21c194108f))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([2156129](https://github.com/Ombi-app/Ombi/commit/2156129f175335746f204bb123035c070f518e96))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([aef0368](https://github.com/Ombi-app/Ombi/commit/aef0368de3aec306245bd1b16bc0de596a20d451))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([a38090b](https://github.com/Ombi-app/Ombi/commit/a38090b8dde17d1d150af0bca2830ea45d013a0e))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([c5f1d33](https://github.com/Ombi-app/Ombi/commit/c5f1d3355758a5c3648479d44e50397c7f6c1a9d))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([3846d56](https://github.com/Ombi-app/Ombi/commit/3846d56a6e561a1b1dc65c385151d90fdd6217ee))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([dafe9c1](https://github.com/Ombi-app/Ombi/commit/dafe9c1a19d84f00c13f0a51ba90927c24282926))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([edb418a](https://github.com/Ombi-app/Ombi/commit/edb418a6f05887c68a0c24c48decc691996f97e4))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([dadabf9](https://github.com/Ombi-app/Ombi/commit/dadabf93e1582a0c39321fd9bf3de3fb11e3f406))
### Features
* **request-limits:** :sparkles: Added the new request limit options into the user importer ([01d4f4d](https://github.com/Ombi-app/Ombi/commit/01d4f4d718fe85ac181dae52565fb1b427965b4f))
* **request-limits:** :sparkles: Added the new request limit options to the bulk edit ([03bc23a](https://github.com/Ombi-app/Ombi/commit/03bc23a74e4308aa6b4c6b25636edcdeb65c1f0e))
## [4.2.13](https://github.com/Ombi-app/Ombi/compare/v4.2.12...v4.2.13) (2021-10-20)
### Bug Fixes
* **translations:** 🌐 New translations %two_letters_code% from Crowdin [skip ci] ([8fbd267](https://github.com/Ombi-app/Ombi/commit/8fbd267b516ddaa80fd16c091bae532b860fbf45))
## [4.2.12](https://github.com/Ombi-app/Ombi/compare/v4.2.11...v4.2.12) (2021-10-20)
### Bug Fixes
* **newsletter:** :bug: Fixed a few small bugs in the newsletter ([21dba4c](https://github.com/Ombi-app/Ombi/commit/21dba4c524b98b9f2b883d97e7e13329425a8762))
* **translations:** 🌐 New translations en.json from Crowdin [skip ci] ([52eda6a](https://github.com/Ombi-app/Ombi/commit/52eda6ab917a73842bc02b0d8e0c442e564ca8f0))
* **translations:** 🌐 New translations en.json from Crowdin [skip ci] ([1095d52](https://github.com/Ombi-app/Ombi/commit/1095d524962648a1e427f0bcd8105fa734dd5b60))
## [4.2.11](https://github.com/Ombi-app/Ombi/compare/v4.2.10...v4.2.11) (2021-10-18)
## [4.2.10](https://github.com/Ombi-app/Ombi/compare/v4.2.9...v4.2.10) (2021-10-15)
### Bug Fixes
* :bug: Really really fix it this time? ([543d36e](https://github.com/Ombi-app/Ombi/commit/543d36e5615341bc8378cac377b843a3dbc1ef99))
## [4.2.9](https://github.com/Ombi-app/Ombi/compare/v4.2.8...v4.2.9) (2021-10-15)
### Bug Fixes
* :fire: Really fix the base url issue this time ([9f36923](https://github.com/Ombi-app/Ombi/commit/9f36923c51bfabf9cb026f2da14f9947050af0d9))
## [4.2.8](https://github.com/Ombi-app/Ombi/compare/v4.2.7...v4.2.8) (2021-10-15)
### Bug Fixes
* :adhesive_bandage: See if this fixes the proxy issue ([74d1aca](https://github.com/Ombi-app/Ombi/commit/74d1acae499707a7e21401f53eb2bb90c5bb9cfa))
* :bug: Fixed Ombi not writing the baseUrl correctly ([e9cc8b6](https://github.com/Ombi-app/Ombi/commit/e9cc8b6fe71d3e10c1a901e70227989b3362afe3))
## [4.2.7](https://github.com/Ombi-app/Ombi/compare/v4.2.6...v4.2.7) (2021-10-14)
### Bug Fixes
* :bug: Fixed the issue parsing TheMovieDB dates. They have broken something... ([6e397e0](https://github.com/Ombi-app/Ombi/commit/6e397e02e95f894a92e8bf02428efdcac1275b31))
## [4.2.6](https://github.com/Ombi-app/Ombi/compare/v4.2.5...v4.2.6) (2021-10-14)
### Performance Improvements
* :zap: Use ngxs store for the whole customization section of the app ([97b493d](https://github.com/Ombi-app/Ombi/commit/97b493d869feee59d360b484a6c59388a2aead1f))
## [4.2.5](https://github.com/Ombi-app/Ombi/compare/v4.2.4...v4.2.5) (2021-10-14)

View file

@ -594,6 +594,13 @@ Here are some of the features Ombi has:
<sub><b>Matt</b></sub> <sub><b>Matt</b></sub>
</a> </a>
</td> </td>
<td align="center">
<a href="https://github.com/LMaxence">
<img src="https://avatars.githubusercontent.com/u/29194680?v=4" width="50;" alt="LMaxence"/>
<br />
<sub><b>Maxence Lecanu</b></sub>
</a>
</td>
<td align="center"> <td align="center">
<a href="https://github.com/AliMickey"> <a href="https://github.com/AliMickey">
<img src="https://avatars.githubusercontent.com/u/60691199?v=4" width="50;" alt="AliMickey"/> <img src="https://avatars.githubusercontent.com/u/60691199?v=4" width="50;" alt="AliMickey"/>
@ -608,13 +615,21 @@ Here are some of the features Ombi has:
<sub><b>Nathan Miller</b></sub> <sub><b>Nathan Miller</b></sub>
</a> </a>
</td> </td>
<td align="center">
<a href="https://github.com/cqxmzz">
<img src="https://avatars.githubusercontent.com/u/3071863?v=4" width="50;" alt="cqxmzz"/>
<br />
<sub><b>Qiming Chen</b></sub>
</a>
</td>
<td align="center"> <td align="center">
<a href="https://github.com/randallbruder"> <a href="https://github.com/randallbruder">
<img src="https://avatars.githubusercontent.com/u/6447487?v=4" width="50;" alt="randallbruder"/> <img src="https://avatars.githubusercontent.com/u/6447487?v=4" width="50;" alt="randallbruder"/>
<br /> <br />
<sub><b>Randall Bruder</b></sub> <sub><b>Randall Bruder</b></sub>
</a> </a>
</td> </td></tr>
<tr>
<td align="center"> <td align="center">
<a href="https://github.com/rob1998"> <a href="https://github.com/rob1998">
<img src="https://avatars.githubusercontent.com/u/1560707?v=4" width="50;" alt="rob1998"/> <img src="https://avatars.githubusercontent.com/u/1560707?v=4" width="50;" alt="rob1998"/>
@ -628,8 +643,7 @@ Here are some of the features Ombi has:
<br /> <br />
<sub><b>Samuel Bartík</b></sub> <sub><b>Samuel Bartík</b></sub>
</a> </a>
</td></tr> </td>
<tr>
<td align="center"> <td align="center">
<a href="https://github.com/seancallinan"> <a href="https://github.com/seancallinan">
<img src="https://avatars.githubusercontent.com/u/1139665?v=4" width="50;" alt="seancallinan"/> <img src="https://avatars.githubusercontent.com/u/1139665?v=4" width="50;" alt="seancallinan"/>
@ -657,7 +671,8 @@ Here are some of the features Ombi has:
<br /> <br />
<sub><b>Tim Trott</b></sub> <sub><b>Tim Trott</b></sub>
</a> </a>
</td> </td></tr>
<tr>
<td align="center"> <td align="center">
<a href="https://github.com/tombomb"> <a href="https://github.com/tombomb">
<img src="https://avatars.githubusercontent.com/u/544509?v=4" width="50;" alt="tombomb"/> <img src="https://avatars.githubusercontent.com/u/544509?v=4" width="50;" alt="tombomb"/>
@ -671,8 +686,7 @@ Here are some of the features Ombi has:
<br /> <br />
<sub><b>Torkil</b></sub> <sub><b>Torkil</b></sub>
</a> </a>
</td></tr> </td>
<tr>
<td align="center"> <td align="center">
<a href="https://github.com/bybeet"> <a href="https://github.com/bybeet">
<img src="https://avatars.githubusercontent.com/u/1662279?v=4" width="50;" alt="bybeet"/> <img src="https://avatars.githubusercontent.com/u/1662279?v=4" width="50;" alt="bybeet"/>
@ -700,7 +714,8 @@ Here are some of the features Ombi has:
<br /> <br />
<sub><b>Blake Drumm</b></sub> <sub><b>Blake Drumm</b></sub>
</a> </a>
</td> </td></tr>
<tr>
<td align="center"> <td align="center">
<a href="https://github.com/camjac251"> <a href="https://github.com/camjac251">
<img src="https://avatars.githubusercontent.com/u/6313132?v=4" width="50;" alt="camjac251"/> <img src="https://avatars.githubusercontent.com/u/6313132?v=4" width="50;" alt="camjac251"/>
@ -714,8 +729,7 @@ Here are some of the features Ombi has:
<br /> <br />
<sub><b>Michael DiStaula</b></sub> <sub><b>Michael DiStaula</b></sub>
</a> </a>
</td></tr> </td>
<tr>
<td align="center"> <td align="center">
<a href="https://github.com/baikunz"> <a href="https://github.com/baikunz">
<img src="https://avatars.githubusercontent.com/u/984911?v=4" width="50;" alt="baikunz"/> <img src="https://avatars.githubusercontent.com/u/984911?v=4" width="50;" alt="baikunz"/>
@ -743,7 +757,8 @@ Here are some of the features Ombi has:
<br /> <br />
<sub><b>Patrick Weber</b></sub> <sub><b>Patrick Weber</b></sub>
</a> </a>
</td> </td></tr>
<tr>
<td align="center"> <td align="center">
<a href="https://github.com/sir-marv"> <a href="https://github.com/sir-marv">
<img src="https://avatars.githubusercontent.com/u/3598205?v=4" width="50;" alt="sir-marv"/> <img src="https://avatars.githubusercontent.com/u/3598205?v=4" width="50;" alt="sir-marv"/>
@ -757,8 +772,7 @@ Here are some of the features Ombi has:
<br /> <br />
<sub><b>Tdorsey</b></sub> <sub><b>Tdorsey</b></sub>
</a> </a>
</td></tr> </td>
<tr>
<td align="center"> <td align="center">
<a href="https://github.com/thegame3202"> <a href="https://github.com/thegame3202">
<img src="https://avatars.githubusercontent.com/u/22148848?v=4" width="50;" alt="thegame3202"/> <img src="https://avatars.githubusercontent.com/u/22148848?v=4" width="50;" alt="thegame3202"/>

View file

@ -7,8 +7,11 @@ frontend:
install-frontend: install-frontend:
cd src/Ombi/ClientApp && yarn cd src/Ombi/ClientApp && yarn
install-tests: install-frontend-tests:
cd tests && yarn cd tests && yarn
tests: frontend-tests:
cd tests && npx cypress open cd tests && npx cypress run
backend-tests:
cd src/Ombi.Core.Tests && dotnet test

View file

@ -47,66 +47,6 @@ namespace Ombi.Core.Tests.Rule.Search
Assert.True(search.Available); Assert.True(search.Available);
} }
[Test]
public async Task Movie_Has_Custom_Url_When_Specified_In_Settings()
{
SettingsMock.Setup(x => x.GetSettingsAsync()).ReturnsAsync(new EmbySettings
{
Enable = true,
Servers = new List<EmbyServers>
{
new EmbyServers
{
ServerHostname = "http://test.com/",
ServerId = "8"
}
}
});
ContextMock.Setup(x => x.GetByTheMovieDbId(It.IsAny<string>())).ReturnsAsync(new EmbyContent
{
ProviderId = "123",
EmbyId = 1.ToString(),
});
var search = new SearchMovieViewModel()
{
TheMovieDbId = "123",
};
var result = await Rule.Execute(search);
Assert.True(result.Success);
Assert.That(search.EmbyUrl, Is.EqualTo("http://test.com/web/index.html#!/item?id=1&serverId=8"));
}
[Test]
public async Task Movie_Uses_Default_Url_When()
{
SettingsMock.Setup(x => x.GetSettingsAsync()).ReturnsAsync(new EmbySettings
{
Enable = true,
Servers = new List<EmbyServers>
{
new EmbyServers
{
ServerHostname = string.Empty,
ServerId = "8"
}
}
});
ContextMock.Setup(x => x.GetByTheMovieDbId(It.IsAny<string>())).ReturnsAsync(new EmbyContent
{
ProviderId = "123",
EmbyId = 1.ToString()
});
var search = new SearchMovieViewModel()
{
TheMovieDbId = "123",
};
var result = await Rule.Execute(search);
Assert.True(result.Success);
Assert.That(search.EmbyUrl, Is.EqualTo("https://app.emby.media/web/index.html#!/item?id=1&serverId=8"));
}
[Test] [Test]
public async Task Movie_ShouldBe_NotAvailable_WhenNotFoundInEmby() public async Task Movie_ShouldBe_NotAvailable_WhenNotFoundInEmby()
{ {

View file

@ -47,36 +47,6 @@ namespace Ombi.Core.Tests.Rule.Search
Assert.True(search.Available); Assert.True(search.Available);
} }
[Test]
public async Task Movie_Has_Custom_Url_When_Specified_In_Settings()
{
SettingsMock.Setup(x => x.GetSettingsAsync()).ReturnsAsync(new JellyfinSettings
{
Enable = true,
Servers = new List<JellyfinServers>
{
new JellyfinServers
{
ServerHostname = "http://test.com/",
ServerId = "8"
}
}
});
ContextMock.Setup(x => x.GetByTheMovieDbId(It.IsAny<string>())).ReturnsAsync(new JellyfinContent
{
ProviderId = "123",
JellyfinId = 1.ToString(),
});
var search = new SearchMovieViewModel()
{
TheMovieDbId = "123",
};
var result = await Rule.Execute(search);
Assert.True(result.Success);
Assert.That(search.JellyfinUrl, Is.EqualTo("http://test.com/web/index.html#!/details?id=1&serverId=8"));
}
[Test] [Test]
public async Task Movie_Uses_Default_Url_When() public async Task Movie_Uses_Default_Url_When()
{ {

View file

@ -67,19 +67,7 @@ namespace Ombi.Core.Rule.Rules.Search
if (item != null) if (item != null)
{ {
obj.Available = true; obj.Available = true;
var s = await EmbySettings.GetSettingsAsync(); obj.EmbyUrl = item.Url;
if (s.Enable)
{
var server = s.Servers.FirstOrDefault();
if ((server?.ServerHostname ?? string.Empty).HasValue())
{
obj.EmbyUrl = EmbyHelper.GetEmbyMediaUrl(item.EmbyId, server?.ServerId, server?.ServerHostname);
}
else
{
obj.EmbyUrl = EmbyHelper.GetEmbyMediaUrl(item.EmbyId, server?.ServerId, null);
}
}
if (obj.Type == RequestType.TvShow) if (obj.Type == RequestType.TvShow)
{ {

View file

@ -81,20 +81,7 @@ namespace Ombi.Core.Rule.Rules.Search
useTheMovieDb = true; useTheMovieDb = true;
} }
obj.Available = true; obj.Available = true;
var s = await JellyfinSettings.GetSettingsAsync(); obj.JellyfinUrl = item.Url;
if (s.Enable)
{
var server = s.Servers.FirstOrDefault(x => x.ServerHostname != null);
if ((server?.ServerHostname ?? string.Empty).HasValue())
{
obj.JellyfinUrl = JellyfinHelper.GetJellyfinMediaUrl(item.JellyfinId, server?.ServerId, server?.ServerHostname);
}
else
{
var firstServer = s.Servers?.FirstOrDefault();
obj.JellyfinUrl = JellyfinHelper.GetJellyfinMediaUrl(item.JellyfinId, firstServer.ServerId, firstServer.FullUri);
}
}
if (obj.Type == RequestType.TvShow) if (obj.Type == RequestType.TvShow)
{ {

View file

@ -90,7 +90,15 @@ namespace Ombi.Core.Rule.Rules.Search
useTheMovieDb = true; useTheMovieDb = true;
} }
obj.Available = true; obj.Available = true;
obj.PlexUrl = PlexHelper.BuildPlexMediaUrl(item.Url, host); if (item.Url.StartsWith("http"))
{
obj.PlexUrl = item.Url;
}
else
{
// legacy content
obj.PlexUrl = PlexHelper.BuildPlexMediaUrl(item.Url, host);
}
obj.Quality = item.Quality; obj.Quality = item.Quality;
if (obj.Type == RequestType.TvShow) if (obj.Type == RequestType.TvShow)

View file

@ -44,7 +44,7 @@ namespace Ombi.Notifications.Templates
sb.Replace(DateKey, DateTime.Now.ToString("f")); sb.Replace(DateKey, DateTime.Now.ToString("f"));
sb.Replace(Logo, string.IsNullOrEmpty(logo) ? OmbiLogo : logo); sb.Replace(Logo, string.IsNullOrEmpty(logo) ? OmbiLogo : logo);
sb.Replace(Unsubscribe, string.IsNullOrEmpty(unsubscribeLink) ? string.Empty : unsubscribeLink); sb.Replace(Unsubscribe, string.IsNullOrEmpty(unsubscribeLink) ? string.Empty : unsubscribeLink);
sb.Replace(UnsubscribeText, Texts.Unsubscribe); sb.Replace(UnsubscribeText, string.IsNullOrEmpty(unsubscribeLink) ? string.Empty : "Unsubscrible");
sb.Replace(PoweredByText, Texts.PoweredBy); sb.Replace(PoweredByText, Texts.PoweredBy);
return sb.ToString(); return sb.ToString();

View file

@ -35,9 +35,7 @@ namespace Ombi.Store.Entities
public class EmbyContent : MediaServerContent public class EmbyContent : MediaServerContent
{ {
/// <summary> [Obsolete("Cannot delete due to DB migration issues with SQLite")]
/// OBSOLETE, Cannot delete due to DB migration issues with SQLite
/// </summary>
public string ProviderId { get; set; } public string ProviderId { get; set; }
public string EmbyId { get; set; } public string EmbyId { get; set; }
public override RecentlyAddedType RecentlyAddedType => RecentlyAddedType.Emby; public override RecentlyAddedType RecentlyAddedType => RecentlyAddedType.Emby;

View file

@ -35,9 +35,8 @@ namespace Ombi.Store.Entities
public class JellyfinContent : MediaServerContent public class JellyfinContent : MediaServerContent
{ {
/// <summary>
/// OBSOLETE, Cannot delete due to DB migration issues with SQLite [Obsolete("Cannot delete due to DB migration issues with SQLite")]
/// </summary>
public string ProviderId { get; set; } public string ProviderId { get; set; }
public string JellyfinId { get; set; } public string JellyfinId { get; set; }
public override RecentlyAddedType RecentlyAddedType => RecentlyAddedType.Jellyfin; public override RecentlyAddedType RecentlyAddedType => RecentlyAddedType.Jellyfin;

View file

@ -45,13 +45,6 @@ namespace Ombi.Store.Entities
public int? RequestId { get; set; } public int? RequestId { get; set; }
[NotMapped]
public ICollection<PlexEpisode> PlexEpisodes
{
get => (ICollection<PlexEpisode>)Episodes;
set => Episodes = (ICollection<IMediaServerEpisode>)value;
}
public override RecentlyAddedType RecentlyAddedType => RecentlyAddedType.Plex; public override RecentlyAddedType RecentlyAddedType => RecentlyAddedType.Plex;
} }

View file

@ -3,7 +3,12 @@
[attr.role]="(isHandset$ | async) ? 'dialog' : 'navigation'" [mode]="(isHandset$ | async) ? 'over' : 'side'" [attr.role]="(isHandset$ | async) ? 'dialog' : 'navigation'" [mode]="(isHandset$ | async) ? 'over' : 'side'"
[opened]="!(isHandset$ | async)"> [opened]="!(isHandset$ | async)">
<mat-toolbar class="application-name" id="nav-applicationName">{{applicationName}}</mat-toolbar> <mat-toolbar class="application-name" id="nav-applicationName">
<a *ngIf="applicationUrl; else noApplicationUrlLogo" class="application-name-link" [href]="applicationUrl">{{applicationName}}</a>
</mat-toolbar>
<ng-template #noApplicationUrlLogo>
{{applicationName}}
</ng-template>
<mat-nav-list> <mat-nav-list>
<span mat-list-item *ngFor="let nav of navItems"> <span mat-list-item *ngFor="let nav of navItems">

View file

@ -165,6 +165,15 @@
display: flex; display: flex;
white-space: normal; white-space: normal;
word-break: break-word; word-break: break-word;
.application-name-link {
text-decoration: none;
color: inherit;
&:active, &:hover, &:focus {
color: inherit;
}
}
} }
.outer-profile { .outer-profile {

View file

@ -41,6 +41,21 @@ namespace Ombi
Type = SecuritySchemeType.ApiKey Type = SecuritySchemeType.ApiKey
}); });
c.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme,
Id = "ApiKey"
}
},
new string[] {}
}
});
c.CustomSchemaIds(x => x.FullName); c.CustomSchemaIds(x => x.FullName);
try try

View file

@ -38,7 +38,7 @@
"Update": "Actualización", "Update": "Actualización",
"tvShow": "Programa de televisión", "tvShow": "Programa de televisión",
"movie": "Película", "movie": "Película",
"album": "Album" "album": "Álbum"
}, },
"PasswordReset": { "PasswordReset": {
"EmailAddressPlaceholder": "Correo electrónico", "EmailAddressPlaceholder": "Correo electrónico",
@ -204,7 +204,7 @@
"Approved": "Los elementos seleccionados ha sido aprobados correctamente" "Approved": "Los elementos seleccionados ha sido aprobados correctamente"
}, },
"SuccessfullyApproved": "Se ha aprobado con éxito", "SuccessfullyApproved": "Se ha aprobado con éxito",
"SuccessfullyDeleted": "Request successfully deleted", "SuccessfullyDeleted": "Solicitud eliminada con éxito",
"NowAvailable": "La solicitud está disponible", "NowAvailable": "La solicitud está disponible",
"NowUnavailable": "La solicitud no está disponible", "NowUnavailable": "La solicitud no está disponible",
"SuccessfullyReprocessed": "La solicitud ha sido procesada correctamente", "SuccessfullyReprocessed": "La solicitud ha sido procesada correctamente",
@ -214,21 +214,21 @@
"NeedToSelectEpisodes": "¡Necesitas seleccionar algunos episodios!", "NeedToSelectEpisodes": "¡Necesitas seleccionar algunos episodios!",
"RequestAddedSuccessfully": "La solicitud de {{title}} se ha añadido correctamente", "RequestAddedSuccessfully": "La solicitud de {{title}} se ha añadido correctamente",
"ErrorCodes": { "ErrorCodes": {
"AlreadyRequested": "This has already been requested", "AlreadyRequested": "Ya se ha solicitado",
"EpisodesAlreadyRequested": "We already have episodes requested from this series", "EpisodesAlreadyRequested": "We already have episodes requested from this series",
"NoPermissionsOnBehalf": "You do not have the correct permissions to request on behalf of users!", "NoPermissionsOnBehalf": "You do not have the correct permissions to request on behalf of users!",
"NoPermissions": "You do not have the correct permissions!", "NoPermissions": "You do not have the correct permissions!",
"RequestDoesNotExist": "Request does not exist", "RequestDoesNotExist": "Esta petición no existe",
"ChildRequestDoesNotExist": "Child Request does not exist", "ChildRequestDoesNotExist": "Child Request does not exist",
"NoPermissionsRequestMovie": "You do not have permissions to Request a Movie", "NoPermissionsRequestMovie": "You do not have permissions to Request a Movie",
"NoPermissionsRequestTV": "You do not have permissions to Request a TV Show", "NoPermissionsRequestTV": "No tienes permiso para solicitar un Programa de televisión",
"NoPermissionsRequestAlbum": "You do not have permissions to Request an Album", "NoPermissionsRequestAlbum": "No tienes permiso para solicitar un Álbum",
"MovieRequestQuotaExceeded": "You have exceeded your Movie request quota!", "MovieRequestQuotaExceeded": "¡Has superado tu cuota de solicitudes de películas!",
"TvRequestQuotaExceeded": "You have exceeded your Episode request quota!", "TvRequestQuotaExceeded": "You have exceeded your Episode request quota!",
"AlbumRequestQuotaExceeded": "You have exceeded your Album request quota!" "AlbumRequestQuotaExceeded": "You have exceeded your Album request quota!"
}, },
"Notify": "Notify", "Notify": "Notificar",
"RemoveNotification": "Remove Notifications", "RemoveNotification": "Eliminar notificación",
"SuccessfulNotify": "You will now be notified for title {{title}}", "SuccessfulNotify": "You will now be notified for title {{title}}",
"SuccessfulUnNotify": "You will no longer be notified for title {{title}}", "SuccessfulUnNotify": "You will no longer be notified for title {{title}}",
"CouldntNotify": "Couldn't notify title {{title}}" "CouldntNotify": "Couldn't notify title {{title}}"
@ -317,7 +317,7 @@
"Rumored": "Rumored", "Rumored": "Rumored",
"Planned": "Planificado", "Planned": "Planificado",
"In Production": "En Producción", "In Production": "En Producción",
"Post Production": "Post Production", "Post Production": "Post-Producción",
"Released": "En cines", "Released": "En cines",
"Running": "Running", "Running": "Running",
"Returning Series": "Returning Series", "Returning Series": "Returning Series",
@ -331,18 +331,18 @@
"Quality": "Calidad:", "Quality": "Calidad:",
"RootFolderOverride": "Root Folder Override:", "RootFolderOverride": "Root Folder Override:",
"QualityOverride": "Quality Override:", "QualityOverride": "Quality Override:",
"Network": "Network:", "Network": "Cadena:",
"GenresLabel": "Géneros:", "GenresLabel": "Géneros:",
"Genres": "Géneros", "Genres": "Géneros",
"FirstAired": "First Aired:", "FirstAired": "Emitido por primera vez:",
"TheatricalRelease": "Release:", "TheatricalRelease": "Lanzamiento:",
"DigitalRelease": "Digital Release:", "DigitalRelease": "Estreno Digital:",
"Votes": "Votes:", "Votes": "Votos:",
"Runtime": "Runtime:", "Runtime": "Duración:",
"Minutes": "{{runtime}} Minutos", "Minutes": "{{runtime}} Minutos",
"Revenue": "Revenue:", "Revenue": "Ingresos:",
"Budget": "Budget:", "Budget": "Presupuesto:",
"Keywords": "Keywords/Tags:", "Keywords": "Palabras clave/Etiquetas:",
"Casts": { "Casts": {
"CastTitle": "Enviar pantalla" "CastTitle": "Enviar pantalla"
}, },
@ -350,22 +350,22 @@
"AllSeasonsTooltip": "Esto solicitará cada temporada para este programa", "AllSeasonsTooltip": "Esto solicitará cada temporada para este programa",
"FirstSeasonTooltip": "Esto solo solicitará la primera temporada para este programa", "FirstSeasonTooltip": "Esto solo solicitará la primera temporada para este programa",
"LatestSeasonTooltip": "Esto solo solicitará la última temporada para este programa", "LatestSeasonTooltip": "Esto solo solicitará la última temporada para este programa",
"NoEpisodes": "There unfortunately is no episode data for this show yet!", "NoEpisodes": "Lamentablemente, no hay datos de episodio para este programa de televisión todavía!",
"SeasonNumber": "Season {{number}}" "SeasonNumber": "Temporada {{number}}"
}, },
"SonarrConfiguration": "Sonarr Configuration", "SonarrConfiguration": "Configuración de Sonarr",
"RadarrConfiguration": "Radarr Configuration", "RadarrConfiguration": "Configuración de Radarr",
"RequestOnBehalf": "Request on behalf of", "RequestOnBehalf": "Solicitar en nombre de",
"PleaseSelectUser": "Please select a user", "PleaseSelectUser": "Seleccione un usuario",
"StreamingOn": "Streaming On:", "StreamingOn": "Streaming On:",
"RequestedBy": "Requested By:", "RequestedBy": "Solicitado por:",
"RequestedByOn": "Solicitado por {{user}} el {{date}}", "RequestedByOn": "Solicitado por {{user}} el {{date}}",
"RequestDate": "Request Date:", "RequestDate": "Fecha de solicitud:",
"DeniedReason": "Denied Reason:", "DeniedReason": "Denied Reason:",
"ReProcessRequest": "Re-Process Request", "ReProcessRequest": "Re-Process Request",
"Music": { "Music": {
"Type": "Type:", "Type": "Tipo:",
"Country": "Country:", "Country": "País:",
"StartDate": "Start Date:", "StartDate": "Start Date:",
"EndDate": "EndDate:" "EndDate": "EndDate:"
} }
@ -375,7 +375,7 @@
"TrendingTab": "Tendencias", "TrendingTab": "Tendencias",
"UpcomingTab": "Próximamente", "UpcomingTab": "Próximamente",
"SeasonalTab": "Seasonal", "SeasonalTab": "Seasonal",
"RecentlyRequestedTab": "Recently Requested", "RecentlyRequestedTab": "Solicitudes recientes",
"Movies": "Películas", "Movies": "Películas",
"Combined": "Combinado", "Combined": "Combinado",
"Tv": "TV", "Tv": "TV",
@ -391,36 +391,36 @@
"Writer": "Guionistas", "Writer": "Guionistas",
"ExecProducer": "Productor ejecutivo" "ExecProducer": "Productor ejecutivo"
}, },
"NoSearch": "Sorry, nothing matches your search!" "NoSearch": "¡Lo sentimos, nada coincide con tu búsqueda!"
}, },
"UserPreferences": { "UserPreferences": {
"Welcome": "Bienvenido {{username}}!", "Welcome": "Bienvenido {{username}}!",
"OmbiLanguage": "Idioma", "OmbiLanguage": "Idioma",
"DarkMode": "Modo Oscuro", "DarkMode": "Modo Oscuro",
"Updated": "Successfully Updated", "Updated": "Actualizado correctamente",
"StreamingCountry": "Streaming Country", "StreamingCountry": "País de emisión",
"StreamingCountryDescription": "This is the country code that we will display streaming information for. If you are in the US please select US and you will get US related streaming information.", "StreamingCountryDescription": "Este es el código de país desde el que mostraremos información de emisión. Si estás en España, por favor selecciona ES y tendrás información relacionada con la emisión en España.",
"LanguageDescription": "This is the language you would like the Ombi interface to be displayed in.", "LanguageDescription": "Este es el idioma en el que desea mostrar la interfaz de Ombi.",
"MobileQRCode": "Mobile QR Code", "MobileQRCode": "Mobile QR Code",
"LegacyApp": "Launch Legacy App", "LegacyApp": "Launch Legacy App",
"NoQrCode": "Please contact your administrator to enable QR codes", "NoQrCode": "Please contact your administrator to enable QR codes",
"UserType": "User Type:", "UserType": "User Type:",
"ChangeDetails": "Change Details", "ChangeDetails": "Modificar mis datos",
"NeedCurrentPassword": "You need your current password to make any changes here", "NeedCurrentPassword": "You need your current password to make any changes here",
"CurrentPassword": "Current Password", "CurrentPassword": "Contraseña actual",
"EmailAddress": "Email Address", "EmailAddress": "Correo electrónico",
"NewPassword": "New Password", "NewPassword": "Nueva Contraseña",
"NewPasswordConfirm": "New Password Confirm", "NewPasswordConfirm": "Confirmar contraseña",
"Security": "Security", "Security": "Seguridad",
"Profile": "Profile", "Profile": "Perfil",
"UpdatedYourInformation": "Updated your information", "UpdatedYourInformation": "Información actualizada",
"Unsubscribed": "No suscrito!" "Unsubscribed": "No suscrito!"
}, },
"UserTypeLabel": { "UserTypeLabel": {
"1": "Usuario local", "1": "Usuario local",
"2": "Usuario de Plex", "2": "Usuario de Plex",
"3": "Usuario de Emby", "3": "Usuario de Emby",
"4": "Emby Connect User", "4": "Conectar usuario de Emby",
"5": "Usuario de Jellyfin" "5": "Usuario de Jellyfin"
}, },
"Paginator": { "Paginator": {

View file

@ -1,3 +1,3 @@
{ {
"version": "4.10.0" "version": "4.10.3"
} }