mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-23 06:25:24 -07:00
Merge remote-tracking branch 'upstream/develop' into newsletter-localization
This commit is contained in:
commit
e995044b05
19 changed files with 325 additions and 197 deletions
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
|
@ -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}'
|
||||||
|
|
||||||
|
|
199
CHANGELOG.md
199
CHANGELOG.md
|
@ -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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
38
README.md
38
README.md
|
@ -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"/>
|
||||||
|
|
9
makefile
9
makefile
|
@ -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
|
|
@ -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()
|
||||||
{
|
{
|
||||||
|
|
|
@ -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()
|
||||||
{
|
{
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -90,9 +90,17 @@ 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)
|
||||||
{
|
{
|
||||||
var search = (SearchTvShowViewModel)obj;
|
var search = (SearchTvShowViewModel)obj;
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -265,7 +265,7 @@ namespace Ombi.Schedule.Jobs.Ombi
|
||||||
recentlyAddedLog.Add(new RecentlyAddedLog
|
recentlyAddedLog.Add(new RecentlyAddedLog
|
||||||
{
|
{
|
||||||
AddedAt = DateTime.Now,
|
AddedAt = DateTime.Now,
|
||||||
Type = p.Series.RecentlyAddedType,
|
Type = p.Series.RecentlyAddedType,
|
||||||
ContentType = ContentType.Episode,
|
ContentType = ContentType.Episode,
|
||||||
ContentId = StringHelper.IntParseLinq(p.Series.TvDbId),
|
ContentId = StringHelper.IntParseLinq(p.Series.TvDbId),
|
||||||
EpisodeNumber = p.EpisodeNumber,
|
EpisodeNumber = p.EpisodeNumber,
|
||||||
|
@ -312,7 +312,7 @@ namespace Ombi.Schedule.Jobs.Ombi
|
||||||
private HashSet<IMediaServerEpisode> GetSeriesContent<T>(IMediaServerContentRepository<T> repository, bool test) where T : class, IMediaServerContent
|
private HashSet<IMediaServerEpisode> GetSeriesContent<T>(IMediaServerContentRepository<T> repository, bool test) where T : class, IMediaServerContent
|
||||||
{
|
{
|
||||||
var content = repository.GetAllEpisodes().Include(x => x.Series).OrderByDescending(x => x.Series.AddedAt).AsNoTracking();
|
var content = repository.GetAllEpisodes().Include(x => x.Series).OrderByDescending(x => x.Series.AddedAt).AsNoTracking();
|
||||||
|
|
||||||
HashSet<IMediaServerEpisode> episodesToSend;
|
HashSet<IMediaServerEpisode> episodesToSend;
|
||||||
if (test)
|
if (test)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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">
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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": {
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
{
|
{
|
||||||
"version": "4.10.0"
|
"version": "4.10.3"
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue