From 8a37f9086d95c0e7efe478e7630c8e9c472627ec Mon Sep 17 00:00:00 2001 From: NiceTSY <38940602+NiceTSY@users.noreply.github.com> Date: Wed, 17 Apr 2024 19:43:44 +0200 Subject: [PATCH 01/26] update(sonarr): remove NERO from LQ (#1884) update(sonarr-lq): remove nero --- docs/json/sonarr/cf/lq.json | 9 --------- 1 file changed, 9 deletions(-) diff --git a/docs/json/sonarr/cf/lq.json b/docs/json/sonarr/cf/lq.json index 997dc3652..445cd476e 100644 --- a/docs/json/sonarr/cf/lq.json +++ b/docs/json/sonarr/cf/lq.json @@ -114,15 +114,6 @@ "value": "^(MeGusta)$" } }, - { - "name": "NERO", - "implementation": "ReleaseGroupSpecification", - "negate": false, - "required": false, - "fields": { - "value": "^(NERO)$" - } - }, { "name": "nhanc3", "implementation": "ReleaseGroupSpecification", From cdc502369d15a24d6dfc025b15d951bd464b3459 Mon Sep 17 00:00:00 2001 From: TRaSH Date: Sun, 21 Apr 2024 20:51:20 +0200 Subject: [PATCH 02/26] fix(starr): Prevent double scoring `DD+` and `DD+ Atmos` (#1887) --- docs/json/radarr/cf/ddplus.json | 2 +- docs/json/sonarr/cf/ddplus.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/json/radarr/cf/ddplus.json b/docs/json/radarr/cf/ddplus.json index 339ae3e3f..21586fad3 100644 --- a/docs/json/radarr/cf/ddplus.json +++ b/docs/json/radarr/cf/ddplus.json @@ -22,7 +22,7 @@ "negate": true, "required": true, "fields": { - "value": "True[ .-]?HD|\\bATMOS(\\b|\\d)" + "value": "True[ .-]?HD|\\bATMOS|DDPA(\\b|\\d)" } }, { diff --git a/docs/json/sonarr/cf/ddplus.json b/docs/json/sonarr/cf/ddplus.json index 206947fa4..da5793093 100644 --- a/docs/json/sonarr/cf/ddplus.json +++ b/docs/json/sonarr/cf/ddplus.json @@ -20,7 +20,7 @@ "negate": true, "required": true, "fields": { - "value": "True[ .-]?HD|\\bATMOS(\\b|\\d)" + "value": "True[ .-]?HD|\\bATMOS|DDPA(\\b|\\d)" } }, { From fc9ad8e94f1f178d428e095ad877fb17df6da710 Mon Sep 17 00:00:00 2001 From: nuxen Date: Mon, 22 Apr 2024 17:54:28 +0200 Subject: [PATCH 03/26] fix(starr): `DD+` word boundaries (#1892) fix(starr): DD+ word boundaries --- docs/json/radarr/cf/ddplus.json | 2 +- docs/json/sonarr/cf/ddplus.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/json/radarr/cf/ddplus.json b/docs/json/radarr/cf/ddplus.json index 21586fad3..17298e736 100644 --- a/docs/json/radarr/cf/ddplus.json +++ b/docs/json/radarr/cf/ddplus.json @@ -22,7 +22,7 @@ "negate": true, "required": true, "fields": { - "value": "True[ .-]?HD|\\bATMOS|DDPA(\\b|\\d)" + "value": "\\b(True[ .-]?HD|ATMOS|DDPA)(\\b|\\d)" } }, { diff --git a/docs/json/sonarr/cf/ddplus.json b/docs/json/sonarr/cf/ddplus.json index da5793093..f3de1f75a 100644 --- a/docs/json/sonarr/cf/ddplus.json +++ b/docs/json/sonarr/cf/ddplus.json @@ -20,7 +20,7 @@ "negate": true, "required": true, "fields": { - "value": "True[ .-]?HD|\\bATMOS|DDPA(\\b|\\d)" + "value": "\\b(True[ .-]?HD|ATMOS|DDPA)(\\b|\\d)" } }, { From cf1b5b998f2fb7ba87d786b26cc1ae1ace117d56 Mon Sep 17 00:00:00 2001 From: TRaSH Date: Mon, 22 Apr 2024 18:27:48 +0200 Subject: [PATCH 04/26] fix(guide): unRAID Mover and qBittorrent - Remove option to edit script for mover.old (#1889) --- ...ow-to-run-the-unRaid-mover-for-qBittorrent.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md b/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md index d600df08d..cd483b960 100644 --- a/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md +++ b/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md @@ -137,13 +137,6 @@ You can choose one of the following 3 options (select a tab) to install `qbittor ### Script -!!! warning "" - Depending on whether you use the unRaid `Mover Tuning` app, You might need to change **line 94**: - - - If you do not use `Mover Tuning`, change **line 94** from `os.system('/usr/local/sbin/mover.old start')` to `os.system('/usr/local/sbin/mover start')` - - If you use `Mover Tuning` but **don't** want to use it for the script, do not change **line 94** - - If you use `Mover Tuning` and **do** want to use it for the script, change **line 94** from `os.system('/usr/local/sbin/mover.old start')` to `os.system('/usr/local/sbin/mover start')`. For this option, inside the `Mover Tuner` options you will also need to set `Move Now button follows plugin filters` to `Yes` and `Disable Mover running on a schedule` to `No`. - #### Copy the script to your preferred location Place the script you just edited somewhere easy to access/remember. @@ -174,13 +167,16 @@ Click on the cogwheel of the new script in the list. ![!Select user script](images/Unraid-settings-user-scripts-list-select-qbit-mover.png) Choose your method (select a tab) and copy/paste the script in the new window that opens, then click `SAVE CHANGES`. + +!!! info "replace `ip` with your unraid server ip, replace `port` with your webgui port you use to access the webgui" + === "Python (Native)" ``` bash #!/bin/bash /usr/local/emhttp/plugins/dynamix/scripts/notify -s "qBittorrent Mover" -d "qBittorrent Mover starting @ `date +%H:%M:%S`." echo "executing script to pause torrents and run mover." - python3 /mnt/user/data/scripts/mover.py --host "localhost:8080" --user "your_user" --password "your_password" --days_from 0 --days_to 2 + python3 /mnt/user/data/scripts/mover.py --host "ip:port" --user "your_user" --password "your_password" --days_from 0 --days_to 2 echo "qbittorrent-mover completed and resumed all paused torrents." /usr/local/emhttp/plugins/dynamix/scripts/notify -s "qBittorrent Mover" -d "qBittorrent Mover completed @ `date +%H:%M:%S`." ``` @@ -192,7 +188,7 @@ Choose your method (select a tab) and copy/paste the script in the new window th /usr/local/emhttp/plugins/dynamix/scripts/notify -s "qBittorrent Mover" -d "qBittorrent Mover starting @ `date +%H:%M:%S`." echo "executing script to pause torrents and run mover." - /mnt/user/data/scripts/.venv/bin/python3 /mnt/user/data/scripts/mover.py --host "localhost:8080" --user "your_user" --password "your_password" --days_from 0 --days_to 2 + /mnt/user/data/scripts/.venv/bin/python3 /mnt/user/data/scripts/mover.py --host ip:port" --user "your_user" --password "your_password" --days_from 0 --days_to 2 echo "qbittorrent-mover completed and resumed all paused torrents." /usr/local/emhttp/plugins/dynamix/scripts/notify -s "qBittorrent Mover" -d "qBittorrent Mover completed @ `date +%H:%M:%S`." ``` @@ -206,7 +202,7 @@ Choose your method (select a tab) and copy/paste the script in the new window th - `user` => Your used qBittorrent `User Name` if you have authentication enabled. - `password` => Your used qBittorrent `Password` if you have authentication enabled. -![!Bash script](images/Unraid-settings-user-scripts-qbit-mover.png) + Click the schedule dropdown to choose when the script should run. We want to select `Custom`. From c9cc4019dc88df50de10bf6c224987076336c3b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 18:28:53 +0200 Subject: [PATCH 05/26] build(deps): bump actions/checkout from 4.1.2 to 4.1.3 (#1890) Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.2 to 4.1.3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4.1.2...v4.1.3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy.yml | 4 ++-- .github/workflows/lint-editor.yml | 2 +- .github/workflows/lint-markdown.yml | 2 +- .github/workflows/lint-yaml.yml | 2 +- .github/workflows/metadata-validation.yml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 25bf746cd..af7243401 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -17,7 +17,7 @@ jobs: cancel-in-progress: true steps: - name: Checkout repository - uses: actions/checkout@v4.1.2 + uses: actions/checkout@v4.1.3 with: fetch-depth: 0 sparse-checkout: | @@ -57,7 +57,7 @@ jobs: cancel-in-progress: true steps: - name: Checkout repository - uses: actions/checkout@v4.1.2 + uses: actions/checkout@v4.1.3 with: fetch-depth: 0 sparse-checkout: | diff --git a/.github/workflows/lint-editor.yml b/.github/workflows/lint-editor.yml index 42f64fdca..6cb907c74 100644 --- a/.github/workflows/lint-editor.yml +++ b/.github/workflows/lint-editor.yml @@ -10,7 +10,7 @@ jobs: editorconfig-checker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.2 + - uses: actions/checkout@v4.1.3 - name: editorconfig-checker run: | docker run --rm \ diff --git a/.github/workflows/lint-markdown.yml b/.github/workflows/lint-markdown.yml index d083d2fe6..c8b10508f 100644 --- a/.github/workflows/lint-markdown.yml +++ b/.github/workflows/lint-markdown.yml @@ -10,7 +10,7 @@ jobs: markdownlint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.2 + - uses: actions/checkout@v4.1.3 - name: markdownlint run: | docker run --rm \ diff --git a/.github/workflows/lint-yaml.yml b/.github/workflows/lint-yaml.yml index d63e30eff..40ce6352a 100644 --- a/.github/workflows/lint-yaml.yml +++ b/.github/workflows/lint-yaml.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.2 + - uses: actions/checkout@v4.1.3 - name: Run yamllint run: | diff --git a/.github/workflows/metadata-validation.yml b/.github/workflows/metadata-validation.yml index 0c4f765c9..a89da4dba 100644 --- a/.github/workflows/metadata-validation.yml +++ b/.github/workflows/metadata-validation.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest name: Validate metadata.json steps: - - uses: actions/checkout@v4.1.2 + - uses: actions/checkout@v4.1.3 - uses: actions/setup-python@v5.1.0 with: python-version: 3.x From c642c14fe73ff8f42bb354d9b01185a14dc21184 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 19:23:28 +0200 Subject: [PATCH 06/26] build(deps): bump mkdocs-material from 9.5.17 to 9.5.18 (#1891) Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.17 to 9.5.18. - [Release notes](https://github.com/squidfunk/mkdocs-material/releases) - [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG) - [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.17...9.5.18) --- updated-dependencies: - dependency-name: mkdocs-material dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index 3cd9c41bc..14dce6a30 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -2,7 +2,7 @@ mkdocs-glightbox==0.3.7 mkdocs-awesome-pages-plugin==2.9.2 mkdocs-git-revision-date-localized-plugin==1.2.4 mkdocs-macros-plugin==1.0.5 -mkdocs-material==9.5.17 +mkdocs-material==9.5.18 mkdocs-minify-plugin==0.8.0 mkdocs-redirects==1.2.1 mkdocs-include-markdown-plugin==6.0.5 From 44d3f87d44fcdc5186750a7d94c2593168cc5f0f Mon Sep 17 00:00:00 2001 From: Robert Dailey Date: Mon, 22 Apr 2024 23:00:35 -0500 Subject: [PATCH 07/26] feat(backend): Add Quality Profile JSON Files for Use by Guide Sync Tools (#1660) * Add initial quality profile JSON files for Radarr These files were auto-generated by an exporter tool provided by nitsua. The source of the exported data was one of Trash's Radarr instances. The following transformations were performed on the data model provided by Radarr. All of these are motivated by providing a simpler JSON file schema for guide contributors and eliminating redundant data. - Any `id` fields are omitted (for `items` especially) since those can vary from instance to instance. - The `formatItems` array represents a mapping of Custom Format Name to Custom Format Trash ID. The name itself is for documentation purposes only and serves no functional purpose; think of it as a comment that exists only to describe the CF identified by the trash ID next to it. The Trash ID itself is self explanatory; that is used by tooling to identify the CF JSON file paired with the quality profile. - Greatly simplified the `items` structure (this is the list of qualities and/or groups). The following rules must be adhered to: - The `allowed` property is required. It must be either true or false. This corresponds to the enabled/disabled toggle in the Radarr UI. - For qualities, `name` must match an existing quality *exactly, including case*. For groups, `name` can be whatever you want as long as it is unique. - For groups, a nested `items` array may be provided which identifies **two or more** quality names within it. - All qualities must be present and none omitted, even if their `allowed` property is set to `false`. This ensures explicit ordering in the guides. * Add quality profile groups to metadata.json Initially only for Radarr * Radarr JSON Updates - Renamed HD Bluray + WEB and UHD Bluray + WEB profile JSONs to be consistent with the profile names - Added Custom Format Group JSONs for: - Advanced Audio Formats - Optional Custom Formats - Fixes and updates for quality profile JSONs: - Removed non-mandatory custom formats - Removed incorrect custom formats - Fixed incorrect minimum profile scores for SQP-2/3/4/5 - Renamed merged quality group for SQP-5 - Reordered custom formats to match respective guide pages * Sonarr Profiles and Other Updates - Created quality profile JSONs for Sonarr - Created Optional CF group JSON for Sonarr - Created HDR Formats CF group JSONs for Radarr and Sonarr - Created Advanced Audio Formats CF group JSON for Sonarr - Added `trash_score_sets` to relevant quality profile JSONs - Fixed incorrect `required` variable inn Radarr Optional CF group JSON * Create Optional UHD Groups - Create new JSONs for Optional UHD custom format groups - Amend existing Optional custom format group JSONs to exclude relevant UHD profiles * Add DV HDR10Plus Custom Formats - Add DV HDR10Plus custom formats to relevant profile and group JSONs. * Add Sonarr QPs and CF Groups to metadata.json * Radarr Updates - Updated all jsons to match latest guide updates - Swapped `x265 (HD)` and `x265 (no HDR/DV)` for all UHD-capable profiles. This makes `x265 (no HDR/DV)` mandatory and `x265 (HD)` optional * Sonarr Updates - Update jsons with latest guide profile updates - Swapped `x265 (HD)` and `x265 (no HDR/DV)` for WEB-2160p profile. This makes `x265 (no HDR/DV)` mandatory and `x265 (HD)` optional * Radarr Quality Profile Updates 2024-04-22 - Updated Radarr quality profile JSONs to match current profile state * Sonarr Quality Profile Updates 2024-04-22 - Updated Sonarr quality profile JSONs to match current profile state --------- Co-authored-by: yammes08 <111231042+yammes08@users.noreply.github.com> --- .../cf-groups/advanced-audio-formats.json | 83 +++++++++++++ docs/json/radarr/cf-groups/hdr-formats.json | 75 ++++++++++++ docs/json/radarr/cf-groups/optional-uhd.json | 63 ++++++++++ docs/json/radarr/cf-groups/optional.json | 53 +++++++++ .../cf-groups/sqp-1-1080p-optional.json | 49 ++++++++ .../cf-groups/sqp-1-2160p-optional.json | 74 ++++++++++++ .../cf-groups/sqp-2-3-4-5-optional.json | 71 ++++++++++++ .../quality-profiles/hd-bluray-web.json | 74 ++++++++++++ .../quality-profiles/remux-web-1080p.json | 75 ++++++++++++ .../quality-profiles/remux-web-2160p.json | 87 ++++++++++++++ .../radarr/quality-profiles/sqp-1-1080p.json | 93 +++++++++++++++ .../radarr/quality-profiles/sqp-1-2160p.json | 109 ++++++++++++++++++ docs/json/radarr/quality-profiles/sqp-2.json | 101 ++++++++++++++++ docs/json/radarr/quality-profiles/sqp-3.json | 92 +++++++++++++++ docs/json/radarr/quality-profiles/sqp-4.json | 93 +++++++++++++++ docs/json/radarr/quality-profiles/sqp-5.json | 95 +++++++++++++++ .../quality-profiles/uhd-bluray-web.json | 86 ++++++++++++++ .../cf-groups/advanced-audio-formats.json | 82 +++++++++++++ docs/json/sonarr/cf-groups/hdr-formats.json | 67 +++++++++++ docs/json/sonarr/cf-groups/optional-uhd.json | 51 ++++++++ docs/json/sonarr/cf-groups/optional.json | 41 +++++++ .../sonarr/quality-profiles/web-1080p.json | 56 +++++++++ .../sonarr/quality-profiles/web-2160p.json | 68 +++++++++++ metadata.json | 8 +- metadata.schema.json | 8 +- 25 files changed, 1750 insertions(+), 4 deletions(-) create mode 100644 docs/json/radarr/cf-groups/advanced-audio-formats.json create mode 100644 docs/json/radarr/cf-groups/hdr-formats.json create mode 100644 docs/json/radarr/cf-groups/optional-uhd.json create mode 100644 docs/json/radarr/cf-groups/optional.json create mode 100644 docs/json/radarr/cf-groups/sqp-1-1080p-optional.json create mode 100644 docs/json/radarr/cf-groups/sqp-1-2160p-optional.json create mode 100644 docs/json/radarr/cf-groups/sqp-2-3-4-5-optional.json create mode 100644 docs/json/radarr/quality-profiles/hd-bluray-web.json create mode 100644 docs/json/radarr/quality-profiles/remux-web-1080p.json create mode 100644 docs/json/radarr/quality-profiles/remux-web-2160p.json create mode 100644 docs/json/radarr/quality-profiles/sqp-1-1080p.json create mode 100644 docs/json/radarr/quality-profiles/sqp-1-2160p.json create mode 100644 docs/json/radarr/quality-profiles/sqp-2.json create mode 100644 docs/json/radarr/quality-profiles/sqp-3.json create mode 100644 docs/json/radarr/quality-profiles/sqp-4.json create mode 100644 docs/json/radarr/quality-profiles/sqp-5.json create mode 100644 docs/json/radarr/quality-profiles/uhd-bluray-web.json create mode 100644 docs/json/sonarr/cf-groups/advanced-audio-formats.json create mode 100644 docs/json/sonarr/cf-groups/hdr-formats.json create mode 100644 docs/json/sonarr/cf-groups/optional-uhd.json create mode 100644 docs/json/sonarr/cf-groups/optional.json create mode 100644 docs/json/sonarr/quality-profiles/web-1080p.json create mode 100644 docs/json/sonarr/quality-profiles/web-2160p.json diff --git a/docs/json/radarr/cf-groups/advanced-audio-formats.json b/docs/json/radarr/cf-groups/advanced-audio-formats.json new file mode 100644 index 000000000..fa635183d --- /dev/null +++ b/docs/json/radarr/cf-groups/advanced-audio-formats.json @@ -0,0 +1,83 @@ +{ + "name": "Advanced Audio Formats", + "trash_id": "9d5acd8f1da78dfbae788182f7605200", + "custom_formats": [ + { + "name": "TrueHD Atmos", + "trash_id": "496f355514737f7d83bf7aa4d24f8169", + "required": true + }, + { + "name": "DTS X", + "trash_id": "2f22d89048b01681dde8afe203bf2e95", + "required": true + }, + { + "name": "ATMOS (undefined)", + "trash_id": "417804f7f2c4308c1f4c5d380d4c4475", + "required": true + }, + { + "name": "DD+ ATMOS", + "trash_id": "1af239278386be2919e1bcee0bde047e", + "required": true + }, + { + "name": "TrueHD", + "trash_id": "3cafb66171b47f226146a0770576870f", + "required": true + }, + { + "name": "DTS-HD MA", + "trash_id": "dcf3ec6938fa32445f590a4da84256cd", + "required": true + }, + { + "name": "FLAC", + "trash_id": "a570d4a0e56a2874b64e5bfa55202a1b", + "required": true + }, + { + "name": "PCM", + "trash_id": "e7c2fcae07cbada050a0af3357491d7b", + "required": true + }, + { + "name": "DTS-HD HRA", + "trash_id": "8e109e50e0a0b83a5098b056e13bf6db", + "required": true + }, + { + "name": "DD+", + "trash_id": "185f1dd7264c4562b9022d963ac37424", + "required": true + }, + { + "name": "DTS-ES", + "trash_id": "f9f847ac70a0af62ea4a08280b859636", + "required": true + }, + { + "name": "DTS", + "trash_id": "1c1a4c5e823891c75bc50380a6866f73", + "required": true + }, + { + "name": "AAC", + "trash_id": "240770601cc226190c367ef59aba7463", + "required": true + }, + { + "name": "DD", + "trash_id": "c2998bd0d90ed5621d8df281e839436e", + "required": true + } + ], + "quality_profiles": { + "exclude": { + "HD Bluray + WEB": "d1d67249d3890e49bc12e275d989a7e9", + "SQP-1 (1080p)": "0896c29d74de619df168d23b98104b22", + "SQP-1 (2160p)": "5128baeb2b081b72126bc8482b2a86a0" + } + } +} diff --git a/docs/json/radarr/cf-groups/hdr-formats.json b/docs/json/radarr/cf-groups/hdr-formats.json new file mode 100644 index 000000000..afeeb6946 --- /dev/null +++ b/docs/json/radarr/cf-groups/hdr-formats.json @@ -0,0 +1,75 @@ +{ + "name": "HDR Formats", + "trash_id": "d9acca37ab4ab8f6428b68125fc0cacb", + "custom_formats": [ + { + "name": "DV HDR10Plus", + "trash_id": "c53085ddbd027d9624b320627748612f", + "required": true + }, + { + "name": "DV HDR10", + "trash_id": "e23edd2482476e595fb990b12e7c609c", + "required": true + }, + { + "name": "DV", + "trash_id": "58d6a88f13e2db7f5059c41047876f00", + "required": true + }, + { + "name": "DV HLG", + "trash_id": "55d53828b9d81cbe20b02efd00aa0efd", + "required": true + }, + { + "name": "DV SDR", + "trash_id": "a3e19f8f627608af0211acd02bf89735", + "required": true + }, + { + "name": "HDR10+", + "trash_id": "b974a6cd08c1066250f1f177d7aa1225", + "required": true + }, + { + "name": "HDR10", + "trash_id": "dfb86d5941bc9075d6af23b09c2aeecd", + "required": true + }, + { + "name": "HDR", + "trash_id": "e61e28db95d22bedcadf030b8f156d96", + "required": true + }, + { + "name": "HDR (Undefined)", + "trash_id": "2a4d9069cc1fe3242ff9bdaebed239bb", + "required": true + }, + { + "name": "PQ", + "trash_id": "08d6d8834ad9ec87b1dc7ec8148e7a1f", + "required": true + }, + { + "name": "HLG", + "trash_id": "9364dd386c9b4a1100dde8264690add7", + "required": true + } + ], + "quality_profiles": { + "exclude": { + "HD Bluray + WEB": "d1d67249d3890e49bc12e275d989a7e9", + "UHD Bluray + WEB": "64fb5f9858489bdac2af690e27c8f42f", + "Remux + WEB 1080p": "9ca12ea80aa55ef916e3751f4b874151", + "Remux + WEB 2160p": "fd161a61e3ab826d3a22d53f935696dd", + "SQP-1 (1080p)": "0896c29d74de619df168d23b98104b22", + "SQP-1 (2160p)": "5128baeb2b081b72126bc8482b2a86a0", + "SQP-2": "c3933358ba2356bafc41524f81471069", + "SQP-3": "2cf36c1f0106ffac993be003ade51865", + "SQP-4": "013f89e6da27519fe56cf482702a2db9", + "SQP-5": "a7bb1539fd147256b21b1098f3dc2016" + } + } +} diff --git a/docs/json/radarr/cf-groups/optional-uhd.json b/docs/json/radarr/cf-groups/optional-uhd.json new file mode 100644 index 000000000..a8086149c --- /dev/null +++ b/docs/json/radarr/cf-groups/optional-uhd.json @@ -0,0 +1,63 @@ +{ + "name": "Optional", + "trash_id": "8a3d746a76dcfc02c43983ac5432f754", + "custom_formats": [ + { + "name": "Bad Dual Groups", + "trash_id": "b6832f586342ef70d9c128d40c07b872", + "required": false + }, + { + "name": "EVO (no WEBDL)", + "trash_id": "90cedc1fea7ea5d11298bebd3d1d3223", + "required": false + }, + { + "name": "No-RlsGroup", + "trash_id": "ae9b7c9ebde1f3bd336a8cbd1ec4c5e5", + "required": false + }, + { + "name": "Obfuscated", + "trash_id": "7357cf5161efbf8c4d5d0c30b4815ee2", + "required": false + }, + { + "name": "Retags", + "trash_id": "5c44f52a8714fdd79bb4d98e2673be1f", + "required": false + }, + { + "name": "Scene", + "trash_id": "f537cf427b64c38c8e36298f657e4828", + "required": false + }, + { + "name": "x265 (HD)", + "trash_id": "dc98083864ea246d05a42df0d05f81cc", + "required": false + }, + { + "name": "SDR", + "trash_id": "9c38ebb7384dada637be8899efa68e6f", + "required": false + }, + { + "name": "SDR (no WEBDL)", + "trash_id": "25c12f78430a3a23413652cbd1d48d77", + "required": false + } + ], + "quality_profiles": { + "exclude": { + "HD Bluray + WEB": "d1d67249d3890e49bc12e275d989a7e9", + "Remux + WEB 1080p": "9ca12ea80aa55ef916e3751f4b874151", + "SQP-1 (1080p)": "0896c29d74de619df168d23b98104b22", + "SQP-1 (2160p)": "5128baeb2b081b72126bc8482b2a86a0", + "SQP-2": "c3933358ba2356bafc41524f81471069", + "SQP-3": "2cf36c1f0106ffac993be003ade51865", + "SQP-4": "013f89e6da27519fe56cf482702a2db9", + "SQP-5": "a7bb1539fd147256b21b1098f3dc2016" + } + } +} diff --git a/docs/json/radarr/cf-groups/optional.json b/docs/json/radarr/cf-groups/optional.json new file mode 100644 index 000000000..10b288bc7 --- /dev/null +++ b/docs/json/radarr/cf-groups/optional.json @@ -0,0 +1,53 @@ +{ + "name": "Optional", + "trash_id": "9337080378236ce4c0b183e35790d2a7", + "custom_formats": [ + { + "name": "Bad Dual Groups", + "trash_id": "b6832f586342ef70d9c128d40c07b872", + "required": false + }, + { + "name": "EVO (no WEBDL)", + "trash_id": "90cedc1fea7ea5d11298bebd3d1d3223", + "required": false + }, + { + "name": "No-RlsGroup", + "trash_id": "ae9b7c9ebde1f3bd336a8cbd1ec4c5e5", + "required": false + }, + { + "name": "Obfuscated", + "trash_id": "7357cf5161efbf8c4d5d0c30b4815ee2", + "required": false + }, + { + "name": "Retags", + "trash_id": "5c44f52a8714fdd79bb4d98e2673be1f", + "required": false + }, + { + "name": "Scene", + "trash_id": "f537cf427b64c38c8e36298f657e4828", + "required": false + }, + { + "name": "x265 (no HDR/DV)", + "trash_id": "839bea857ed2c0a8e084f3cbdbd65ecb", + "required": false + } + ], + "quality_profiles": { + "exclude": { + "UHD Bluray + WEB": "64fb5f9858489bdac2af690e27c8f42f", + "Remux + WEB 2160p": "fd161a61e3ab826d3a22d53f935696dd", + "SQP-1 (1080p)": "0896c29d74de619df168d23b98104b22", + "SQP-1 (2160p)": "5128baeb2b081b72126bc8482b2a86a0", + "SQP-2": "c3933358ba2356bafc41524f81471069", + "SQP-3": "2cf36c1f0106ffac993be003ade51865", + "SQP-4": "013f89e6da27519fe56cf482702a2db9", + "SQP-5": "a7bb1539fd147256b21b1098f3dc2016" + } + } +} diff --git a/docs/json/radarr/cf-groups/sqp-1-1080p-optional.json b/docs/json/radarr/cf-groups/sqp-1-1080p-optional.json new file mode 100644 index 000000000..a00192891 --- /dev/null +++ b/docs/json/radarr/cf-groups/sqp-1-1080p-optional.json @@ -0,0 +1,49 @@ +{ + "name": "SQP-1 (1080p) Optional", + "trash_id": "0ac153dc6f4f96459bc8fdb30aaefedf", + "custom_formats": [ + { + "name": "Bad Dual Groups", + "trash_id": "b6832f586342ef70d9c128d40c07b872", + "required": false + }, + { + "name": "EVO (no WEBDL)", + "trash_id": "90cedc1fea7ea5d11298bebd3d1d3223", + "required": false + }, + { + "name": "No-RlsGroup", + "trash_id": "ae9b7c9ebde1f3bd336a8cbd1ec4c5e5", + "required": false + }, + { + "name": "Obfuscated", + "trash_id": "7357cf5161efbf8c4d5d0c30b4815ee2", + "required": false + }, + { + "name": "Retags", + "trash_id": "5c44f52a8714fdd79bb4d98e2673be1f", + "required": false + }, + { + "name": "Scene", + "trash_id": "f537cf427b64c38c8e36298f657e4828", + "required": false + } + ], + "quality_profiles": { + "exclude": { + "HD Bluray + WEB": "d1d67249d3890e49bc12e275d989a7e9", + "UHD Bluray + WEB": "64fb5f9858489bdac2af690e27c8f42f", + "Remux + WEB 1080p": "9ca12ea80aa55ef916e3751f4b874151", + "Remux + WEB 2160p": "fd161a61e3ab826d3a22d53f935696dd", + "SQP-1 (2160p)": "5128baeb2b081b72126bc8482b2a86a0", + "SQP-2": "c3933358ba2356bafc41524f81471069", + "SQP-3": "2cf36c1f0106ffac993be003ade51865", + "SQP-4": "013f89e6da27519fe56cf482702a2db9", + "SQP-5": "a7bb1539fd147256b21b1098f3dc2016" + } + } +} diff --git a/docs/json/radarr/cf-groups/sqp-1-2160p-optional.json b/docs/json/radarr/cf-groups/sqp-1-2160p-optional.json new file mode 100644 index 000000000..5c5dfc1e8 --- /dev/null +++ b/docs/json/radarr/cf-groups/sqp-1-2160p-optional.json @@ -0,0 +1,74 @@ +{ + "name": "SQP-1 (2160p) Optional", + "trash_id": "208222a117fa38f8ab954fad9350910c", + "custom_formats": [ + { + "name": "Bad Dual Groups", + "trash_id": "b6832f586342ef70d9c128d40c07b872", + "required": false + }, + { + "name": "EVO (no WEBDL)", + "trash_id": "90cedc1fea7ea5d11298bebd3d1d3223", + "required": false + }, + { + "name": "No-RlsGroup", + "trash_id": "ae9b7c9ebde1f3bd336a8cbd1ec4c5e5", + "required": false + }, + { + "name": "Obfuscated", + "trash_id": "7357cf5161efbf8c4d5d0c30b4815ee2", + "required": false + }, + { + "name": "Retags", + "trash_id": "5c44f52a8714fdd79bb4d98e2673be1f", + "required": false + }, + { + "name": "Scene", + "trash_id": "f537cf427b64c38c8e36298f657e4828", + "required": false + }, + { + "name": "x265 (HD)", + "trash_id": "dc98083864ea246d05a42df0d05f81cc", + "required": false + }, + { + "name": "HDR10+ Boost", + "trash_id": "b17886cb4158d9fea189859409975758", + "required": false + }, + { + "name": "DV HDR10+ Boost", + "trash_id": "55a5b50cb416dea5a50c4955896217ab", + "required": false + }, + { + "name": "SDR", + "trash_id": "9c38ebb7384dada637be8899efa68e6f", + "required": false + }, + { + "name": "SDR (no WEBDL)", + "trash_id": "25c12f78430a3a23413652cbd1d48d77", + "required": false + } + ], + "quality_profiles": { + "exclude": { + "HD Bluray + WEB": "d1d67249d3890e49bc12e275d989a7e9", + "UHD Bluray + WEB": "64fb5f9858489bdac2af690e27c8f42f", + "Remux + WEB 1080p": "9ca12ea80aa55ef916e3751f4b874151", + "Remux + WEB 2160p": "fd161a61e3ab826d3a22d53f935696dd", + "SQP-1 (1080p)": "0896c29d74de619df168d23b98104b22", + "SQP-2": "c3933358ba2356bafc41524f81471069", + "SQP-3": "2cf36c1f0106ffac993be003ade51865", + "SQP-4": "013f89e6da27519fe56cf482702a2db9", + "SQP-5": "a7bb1539fd147256b21b1098f3dc2016" + } + } +} diff --git a/docs/json/radarr/cf-groups/sqp-2-3-4-5-optional.json b/docs/json/radarr/cf-groups/sqp-2-3-4-5-optional.json new file mode 100644 index 000000000..7a091745b --- /dev/null +++ b/docs/json/radarr/cf-groups/sqp-2-3-4-5-optional.json @@ -0,0 +1,71 @@ +{ + "name": "SQP-2/3/4/5 Optional", + "trash_id": "de18f9d6e3f843f5208c68219ee732a7", + "custom_formats": [ + { + "name": "Bad Dual Groups", + "trash_id": "b6832f586342ef70d9c128d40c07b872", + "required": false + }, + { + "name": "EVO (no WEBDL)", + "trash_id": "90cedc1fea7ea5d11298bebd3d1d3223", + "required": false + }, + { + "name": "No-RlsGroup", + "trash_id": "ae9b7c9ebde1f3bd336a8cbd1ec4c5e5", + "required": false + }, + { + "name": "Obfuscated", + "trash_id": "7357cf5161efbf8c4d5d0c30b4815ee2", + "required": false + }, + { + "name": "Retags", + "trash_id": "5c44f52a8714fdd79bb4d98e2673be1f", + "required": false + }, + { + "name": "Scene", + "trash_id": "f537cf427b64c38c8e36298f657e4828", + "required": false + }, + { + "name": "x265 (HD)", + "trash_id": "dc98083864ea246d05a42df0d05f81cc", + "required": false + }, + { + "name": "SDR", + "trash_id": "9c38ebb7384dada637be8899efa68e6f", + "required": false + }, + { + "name": "SDR (no WEBDL)", + "trash_id": "25c12f78430a3a23413652cbd1d48d77", + "required": false + }, + { + "name": "DV (WEBDL)", + "trash_id": "923b6abef9b17f937fab56cfcf89e1f1", + "required": false + }, + { + "name": "HDR10+ Boost", + "trash_id": "b17886cb4158d9fea189859409975758", + "required": false + } + ], + "quality_profiles": { + "exclude": { + "HD Bluray + WEB": "d1d67249d3890e49bc12e275d989a7e9", + "UHD Bluray + WEB": "64fb5f9858489bdac2af690e27c8f42f", + "Remux + WEB 1080p": "9ca12ea80aa55ef916e3751f4b874151", + "Remux + WEB 2160p": "fd161a61e3ab826d3a22d53f935696dd", + "SQP-1 (1080p)": "0896c29d74de619df168d23b98104b22", + "SQP-1 (2160p)": "5128baeb2b081b72126bc8482b2a86a0" + } + } +} diff --git a/docs/json/radarr/quality-profiles/hd-bluray-web.json b/docs/json/radarr/quality-profiles/hd-bluray-web.json new file mode 100644 index 000000000..5b9e4e730 --- /dev/null +++ b/docs/json/radarr/quality-profiles/hd-bluray-web.json @@ -0,0 +1,74 @@ +{ + "trash_id": "d1d67249d3890e49bc12e275d989a7e9", + "name": "HD Bluray + WEB", + "upgradeAllowed": true, + "cutoff": "Bluray-1080p", + "minFormatScore": 0, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Remux-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "WEB 2160p", "allowed": false, "items": ["WEBDL-2160p", "WEBRip-2160p"] }, + { "name": "Bluray-2160p", "allowed": false }, + { "name": "Remux-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "Bluray-720p", "allowed": true }, + { "name": "WEB 1080p", "allowed": true, "items": ["WEBDL-1080p", "WEBRip-1080p"] }, + { "name": "Bluray-1080p", "allowed": true } + ], + "formatItems": { + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "IMAX": "eecf3a857724171f968a66cb5719e152", + "IMAX Enhanced": "9f6cbff8cfe4ebbc1bde14c7b7bec0de", + "HD Bluray Tier 01": "ed27ebfef2f323e964fb1f61391bcb35", + "HD Bluray Tier 02": "c20c8647f2746a1f4c4262b0fbbeeeae", + "HD Bluray Tier 03": "5608c71bcebba0a5e666223bae8c9227", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (HD)": "dc98083864ea246d05a42df0d05f81cc", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Extras": "0a3f082873eb454bde444150b70253cc", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/radarr/quality-profiles/remux-web-1080p.json b/docs/json/radarr/quality-profiles/remux-web-1080p.json new file mode 100644 index 000000000..4f273f657 --- /dev/null +++ b/docs/json/radarr/quality-profiles/remux-web-1080p.json @@ -0,0 +1,75 @@ +{ + "trash_id": "9ca12ea80aa55ef916e3751f4b874151", + "name": "Remux + WEB 1080p", + "upgradeAllowed": true, + "cutoff": "Remux-1080p", + "minFormatScore": 0, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "Bluray-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Bluray-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "WEB 2160p", "allowed": false, "items": ["WEBDL-2160p", "WEBRip-2160p"] }, + { "name": "Bluray-2160p", "allowed": false }, + { "name": "Remux-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "WEB 1080p", "allowed": true, "items": ["WEBDL-1080p", "WEBRip-1080p"] }, + { "name": "Remux-1080p", "allowed": true } + ], + "formatItems": { + "Hybrid": "0f12c086e289cf966fa5948eac571f44", + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "IMAX": "eecf3a857724171f968a66cb5719e152", + "IMAX Enhanced": "9f6cbff8cfe4ebbc1bde14c7b7bec0de", + "Remux Tier 01": "3a3ff47579026e76d6504ebea39390de", + "Remux Tier 02": "9f98181fe5a3fbeb0cc29340da2a468a", + "Remux Tier 03": "8baaf0b3142bf4d94c42a724f034e27a", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (HD)": "dc98083864ea246d05a42df0d05f81cc", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Extras": "0a3f082873eb454bde444150b70253cc", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/radarr/quality-profiles/remux-web-2160p.json b/docs/json/radarr/quality-profiles/remux-web-2160p.json new file mode 100644 index 000000000..da0b646e5 --- /dev/null +++ b/docs/json/radarr/quality-profiles/remux-web-2160p.json @@ -0,0 +1,87 @@ +{ + "trash_id": "fd161a61e3ab826d3a22d53f935696dd", + "name": "Remux + WEB 2160p", + "upgradeAllowed": true, + "cutoff": "Remux-2160p", + "minFormatScore": 0, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "Bluray-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "WEB 1080p", "allowed": false, "items": ["WEBDL-1080p", "WEBRip-1080p"] }, + { "name": "Bluray-1080p", "allowed": false }, + { "name": "Remux-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "Bluray-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "WEB 2160p", "allowed": true, "items": ["WEBDL-2160p", "WEBRip-2160p"] }, + { "name": "Remux-2160p", "allowed": true } + ], + "formatItems": { + "DV HDR10Plus": "c53085ddbd027d9624b320627748612f", + "DV HDR10": "e23edd2482476e595fb990b12e7c609c", + "DV": "58d6a88f13e2db7f5059c41047876f00", + "DV HLG": "55d53828b9d81cbe20b02efd00aa0efd", + "DV SDR": "a3e19f8f627608af0211acd02bf89735", + "HDR10+": "b974a6cd08c1066250f1f177d7aa1225", + "HDR10": "dfb86d5941bc9075d6af23b09c2aeecd", + "HDR": "e61e28db95d22bedcadf030b8f156d96", + "HDR (undefined)": "2a4d9069cc1fe3242ff9bdaebed239bb", + "PQ": "08d6d8834ad9ec87b1dc7ec8148e7a1f", + "HLG": "9364dd386c9b4a1100dde8264690add7", + "Hybrid": "0f12c086e289cf966fa5948eac571f44", + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "IMAX": "eecf3a857724171f968a66cb5719e152", + "IMAX Enhanced": "9f6cbff8cfe4ebbc1bde14c7b7bec0de", + "Remux Tier 01": "3a3ff47579026e76d6504ebea39390de", + "Remux Tier 02": "9f98181fe5a3fbeb0cc29340da2a468a", + "Remux Tier 03": "8baaf0b3142bf4d94c42a724f034e27a", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (no HDR/DV)": "839bea857ed2c0a8e084f3cbdbd65ecb", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Upscaled": "bfd8eb01832d646a0a89c4deb46f8564", + "Extras": "0a3f082873eb454bde444150b70253cc", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/radarr/quality-profiles/sqp-1-1080p.json b/docs/json/radarr/quality-profiles/sqp-1-1080p.json new file mode 100644 index 000000000..797c3239f --- /dev/null +++ b/docs/json/radarr/quality-profiles/sqp-1-1080p.json @@ -0,0 +1,93 @@ +{ + "trash_id": "0896c29d74de619df168d23b98104b22", + "name": "SQP-1 (1080p)", + "trash_score_set": "sqp-1-1080p", + "upgradeAllowed": true, + "cutoff": "Bluray|WEB-1080p", + "minFormatScore": 1000, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Remux-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "WEB 2160p", "allowed": false, "items": ["WEBDL-2160p", "WEBRip-2160p"] }, + { "name": "Bluray-2160p", "allowed": false }, + { "name": "Remux-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "Bluray-720p", "allowed": true }, + { + "name": "Bluray|WEB-1080p", + "allowed": true, + "items": ["WEBDL-720p", "WEBRip-720p", "WEBDL-1080p", "WEBRip-1080p", "Bluray-1080p"] + } + ], + "formatItems": { + "TrueHD ATMOS": "496f355514737f7d83bf7aa4d24f8169", + "DTS X": "2f22d89048b01681dde8afe203bf2e95", + "ATMOS (undefined)": "417804f7f2c4308c1f4c5d380d4c4475", + "DD+ ATMOS": "1af239278386be2919e1bcee0bde047e", + "TrueHD": "3cafb66171b47f226146a0770576870f", + "DTS-HD MA": "dcf3ec6938fa32445f590a4da84256cd", + "FLAC": "a570d4a0e56a2874b64e5bfa55202a1b", + "PCM": "e7c2fcae07cbada050a0af3357491d7b", + "DTS-HD HRA": "8e109e50e0a0b83a5098b056e13bf6db", + "DD+": "185f1dd7264c4562b9022d963ac37424", + "DTS-ES": "f9f847ac70a0af62ea4a08280b859636", + "DTS": "1c1a4c5e823891c75bc50380a6866f73", + "AAC": "240770601cc226190c367ef59aba7463", + "DD": "c2998bd0d90ed5621d8df281e839436e", + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "BHDStudio": "5153ec7413d9dae44e24275589b5e944", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "HD Bluray Tier 01": "ed27ebfef2f323e964fb1f61391bcb35", + "HD Bluray Tier 02": "c20c8647f2746a1f4c4262b0fbbeeeae", + "HD Bluray Tier 03": "5608c71bcebba0a5e666223bae8c9227", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (HD)": "dc98083864ea246d05a42df0d05f81cc", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Extras": "0a3f082873eb454bde444150b70253cc", + "10 bit": "a5d148168c4506b55cf53984107c396e", + "1080p": "820b09bb9acbfde9c35c71e0e565dad8", + "720p": "b2be17d608fc88818940cd1833b0b24c", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/radarr/quality-profiles/sqp-1-2160p.json b/docs/json/radarr/quality-profiles/sqp-1-2160p.json new file mode 100644 index 000000000..f101462dc --- /dev/null +++ b/docs/json/radarr/quality-profiles/sqp-1-2160p.json @@ -0,0 +1,109 @@ +{ + "trash_id": "5128baeb2b081b72126bc8482b2a86a0", + "name": "SQP-1 (2160p)", + "trash_score_set": "sqp-1-2160p", + "upgradeAllowed": true, + "cutoff": "Bluray-2160p", + "minFormatScore": 1000, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Remux-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "Remux-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "Bluray-720p", "allowed": true }, + { + "name": "Bluray|WEB-1080p", + "allowed": true, + "items": ["WEBRip-720p", "WEBDL-720p", "WEBRip-1080p", "WEBDL-1080p", "Bluray-1080p"] + }, + { "name": "WEB 2160p", "allowed": true, "items": ["WEBDL-2160p", "WEBRip-2160p"] }, + { "name": "Bluray-2160p", "allowed": true } + ], + "formatItems": { + "TrueHD ATMOS": "496f355514737f7d83bf7aa4d24f8169", + "DTS X": "2f22d89048b01681dde8afe203bf2e95", + "ATMOS (undefined)": "417804f7f2c4308c1f4c5d380d4c4475", + "DD+ ATMOS": "1af239278386be2919e1bcee0bde047e", + "TrueHD": "3cafb66171b47f226146a0770576870f", + "DTS-HD MA": "dcf3ec6938fa32445f590a4da84256cd", + "FLAC": "a570d4a0e56a2874b64e5bfa55202a1b", + "PCM": "e7c2fcae07cbada050a0af3357491d7b", + "DTS-HD HRA": "8e109e50e0a0b83a5098b056e13bf6db", + "DD+": "185f1dd7264c4562b9022d963ac37424", + "DTS-ES": "f9f847ac70a0af62ea4a08280b859636", + "DTS": "1c1a4c5e823891c75bc50380a6866f73", + "AAC": "240770601cc226190c367ef59aba7463", + "DD": "c2998bd0d90ed5621d8df281e839436e", + "DV HDR10Plus": "c53085ddbd027d9624b320627748612f", + "DV HDR10": "e23edd2482476e595fb990b12e7c609c", + "DV": "58d6a88f13e2db7f5059c41047876f00", + "DV HLG": "55d53828b9d81cbe20b02efd00aa0efd", + "DV SDR": "a3e19f8f627608af0211acd02bf89735", + "HDR10+": "b974a6cd08c1066250f1f177d7aa1225", + "HDR10": "dfb86d5941bc9075d6af23b09c2aeecd", + "HDR": "e61e28db95d22bedcadf030b8f156d96", + "HDR (undefined)": "2a4d9069cc1fe3242ff9bdaebed239bb", + "PQ": "08d6d8834ad9ec87b1dc7ec8148e7a1f", + "HLG": "9364dd386c9b4a1100dde8264690add7", + "DV (WEBDL)": "923b6abef9b17f937fab56cfcf89e1f1", + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "BHDStudio": "5153ec7413d9dae44e24275589b5e944", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "HD Bluray Tier 01": "ed27ebfef2f323e964fb1f61391bcb35", + "HD Bluray Tier 02": "c20c8647f2746a1f4c4262b0fbbeeeae", + "HD Bluray Tier 03": "5608c71bcebba0a5e666223bae8c9227", + "UHD Bluray Tier 01": "4d74ac4c4db0b64bff6ce0cffef99bf0", + "UHD Bluray Tier 02": "a58f517a70193f8e578056642178419d", + "UHD Bluray Tier 03": "e71939fae578037e7aed3ee219bbe7c1", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (no HDR/DV)": "839bea857ed2c0a8e084f3cbdbd65ecb", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Upscaled": "bfd8eb01832d646a0a89c4deb46f8564", + "Extras": "0a3f082873eb454bde444150b70253cc", + "10 bit": "a5d148168c4506b55cf53984107c396e", + "1080p": "820b09bb9acbfde9c35c71e0e565dad8", + "720p": "b2be17d608fc88818940cd1833b0b24c", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/radarr/quality-profiles/sqp-2.json b/docs/json/radarr/quality-profiles/sqp-2.json new file mode 100644 index 000000000..2c7910d75 --- /dev/null +++ b/docs/json/radarr/quality-profiles/sqp-2.json @@ -0,0 +1,101 @@ +{ + "trash_id": "c3933358ba2356bafc41524f81471069", + "name": "SQP-2", + "trash_score_set": "sqp-2", + "upgradeAllowed": true, + "cutoff": "WEB|Remux|Bluray|2160p", + "minFormatScore": 550, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "Bluray-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Bluray-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "Remux-1080p", "allowed": true }, + { + "name": "WEB|Remux|Bluray|2160p", + "allowed": true, + "items": [ + "WEBDL-1080p", + "WEBRip-1080p", + "WEBDL-2160p", + "WEBRip-2160p", + "Remux-2160p", + "Bluray-2160p" + ] + } + ], + "formatItems": { + "DV HDR10Plus": "c53085ddbd027d9624b320627748612f", + "DV HDR10": "e23edd2482476e595fb990b12e7c609c", + "DV": "58d6a88f13e2db7f5059c41047876f00", + "DV HLG": "55d53828b9d81cbe20b02efd00aa0efd", + "DV SDR": "a3e19f8f627608af0211acd02bf89735", + "HDR10+": "b974a6cd08c1066250f1f177d7aa1225", + "HDR10": "dfb86d5941bc9075d6af23b09c2aeecd", + "HDR": "e61e28db95d22bedcadf030b8f156d96", + "HDR (undefined)": "2a4d9069cc1fe3242ff9bdaebed239bb", + "PQ": "08d6d8834ad9ec87b1dc7ec8148e7a1f", + "HLG": "9364dd386c9b4a1100dde8264690add7", + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "IMAX": "eecf3a857724171f968a66cb5719e152", + "IMAX Enhanced": "9f6cbff8cfe4ebbc1bde14c7b7bec0de", + "Remux Tier 01": "3a3ff47579026e76d6504ebea39390de", + "Remux Tier 02": "9f98181fe5a3fbeb0cc29340da2a468a", + "Remux Tier 03": "8baaf0b3142bf4d94c42a724f034e27a", + "UHD Bluray Tier 01": "4d74ac4c4db0b64bff6ce0cffef99bf0", + "UHD Bluray Tier 02": "a58f517a70193f8e578056642178419d", + "UHD Bluray Tier 03": "e71939fae578037e7aed3ee219bbe7c1", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "x264": "2899d84dc9372de3408e6d8cc18e9666", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (no HDR/DV)": "839bea857ed2c0a8e084f3cbdbd65ecb", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Upscaled": "bfd8eb01832d646a0a89c4deb46f8564", + "Extras": "0a3f082873eb454bde444150b70253cc", + "1080p": "820b09bb9acbfde9c35c71e0e565dad8", + "2160p": "fb392fb0d61a010ae38e49ceaa24a1ef", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/radarr/quality-profiles/sqp-3.json b/docs/json/radarr/quality-profiles/sqp-3.json new file mode 100644 index 000000000..1061b9fe0 --- /dev/null +++ b/docs/json/radarr/quality-profiles/sqp-3.json @@ -0,0 +1,92 @@ +{ + "trash_id": "2cf36c1f0106ffac993be003ade51865", + "name": "SQP-3", + "trash_score_set": "sqp-3", + "upgradeAllowed": true, + "cutoff": "WEB|Remux|2160p", + "minFormatScore": 550, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "Bluray-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Bluray-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "Bluray-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "Remux-1080p", "allowed": true }, + { + "name": "WEB|Remux|2160p", + "allowed": true, + "items": ["WEBDL-1080p", "WEBRip-1080p", "WEBDL-2160p", "WEBRip-2160p", "Remux-2160p"] + } + ], + "formatItems": { + "DV HDR10Plus": "c53085ddbd027d9624b320627748612f", + "DV HDR10": "e23edd2482476e595fb990b12e7c609c", + "DV": "58d6a88f13e2db7f5059c41047876f00", + "DV HLG": "55d53828b9d81cbe20b02efd00aa0efd", + "DV SDR": "a3e19f8f627608af0211acd02bf89735", + "HDR10+": "b974a6cd08c1066250f1f177d7aa1225", + "HDR10": "dfb86d5941bc9075d6af23b09c2aeecd", + "HDR": "e61e28db95d22bedcadf030b8f156d96", + "HDR (undefined)": "2a4d9069cc1fe3242ff9bdaebed239bb", + "PQ": "08d6d8834ad9ec87b1dc7ec8148e7a1f", + "HLG": "9364dd386c9b4a1100dde8264690add7", + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "IMAX": "eecf3a857724171f968a66cb5719e152", + "IMAX Enhanced": "9f6cbff8cfe4ebbc1bde14c7b7bec0de", + "Remux Tier 01": "3a3ff47579026e76d6504ebea39390de", + "Remux Tier 02": "9f98181fe5a3fbeb0cc29340da2a468a", + "Remux Tier 03": "8baaf0b3142bf4d94c42a724f034e27a", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "x264": "2899d84dc9372de3408e6d8cc18e9666", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (no HDR/DV)": "839bea857ed2c0a8e084f3cbdbd65ecb", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Upscaled": "bfd8eb01832d646a0a89c4deb46f8564", + "Extras": "0a3f082873eb454bde444150b70253cc", + "1080p": "820b09bb9acbfde9c35c71e0e565dad8", + "2160p": "fb392fb0d61a010ae38e49ceaa24a1ef", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/radarr/quality-profiles/sqp-4.json b/docs/json/radarr/quality-profiles/sqp-4.json new file mode 100644 index 000000000..319116f62 --- /dev/null +++ b/docs/json/radarr/quality-profiles/sqp-4.json @@ -0,0 +1,93 @@ +{ + "trash_id": "013f89e6da27519fe56cf482702a2db9", + "name": "SQP-4", + "trash_score_set": "sqp-4", + "upgradeAllowed": true, + "cutoff": "WEB|2160p", + "minFormatScore": 550, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "Bluray-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Bluray-1080p", "allowed": false }, + { "name": "Remux-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "Bluray-2160p", "allowed": false }, + { "name": "Remux-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { + "name": "WEB|2160p", + "allowed": true, + "items": ["WEBRip-1080p", "WEBDL-1080p", "WEBRip-2160p", "WEBDL-2160p"] + } + ], + "formatItems": { + "DV HDR10Plus": "c53085ddbd027d9624b320627748612f", + "DV HDR10": "e23edd2482476e595fb990b12e7c609c", + "DV": "58d6a88f13e2db7f5059c41047876f00", + "DV HLG": "55d53828b9d81cbe20b02efd00aa0efd", + "DV SDR": "a3e19f8f627608af0211acd02bf89735", + "HDR10+": "b974a6cd08c1066250f1f177d7aa1225", + "HDR10": "dfb86d5941bc9075d6af23b09c2aeecd", + "HDR": "e61e28db95d22bedcadf030b8f156d96", + "HDR (undefined)": "2a4d9069cc1fe3242ff9bdaebed239bb", + "PQ": "08d6d8834ad9ec87b1dc7ec8148e7a1f", + "HLG": "9364dd386c9b4a1100dde8264690add7", + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "IMAX": "eecf3a857724171f968a66cb5719e152", + "IMAX Enhanced": "9f6cbff8cfe4ebbc1bde14c7b7bec0de", + "Remux Tier 01": "3a3ff47579026e76d6504ebea39390de", + "Remux Tier 02": "9f98181fe5a3fbeb0cc29340da2a468a", + "Remux Tier 03": "8baaf0b3142bf4d94c42a724f034e27a", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "x264": "2899d84dc9372de3408e6d8cc18e9666", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (no HDR/DV)": "839bea857ed2c0a8e084f3cbdbd65ecb", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Upscaled": "bfd8eb01832d646a0a89c4deb46f8564", + "Extras": "0a3f082873eb454bde444150b70253cc", + "1080p": "820b09bb9acbfde9c35c71e0e565dad8", + "2160p": "fb392fb0d61a010ae38e49ceaa24a1ef", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/radarr/quality-profiles/sqp-5.json b/docs/json/radarr/quality-profiles/sqp-5.json new file mode 100644 index 000000000..0b929a68c --- /dev/null +++ b/docs/json/radarr/quality-profiles/sqp-5.json @@ -0,0 +1,95 @@ +{ + "trash_id": "a7bb1539fd147256b21b1098f3dc2016", + "name": "SQP-5", + "trash_score_set": "sqp-5", + "upgradeAllowed": true, + "cutoff": "WEBDL|Bluray|2160p", + "minFormatScore": 550, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "Bluray-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Bluray-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "Remux-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "Remux-1080p", "allowed": true }, + { + "name": "WEBDL|Bluray|2160p", + "allowed": true, + "items": ["WEBDL-1080p", "WEBRip-1080p", "Bluray-2160p", "WEBRip-2160p", "WEBDL-2160p"] + } + ], + "formatItems": { + "DV HDR10Plus": "c53085ddbd027d9624b320627748612f", + "DV HDR10": "e23edd2482476e595fb990b12e7c609c", + "DV": "58d6a88f13e2db7f5059c41047876f00", + "DV HLG": "55d53828b9d81cbe20b02efd00aa0efd", + "DV SDR": "a3e19f8f627608af0211acd02bf89735", + "HDR10+": "b974a6cd08c1066250f1f177d7aa1225", + "HDR10": "dfb86d5941bc9075d6af23b09c2aeecd", + "HDR": "e61e28db95d22bedcadf030b8f156d96", + "HDR (undefined)": "2a4d9069cc1fe3242ff9bdaebed239bb", + "PQ": "08d6d8834ad9ec87b1dc7ec8148e7a1f", + "HLG": "9364dd386c9b4a1100dde8264690add7", + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "IMAX": "eecf3a857724171f968a66cb5719e152", + "IMAX Enhanced": "9f6cbff8cfe4ebbc1bde14c7b7bec0de", + "Remux Tier 01": "3a3ff47579026e76d6504ebea39390de", + "Remux Tier 02": "9f98181fe5a3fbeb0cc29340da2a468a", + "Remux Tier 03": "8baaf0b3142bf4d94c42a724f034e27a", + "UHD Bluray Tier 01": "4d74ac4c4db0b64bff6ce0cffef99bf0", + "UHD Bluray Tier 02": "a58f517a70193f8e578056642178419d", + "UHD Bluray Tier 03": "e71939fae578037e7aed3ee219bbe7c1", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "x264": "2899d84dc9372de3408e6d8cc18e9666", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (no HDR/DV)": "839bea857ed2c0a8e084f3cbdbd65ecb", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Upscaled": "bfd8eb01832d646a0a89c4deb46f8564", + "Extras": "0a3f082873eb454bde444150b70253cc", + "1080p": "820b09bb9acbfde9c35c71e0e565dad8", + "2160p": "fb392fb0d61a010ae38e49ceaa24a1ef", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/radarr/quality-profiles/uhd-bluray-web.json b/docs/json/radarr/quality-profiles/uhd-bluray-web.json new file mode 100644 index 000000000..be4285f1d --- /dev/null +++ b/docs/json/radarr/quality-profiles/uhd-bluray-web.json @@ -0,0 +1,86 @@ +{ + "trash_id": "64fb5f9858489bdac2af690e27c8f42f", + "name": "UHD Bluray + WEB", + "upgradeAllowed": true, + "cutoff": "Bluray-2160p", + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "Bluray-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "WEB 1080p", "allowed": false, "items": ["WEBDL-1080p", "WEBRip-1080p"] }, + { "name": "Bluray-1080p", "allowed": false }, + { "name": "Remux-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "Remux-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "WEB 2160p", "allowed": true, "items": ["WEBDL-2160p", "WEBRip-2160p"] }, + { "name": "Bluray-2160p", "allowed": true } + ], + "minFormatScore": 0, + "cutoffFormatScore": 10000, + "formatItems": { + "DV HDR10Plus": "c53085ddbd027d9624b320627748612f", + "DV HDR10": "e23edd2482476e595fb990b12e7c609c", + "DV": "58d6a88f13e2db7f5059c41047876f00", + "DV HLG": "55d53828b9d81cbe20b02efd00aa0efd", + "DV SDR": "a3e19f8f627608af0211acd02bf89735", + "HDR10+": "b974a6cd08c1066250f1f177d7aa1225", + "HDR10": "dfb86d5941bc9075d6af23b09c2aeecd", + "HDR": "e61e28db95d22bedcadf030b8f156d96", + "HDR (undefined)": "2a4d9069cc1fe3242ff9bdaebed239bb", + "PQ": "08d6d8834ad9ec87b1dc7ec8148e7a1f", + "HLG": "9364dd386c9b4a1100dde8264690add7", + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "IMAX": "eecf3a857724171f968a66cb5719e152", + "IMAX Enhanced": "9f6cbff8cfe4ebbc1bde14c7b7bec0de", + "UHD Bluray Tier 01": "4d74ac4c4db0b64bff6ce0cffef99bf0", + "UHD Bluray Tier 02": "a58f517a70193f8e578056642178419d", + "UHD Bluray Tier 03": "e71939fae578037e7aed3ee219bbe7c1", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (no HDR/DV)": "839bea857ed2c0a8e084f3cbdbd65ecb", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Upscaled": "bfd8eb01832d646a0a89c4deb46f8564", + "Extras": "0a3f082873eb454bde444150b70253cc", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/sonarr/cf-groups/advanced-audio-formats.json b/docs/json/sonarr/cf-groups/advanced-audio-formats.json new file mode 100644 index 000000000..329194d74 --- /dev/null +++ b/docs/json/sonarr/cf-groups/advanced-audio-formats.json @@ -0,0 +1,82 @@ +{ + "name": "Advanced Audio Formats", + "trash_id": "e9a1944a254e6f8a9da63083f7ae15cb", + "custom_formats": [ + { + "name": "TrueHD Atmos", + "trash_id": "0d7824bb924701997f874e7ff7d4844a", + "required": true + }, + { + "name": "DTS X", + "trash_id": "9d00418ba386a083fbf4d58235fc37ef", + "required": true + }, + { + "name": "ATMOS (undefined)", + "trash_id": "b6fbafa7942952a13e17e2b1152b539a", + "required": true + }, + { + "name": "DD+ ATMOS", + "trash_id": "4232a509ce60c4e208d13825b7c06264", + "required": true + }, + { + "name": "TrueHD", + "trash_id": "1808e4b9cee74e064dfae3f1db99dbfe", + "required": true + }, + { + "name": "DTS-HD MA", + "trash_id": "c429417a57ea8c41d57e6990a8b0033f", + "required": true + }, + { + "name": "FLAC", + "trash_id": "851bd64e04c9374c51102be3dd9ae4cc", + "required": true + }, + { + "name": "PCM", + "trash_id": "30f70576671ca933adbdcfc736a69718", + "required": true + }, + { + "name": "DTS-HD HRA", + "trash_id": "cfa5fbd8f02a86fc55d8d223d06a5e1f", + "required": true + }, + { + "name": "DD+", + "trash_id": "63487786a8b01b7f20dd2bc90dd4a477", + "required": true + }, + { + "name": "DTS-ES", + "trash_id": "c1a25cd67b5d2e08287c957b1eb903ec", + "required": true + }, + { + "name": "DTS", + "trash_id": "5964f2a8b3be407d083498e4459d05d0", + "required": true + }, + { + "name": "AAC", + "trash_id": "a50b8a0c62274a7c38b09a9619ba9d86", + "required": true + }, + { + "name": "DD", + "trash_id": "dbe00161b08a25ac6154c55f95e6318d", + "required": true + } + ], + "quality_profiles": { + "exclude": { + "WEB-1080p": "72dae194fc92bf828f32cde7744e51a1", + "WEB-2160p": "d1498e7d189fbe6c7110ceaabb7473e6" + } + } +} diff --git a/docs/json/sonarr/cf-groups/hdr-formats.json b/docs/json/sonarr/cf-groups/hdr-formats.json new file mode 100644 index 000000000..5fdc5d088 --- /dev/null +++ b/docs/json/sonarr/cf-groups/hdr-formats.json @@ -0,0 +1,67 @@ +{ + "name": "HDR Formats", + "trash_id": "c4735e1d02e8738044ad4ad1bf58670c", + "custom_formats": [ + { + "name": "DV HDR10Plus", + "trash_id": "2b239ed870daba8126a53bd5dc8dc1c8", + "required": true + }, + { + "name": "DV HDR10", + "trash_id": "7878c33f1963fefb3d6c8657d46c2f0a", + "required": true + }, + { + "name": "DV", + "trash_id": "6d0d8de7b57e35518ac0308b0ddf404e", + "required": true + }, + { + "name": "DV HLG", + "trash_id": "1f733af03141f068a540eec352589a89", + "required": true + }, + { + "name": "DV SDR", + "trash_id": "27954b0a80aab882522a88a4d9eae1cd", + "required": true + }, + { + "name": "HDR10+", + "trash_id": "a3d82cbef5039f8d295478d28a887159", + "required": true + }, + { + "name": "HDR10", + "trash_id": "3497799d29a085e2ac2df9d468413c94", + "required": true + }, + { + "name": "HDR", + "trash_id": "3e2c4e748b64a1a1118e0ea3f4cf6875", + "required": true + }, + { + "name": "HDR (Undefined)", + "trash_id": "bb019e1cd00f304f80971c965de064dc", + "required": true + }, + { + "name": "PQ", + "trash_id": "2a7e3be05d3861d6df7171ec74cad727", + "required": true + }, + { + "name": "HLG", + "trash_id": "17e889ce13117940092308f48b48b45b", + "required": true + } + ], + "quality_profiles": { + "exclude": { + "WEB-1080p": "72dae194fc92bf828f32cde7744e51a1", + "WEB-2160p": "d1498e7d189fbe6c7110ceaabb7473e6" + } + } +} diff --git a/docs/json/sonarr/cf-groups/optional-uhd.json b/docs/json/sonarr/cf-groups/optional-uhd.json new file mode 100644 index 000000000..95c9cde9a --- /dev/null +++ b/docs/json/sonarr/cf-groups/optional-uhd.json @@ -0,0 +1,51 @@ +{ + "name": "Optional", + "trash_id": "cac4624ef8fae1ef5e8abb8cf1cf6607", + "custom_formats": [ + { + "name": "Bad Dual Groups", + "trash_id": "32b367365729d530ca1c124a0b180c64", + "required": false + }, + { + "name": "No-RlsGroup", + "trash_id": "82d40da2bc6923f41e14394075dd4b03", + "required": false + }, + { + "name": "Obfuscated", + "trash_id": "e1a997ddb54e3ecbfe06341ad323c458", + "required": false + }, + { + "name": "Retags", + "trash_id": "06d66ab109d4d2eddb2794d21526d140", + "required": false + }, + { + "name": "Scene", + "trash_id": "1b3994c551cbb92a2c781af061f4ab44", + "required": false + }, + { + "name": "x265 (HD)", + "trash_id": "47435ece6b99a0b477caf360e79ba0bb", + "required": false + }, + { + "name": "SDR", + "trash_id": "2016d1676f5ee13a5b7257ff86ac9a93", + "required": false + }, + { + "name": "SDR (no WEBDL)", + "trash_id": "83304f261cf516bb208c18c54c0adf97", + "required": false + } + ], + "quality_profiles": { + "exclude": { + "WEB-1080p": "72dae194fc92bf828f32cde7744e51a1" + } + } +} diff --git a/docs/json/sonarr/cf-groups/optional.json b/docs/json/sonarr/cf-groups/optional.json new file mode 100644 index 000000000..4816a751d --- /dev/null +++ b/docs/json/sonarr/cf-groups/optional.json @@ -0,0 +1,41 @@ +{ + "name": "Optional", + "trash_id": "f4a0410a1df109a66d6e47dcadcce014", + "custom_formats": [ + { + "name": "Bad Dual Groups", + "trash_id": "32b367365729d530ca1c124a0b180c64", + "required": false + }, + { + "name": "No-RlsGroup", + "trash_id": "82d40da2bc6923f41e14394075dd4b03", + "required": false + }, + { + "name": "Obfuscated", + "trash_id": "e1a997ddb54e3ecbfe06341ad323c458", + "required": false + }, + { + "name": "Retags", + "trash_id": "06d66ab109d4d2eddb2794d21526d140", + "required": false + }, + { + "name": "Scene", + "trash_id": "1b3994c551cbb92a2c781af061f4ab44", + "required": false + }, + { + "name": "x265 (no HDR/DV)", + "trash_id": "9b64dff695c2115facf1b6ea59c9bd07", + "required": false + } + ], + "quality_profiles": { + "exclude": { + "WEB-2160p": "d1498e7d189fbe6c7110ceaabb7473e6" + } + } +} diff --git a/docs/json/sonarr/quality-profiles/web-1080p.json b/docs/json/sonarr/quality-profiles/web-1080p.json new file mode 100644 index 000000000..9f7d4e703 --- /dev/null +++ b/docs/json/sonarr/quality-profiles/web-1080p.json @@ -0,0 +1,56 @@ +{ + "trash_id": "72dae194fc92bf828f32cde7744e51a1", + "name": "WEB-1080p", + "upgradeAllowed": true, + "cutoff": "WEB 1080p", + "minFormatScore": 0, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "DVD", "allowed": false }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "Bluray-720p", "allowed": false }, + { "name": "Bluray-1080p", "allowed": false }, + { "name": "Bluray-1080p Remux", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "WEB 2160p", "allowed": false, "items": ["WEBDL-2160p", "WEBRip-2160p"] }, + { "name": "Bluray-2160p", "allowed": false }, + { "name": "Bluray-2160p Remux", "allowed": false }, + { "name": "WEB 1080p", "allowed": true, "items": ["WEBDL-1080p", "WEBRip-1080p"] } + ], + "formatItems": { + "BR-DISK": "85c61753df5da1fb2aab6f2a47426b09", + "LQ": "9c11cd3f07101cdba90a2d81cf0e56b4", + "LQ (Release Title)": "e2315f990da2e2cbfc9fa5b7a6fcfe48", + "x265 (HD)": "47435ece6b99a0b477caf360e79ba0bb", + "Extras": "fbcb31d8dabd2a319072b84fc0b7249c", + "Repack/Proper": "ec8fa7296b64e8cd390a1600981f3923", + "Repack v2": "eb3d5cc0a2be0db205fb823640db6a3c", + "Repack v3": "44e7c4de10ae50265753082e5dc76047", + "AMZN": "d660701077794679fd59e8bdf4ce3a29", + "ATVP": "f67c9ca88f463a48346062e8ad07713f", + "CC": "77a7b25585c18af08f60b1547bb9b4fb", + "DCU": "36b72f59f4ea20aad9316f475f2d9fbb", + "DSNP": "89358767a60cc28783cdc3d0be9388a4", + "HBO": "7a235133c87f7da4c8cccceca7e3c7a6", + "HMAX": "a880d6abc21e7c16884f3ae393f84179", + "HULU": "f6cce30f1733d5c8194222a7507909bb", + "iT": "0ac24a2a68a9700bcb7eeca8e5cd644c", + "MAX": "81d1fbf600e2540cee87f3a23f9d3c1c", + "NF": "d34870697c9db575f17700212167be23", + "PCOK": "1656adc6d7bb2c8cca6acfb6592db421", + "PMTP": "c67a75ae4a1715f2bb4d492755ba4195", + "SHO": "ae58039e1319178e6be73caab5c42166", + "STAN": "1efe8da11bfd74fbbcd4d8117ddb9213", + "WEB Tier 01": "e6258996055b9fbab7e9cb2f75819294", + "WEB Tier 02": "58790d4e2fdcd9733aa7ae68ba2bb503", + "WEB Tier 03": "d84935abd3f8556dcd51d4f27e22d0a6", + "WEB Scene": "d0c516558625b04b363fa6c5c2c7cfd4" + } +} diff --git a/docs/json/sonarr/quality-profiles/web-2160p.json b/docs/json/sonarr/quality-profiles/web-2160p.json new file mode 100644 index 000000000..4b8937017 --- /dev/null +++ b/docs/json/sonarr/quality-profiles/web-2160p.json @@ -0,0 +1,68 @@ +{ + "trash_id": "d1498e7d189fbe6c7110ceaabb7473e6", + "name": "WEB-2160p", + "upgradeAllowed": true, + "cutoff": "WEB 2160p", + "minFormatScore": 0, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "DVD", "allowed": false }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "Bluray-720p", "allowed": false }, + { "name": "WEB 1080p", "allowed": false, "items": ["WEBDL-1080p", "WEBRip-1080p"] }, + { "name": "Bluray-1080p", "allowed": false }, + { "name": "Bluray-1080p Remux", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "Bluray-2160p", "allowed": false }, + { "name": "Bluray-2160p Remux", "allowed": false }, + { "name": "WEB 2160p", "allowed": true, "items": ["WEBDL-2160p", "WEBRip-2160p"] } + ], + "formatItems": { + "DV HDR10Plus": "2b239ed870daba8126a53bd5dc8dc1c8", + "DV HDR10": "7878c33f1963fefb3d6c8657d46c2f0a", + "DV": "6d0d8de7b57e35518ac0308b0ddf404e", + "DV HLG": "1f733af03141f068a540eec352589a89", + "DV SDR": "27954b0a80aab882522a88a4d9eae1cd", + "HDR10+": "a3d82cbef5039f8d295478d28a887159", + "HDR10": "3497799d29a085e2ac2df9d468413c94", + "HDR": "3e2c4e748b64a1a1118e0ea3f4cf6875", + "HDR (Undefined)": "bb019e1cd00f304f80971c965de064dc", + "PQ": "2a7e3be05d3861d6df7171ec74cad727", + "HLG": "17e889ce13117940092308f48b48b45b", + "BR-DISK": "85c61753df5da1fb2aab6f2a47426b09", + "LQ": "9c11cd3f07101cdba90a2d81cf0e56b4", + "LQ (Release Title)": "e2315f990da2e2cbfc9fa5b7a6fcfe48", + "x265 (no HDR/DV)": "9b64dff695c2115facf1b6ea59c9bd07", + "Extras": "fbcb31d8dabd2a319072b84fc0b7249c", + "Repack/Proper": "ec8fa7296b64e8cd390a1600981f3923", + "Repack v2": "eb3d5cc0a2be0db205fb823640db6a3c", + "Repack v3": "44e7c4de10ae50265753082e5dc76047", + "ATVP": "f67c9ca88f463a48346062e8ad07713f", + "CC": "77a7b25585c18af08f60b1547bb9b4fb", + "DCU": "36b72f59f4ea20aad9316f475f2d9fbb", + "DSNP": "89358767a60cc28783cdc3d0be9388a4", + "HBO": "7a235133c87f7da4c8cccceca7e3c7a6", + "HMAX": "a880d6abc21e7c16884f3ae393f84179", + "HULU": "f6cce30f1733d5c8194222a7507909bb", + "iT": "0ac24a2a68a9700bcb7eeca8e5cd644c", + "MAX": "81d1fbf600e2540cee87f3a23f9d3c1c", + "NF": "d34870697c9db575f17700212167be23", + "PCOK": "1656adc6d7bb2c8cca6acfb6592db421", + "PMTP": "c67a75ae4a1715f2bb4d492755ba4195", + "SHO": "ae58039e1319178e6be73caab5c42166", + "STAN": "1efe8da11bfd74fbbcd4d8117ddb9213", + "UHD Streaming Boost": "43b3cf48cb385cd3eac608ee6bca7f09", + "UHD Streaming Cut": "d2d299244a92b8a52d4921ce3897a256", + "WEB Tier 01": "e6258996055b9fbab7e9cb2f75819294", + "WEB Tier 02": "58790d4e2fdcd9733aa7ae68ba2bb503", + "WEB Tier 03": "d84935abd3f8556dcd51d4f27e22d0a6", + "WEB Scene": "d0c516558625b04b363fa6c5c2c7cfd4" + } +} diff --git a/metadata.json b/metadata.json index fb53e56c3..ba5038dec 100644 --- a/metadata.json +++ b/metadata.json @@ -4,13 +4,17 @@ "radarr": { "custom_formats": ["docs/json/radarr/cf"], "qualities": ["docs/json/radarr/quality-size"], - "naming": ["docs/json/radarr/naming"] + "naming": ["docs/json/radarr/naming"], + "quality_profiles": ["docs/json/radarr/quality-profiles"], + "custom_format_groups": ["docs/json/radarr/cf-groups"] }, "sonarr": { "release_profiles": ["docs/json/sonarr/rp"], "custom_formats": ["docs/json/sonarr/cf"], "qualities": ["docs/json/sonarr/quality-size"], - "naming": ["docs/json/sonarr/naming"] + "naming": ["docs/json/sonarr/naming"], + "quality_profiles": ["docs/json/sonarr/quality-profiles"], + "custom_format_groups": ["docs/json/sonarr/cf-groups"] } }, "recyclarr": { diff --git a/metadata.schema.json b/metadata.schema.json index 6c050c516..2f90e7849 100644 --- a/metadata.schema.json +++ b/metadata.schema.json @@ -26,7 +26,9 @@ "properties": { "custom_formats": { "$ref": "#/$defs/paths_object" }, "qualities": { "$ref": "#/$defs/paths_object" }, - "naming": { "$ref": "#/$defs/paths_object" } + "naming": { "$ref": "#/$defs/paths_object" }, + "quality_profiles": { "$ref": "#/$defs/paths_object" }, + "custom_format_groups": { "$ref": "#/$defs/paths_object" } } }, "sonarr": { @@ -36,7 +38,9 @@ "custom_formats": { "$ref": "#/$defs/paths_object" }, "release_profiles": { "$ref": "#/$defs/paths_object" }, "qualities": { "$ref": "#/$defs/paths_object" }, - "naming": { "$ref": "#/$defs/paths_object" } + "naming": { "$ref": "#/$defs/paths_object" }, + "quality_profiles": { "$ref": "#/$defs/paths_object" }, + "custom_format_groups": { "$ref": "#/$defs/paths_object" } } }, "recyclarr": { From 743cffc5585048f9e2fb42226f34f0914f0cf8b4 Mon Sep 17 00:00:00 2001 From: nuxen Date: Sun, 28 Apr 2024 16:36:24 +0200 Subject: [PATCH 08/26] fix(starr): match `AC-3` as `DD` (#1899) fix(starr): match AC-3 as DD --- docs/json/radarr/cf/aac.json | 4 ++-- docs/json/radarr/cf/anime-bd-tier-03-seadex-muxers.json | 2 +- docs/json/radarr/cf/atmos-undefined.json | 4 ++-- docs/json/radarr/cf/dd.json | 4 ++-- docs/json/radarr/cf/ddplus-atmos.json | 4 ++-- docs/json/radarr/cf/ddplus.json | 2 +- docs/json/radarr/cf/dts-es.json | 4 ++-- docs/json/radarr/cf/dts-hd-hra.json | 4 ++-- docs/json/radarr/cf/dts-hd-ma.json | 4 ++-- docs/json/radarr/cf/dts-x.json | 4 ++-- docs/json/radarr/cf/dts.json | 4 ++-- docs/json/radarr/cf/flac.json | 4 ++-- docs/json/radarr/cf/pcm.json | 4 ++-- docs/json/radarr/cf/truehd-atmos.json | 4 ++-- docs/json/radarr/cf/truehd.json | 4 ++-- docs/json/sonarr/cf/aac.json | 4 ++-- docs/json/sonarr/cf/anime-bd-tier-03-seadex-muxers.json | 2 +- docs/json/sonarr/cf/atmos-undefined.json | 4 ++-- docs/json/sonarr/cf/dd.json | 4 ++-- docs/json/sonarr/cf/ddplus-atmos.json | 4 ++-- docs/json/sonarr/cf/ddplus.json | 2 +- docs/json/sonarr/cf/dts-es.json | 4 ++-- docs/json/sonarr/cf/dts-hd-hra.json | 4 ++-- docs/json/sonarr/cf/dts-hd-ma.json | 4 ++-- docs/json/sonarr/cf/dts-x.json | 4 ++-- docs/json/sonarr/cf/dts.json | 4 ++-- docs/json/sonarr/cf/flac.json | 4 ++-- docs/json/sonarr/cf/pcm.json | 4 ++-- docs/json/sonarr/cf/truehd-atmos.json | 4 ++-- docs/json/sonarr/cf/truehd.json | 4 ++-- 30 files changed, 56 insertions(+), 56 deletions(-) diff --git a/docs/json/radarr/cf/aac.json b/docs/json/radarr/cf/aac.json index cbbe76037..5b22f9601 100644 --- a/docs/json/radarr/cf/aac.json +++ b/docs/json/radarr/cf/aac.json @@ -31,7 +31,7 @@ "negate": true, "required": true, "fields": { - "value": "\\bDD[P+]|\\b(e[-_. ]?ac3)\\b" + "value": "\\bDD[P+]|\\b(e[-_. ]?ac-?3)\\b" } }, { @@ -40,7 +40,7 @@ "negate": true, "required": true, "fields": { - "value": "\\bDD[^a-z+]|(? Date: Sun, 28 Apr 2024 15:53:17 +0100 Subject: [PATCH 09/26] style(Bazarr): add missing (Sonarr) for Bazarr Setup-Guide.md (#1898) Update Setup-Guide.md add (Sonarr) to Options and Path Mappings --- docs/Bazarr/Setup-Guide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Bazarr/Setup-Guide.md b/docs/Bazarr/Setup-Guide.md index bea73847c..17227ec74 100644 --- a/docs/Bazarr/Setup-Guide.md +++ b/docs/Bazarr/Setup-Guide.md @@ -48,7 +48,7 @@ Click on `Enabled` 1. Click the `Test` button after filling in all the fields. Make sure the test is successful before you proceed. -### Options +### Options (Sonarr) ![!Sonarr - Options](images/qs-sonarr-options.png) @@ -66,7 +66,7 @@ Click on `Enabled` 1. Automatic downloading of subtitles will only happen for monitored shows/episodes in Sonarr. -### Path Mappings +### Path Mappings (Sonarr) !!! note From 18bcdcba134bd8f026b7b43867ba2c4d925334d3 Mon Sep 17 00:00:00 2001 From: zakary Date: Sun, 28 Apr 2024 12:12:59 -0500 Subject: [PATCH 10/26] update(cf/hbomax): adds capturing hbomax (without separator) (#1895) https://regex101.com/r/VZsSwC/1 --- docs/Sonarr/Sonarr-Release-Profile-RegEx.md | 2 +- docs/json/radarr/cf/hmax.json | 2 +- docs/json/sonarr/cf/hmax.json | 2 +- docs/json/sonarr/cf/uhd-streaming-cut.json | 2 +- docs/json/sonarr/rp/streaming.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/Sonarr/Sonarr-Release-Profile-RegEx.md b/docs/Sonarr/Sonarr-Release-Profile-RegEx.md index 446906597..aa851af89 100644 --- a/docs/Sonarr/Sonarr-Release-Profile-RegEx.md +++ b/docs/Sonarr/Sonarr-Release-Profile-RegEx.md @@ -152,7 +152,7 @@ Add this to your `Preferred (3)` with a score of [90] Add this to your `Preferred (3)` with a score of [80] ```bash -/\b(hmax|hbom|hbo[ ._-]max)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i +/\b(hmax|hbom|hbo[ ._-]?max)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i ``` ```bash diff --git a/docs/json/radarr/cf/hmax.json b/docs/json/radarr/cf/hmax.json index 0c83fe0af..bda624618 100644 --- a/docs/json/radarr/cf/hmax.json +++ b/docs/json/radarr/cf/hmax.json @@ -9,7 +9,7 @@ "negate": false, "required": true, "fields": { - "value": "\\b(hmax|hbom|hbo[ ._-]max)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)" + "value": "\\b(hmax|hbom|hbo[ ._-]?max)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)" } }, { diff --git a/docs/json/sonarr/cf/hmax.json b/docs/json/sonarr/cf/hmax.json index 0a8145009..cd5d931ed 100644 --- a/docs/json/sonarr/cf/hmax.json +++ b/docs/json/sonarr/cf/hmax.json @@ -12,7 +12,7 @@ "negate": false, "required": true, "fields": { - "value": "\\b(hmax|hbom|hbo[ ._-]max)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)" + "value": "\\b(hmax|hbom|hbo[ ._-]?max)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)" } }, { diff --git a/docs/json/sonarr/cf/uhd-streaming-cut.json b/docs/json/sonarr/cf/uhd-streaming-cut.json index 3f0588209..a80f85b6c 100644 --- a/docs/json/sonarr/cf/uhd-streaming-cut.json +++ b/docs/json/sonarr/cf/uhd-streaming-cut.json @@ -21,7 +21,7 @@ "negate": false, "required": false, "fields": { - "value": "\\b(hmax|hbom|hbo[ ._-]max)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)" + "value": "\\b(hmax|hbom|hbo[ ._-]?max)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)" } }, { diff --git a/docs/json/sonarr/rp/streaming.json b/docs/json/sonarr/rp/streaming.json index d0aaf61a3..94587c905 100644 --- a/docs/json/sonarr/rp/streaming.json +++ b/docs/json/sonarr/rp/streaming.json @@ -20,7 +20,7 @@ { "score": 80, "terms": [ - "/\\b(hmax|hbom|hbo[ ._-]max)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)/i", + "/\\b(hmax|hbom|hbo[ ._-]?max)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)/i", "/\\b(qibi|quibi)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)/i" ] }, From 769bdf736c49acda5fd316c9500bbf9e5fe36dab Mon Sep 17 00:00:00 2001 From: FonduemangVI <15520607+FonduemangVI@users.noreply.github.com> Date: Tue, 30 Apr 2024 17:34:47 +1000 Subject: [PATCH 11/26] feat(anime): updates to CFs (#1903) --- docs/json/radarr/cf/anime-bd-tier-06-fansubs.json | 2 +- docs/json/radarr/cf/anime-web-tier-02-top-fansubs.json | 2 +- docs/json/radarr/cf/dubs-only.json | 2 +- docs/json/sonarr/cf/anime-bd-tier-06-fansubs.json | 2 +- docs/json/sonarr/cf/anime-web-tier-02-top-fansubs.json | 2 +- docs/json/sonarr/cf/dubs-only.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/json/radarr/cf/anime-bd-tier-06-fansubs.json b/docs/json/radarr/cf/anime-bd-tier-06-fansubs.json index cc1241206..016e6ef43 100644 --- a/docs/json/radarr/cf/anime-bd-tier-06-fansubs.json +++ b/docs/json/radarr/cf/anime-bd-tier-06-fansubs.json @@ -57,7 +57,7 @@ "negate": false, "required": false, "fields": { - "value": "\\b(ANE)\\b" + "value": "\\[ANE\\]|-ANE$" } }, { diff --git a/docs/json/radarr/cf/anime-web-tier-02-top-fansubs.json b/docs/json/radarr/cf/anime-web-tier-02-top-fansubs.json index 9f906f860..645f86893 100644 --- a/docs/json/radarr/cf/anime-web-tier-02-top-fansubs.json +++ b/docs/json/radarr/cf/anime-web-tier-02-top-fansubs.json @@ -165,7 +165,7 @@ "negate": false, "required": false, "fields": { - "value": "\\[tenshi\\]|-tenshi\\b" + "value": "\\[tenshi\\]|-tenshi$" } } ] diff --git a/docs/json/radarr/cf/dubs-only.json b/docs/json/radarr/cf/dubs-only.json index b45b806eb..ced326632 100644 --- a/docs/json/radarr/cf/dubs-only.json +++ b/docs/json/radarr/cf/dubs-only.json @@ -48,7 +48,7 @@ "negate": false, "required": false, "fields": { - "value": "^(?!.*Dual[-_. ]?Audio).*\\bKS\\b" + "value": "^(?!.*(dual[ ._-]?audio|[\\[(]dual[\\]]|(JA|ZH)\\+EN|EN\\+(JA|ZH))).*\\bKS\\b" } }, { diff --git a/docs/json/sonarr/cf/anime-bd-tier-06-fansubs.json b/docs/json/sonarr/cf/anime-bd-tier-06-fansubs.json index f3fc0a5a9..d0bbe1d11 100644 --- a/docs/json/sonarr/cf/anime-bd-tier-06-fansubs.json +++ b/docs/json/sonarr/cf/anime-bd-tier-06-fansubs.json @@ -66,7 +66,7 @@ "negate": false, "required": false, "fields": { - "value": "\\b(ANE)\\b" + "value": "\\[ANE\\]|-ANE$" } }, { diff --git a/docs/json/sonarr/cf/anime-web-tier-02-top-fansubs.json b/docs/json/sonarr/cf/anime-web-tier-02-top-fansubs.json index 27fa665e8..49d6bc1d4 100644 --- a/docs/json/sonarr/cf/anime-web-tier-02-top-fansubs.json +++ b/docs/json/sonarr/cf/anime-web-tier-02-top-fansubs.json @@ -174,7 +174,7 @@ "negate": false, "required": false, "fields": { - "value": "\\[tenshi\\]|-tenshi\\b" + "value": "\\[tenshi\\]|-tenshi$" } } ] diff --git a/docs/json/sonarr/cf/dubs-only.json b/docs/json/sonarr/cf/dubs-only.json index ed73822d1..b673ca07a 100644 --- a/docs/json/sonarr/cf/dubs-only.json +++ b/docs/json/sonarr/cf/dubs-only.json @@ -48,7 +48,7 @@ "negate": false, "required": false, "fields": { - "value": "^(?!.*Dual[-_. ]?Audio).*\\bKS\\b" + "value": "^(?!.*(dual[ ._-]?audio|[\\[(]dual[\\]]|(JA|ZH)\\+EN|EN\\+(JA|ZH))).*\\bKS\\b" } }, { From f52ca4bdccd9328e55a9dcceaab3b3268c3d7f8d Mon Sep 17 00:00:00 2001 From: TRaSH Date: Tue, 30 Apr 2024 22:44:22 +0200 Subject: [PATCH 12/26] chore(guide): fix exposed comment due to space after `!` (#1906) --- docs/Radarr/Radarr-collection-of-custom-formats.md | 2 +- docs/Sonarr/sonarr-collection-of-custom-formats.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Radarr/Radarr-collection-of-custom-formats.md b/docs/Radarr/Radarr-collection-of-custom-formats.md index 2535ccdba..11e490176 100644 --- a/docs/Radarr/Radarr-collection-of-custom-formats.md +++ b/docs/Radarr/Radarr-collection-of-custom-formats.md @@ -540,7 +540,7 @@ We've made 3 guides related to this. --8<-- "includes/cf-descriptions/dv.md" - + ??? example "JSON - [Click to show/hide]" diff --git a/docs/Sonarr/sonarr-collection-of-custom-formats.md b/docs/Sonarr/sonarr-collection-of-custom-formats.md index c8810e1bb..f81160be2 100644 --- a/docs/Sonarr/sonarr-collection-of-custom-formats.md +++ b/docs/Sonarr/sonarr-collection-of-custom-formats.md @@ -541,7 +541,7 @@ We've made 3 guides related to this. --8<-- "includes/cf-descriptions/dv.md" - + ??? example "JSON - [Click to show/hide]" From b31230d8392a76eb9a73040cb2a303d69e03a5ec Mon Sep 17 00:00:00 2001 From: bokkoman Date: Tue, 30 Apr 2024 22:47:27 +0200 Subject: [PATCH 13/26] update(syno/compose): add prowlarr to default (#1902) Update Synology.md Added prowlarr to default compose. Made sure this is reflected in the guide. --- docs/Hardlinks/How-to-setup-for/Synology.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/Hardlinks/How-to-setup-for/Synology.md b/docs/Hardlinks/How-to-setup-for/Synology.md index 0deab8018..99704e6d1 100644 --- a/docs/Hardlinks/How-to-setup-for/Synology.md +++ b/docs/Hardlinks/How-to-setup-for/Synology.md @@ -163,7 +163,7 @@ Your application data will be stored in the `docker` share in the folder called Create these folders with command below, or create them in File Station manually. ```bash -mkdir -p /volume1/docker/appdata/{radarr,sonarr,bazarr,plex,pullio} +mkdir -p /volume1/docker/appdata/{radarr,sonarr,bazarr,plex,prowlarr,pullio} ``` You can add your own subfolders for your download client(s) using the command above, by adding the name to the command. @@ -177,6 +177,7 @@ docker ├── sonarr ├── bazarr ├── plex + ├── prowlarr ├── pullio ├── (your download client, i.e. nzbget; sabnzbd; qbittorrent) └── (other applications) @@ -210,6 +211,7 @@ This docker-compose file will have the following docker containers included. - Sonarr - Bazarr (Subtitle searcher and downloader) - Plex + - Prowlarr (indexer/tracker manager) ``` What's not included (and where are the download clients?). From fc9d692f5b30f47e80fef867d1e9cb9167a8d6f6 Mon Sep 17 00:00:00 2001 From: TRaSH Date: Tue, 30 Apr 2024 23:04:40 +0200 Subject: [PATCH 14/26] # 2024-04-30 21:00 --- docs/updates.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/updates.txt b/docs/updates.txt index 8aa46fe5a..f9efbcb5e 100644 --- a/docs/updates.txt +++ b/docs/updates.txt @@ -1,3 +1,19 @@ +# 2024-04-30 21:00 +- [feat(anime): Updating various CFs to fix issues](https://github.com/TRaSH-Guides/Guides/pull/1903) +- [feat(Synology): Simplify Synology Guide](https://github.com/TRaSH-Guides/Guides/pull/1876) +- [fix(guide): Fix Optional UHD include error](https://github.com/TRaSH-Guides/Guides/pull/1878) +- [fix(guide): unRAID Mover and qBittorrent - Remove option to edit script for mover.old](https://github.com/TRaSH-Guides/Guides/pull/1889) +- [fix(starr): DD+ word boundaries](https://github.com/TRaSH-Guides/Guides/pull/1892) +- [fix(starr): DTS-X CF mismatching](https://github.com/TRaSH-Guides/Guides/pull/1863) +- [fix(starr): match AC-3 as DD](https://github.com/TRaSH-Guides/Guides/pull/1899) +- [fix(starr): Prevent double scoring DD+ and DD+ Atmos](https://github.com/TRaSH-Guides/Guides/pull/1887) +- [fix(starr): TheUpscaler not matching](https://github.com/TRaSH-Guides/Guides/pull/1864) +- [style(Bazarr): add missing (Sonarr) for Bazarr Setup-Guide](https://github.com/TRaSH-Guides/Guides/pull/1898) +- [update(cf/hbomax): adds capturing hbomax (without separator)](https://github.com/TRaSH-Guides/Guides/pull/1895) +- [update(imax-descriptions): language and descriptions around imax(e)](https://github.com/TRaSH-Guides/Guides/pull/1879) +- [update(sonarr): remove NERO from LQ](https://github.com/TRaSH-Guides/Guides/pull/1884) +- [update(syno/compose): add prowlarr to default](https://github.com/TRaSH-Guides/Guides/pull/1902) + # 2024-04-07 09:35 - [feat(guide): **NEW** Plex Guide what does my media player support](https://github.com/TRaSH-Guides/Guides/pull/1868) From aac28d33450dda9990f88f73d5f547815ec163b8 Mon Sep 17 00:00:00 2001 From: TRaSH Date: Thu, 2 May 2024 20:08:56 +0200 Subject: [PATCH 15/26] chore(guides): remove Sonarr v3 guides (#1909) * chore(guides): remove sonarr v3 guides * Update docs/Sonarr/sonarr-v3-eol.md Co-authored-by: yammes08 <111231042+yammes08@users.noreply.github.com> --------- Co-authored-by: yammes08 <111231042+yammes08@users.noreply.github.com> --- docs/Sonarr/.pages | 3 - .../Sonarr-Release-Profile-RegEx-Anime.md | 648 ----------------- docs/Sonarr/Sonarr-Release-Profile-RegEx.md | 674 ------------------ docs/Sonarr/sonarr-v3-eol.md | 3 + includes/sonarrv3-eol.md | 1 - mkdocs.yml | 2 + 6 files changed, 5 insertions(+), 1326 deletions(-) delete mode 100644 docs/Sonarr/Sonarr-Release-Profile-RegEx-Anime.md delete mode 100644 docs/Sonarr/Sonarr-Release-Profile-RegEx.md create mode 100644 docs/Sonarr/sonarr-v3-eol.md delete mode 100644 includes/sonarrv3-eol.md diff --git a/docs/Sonarr/.pages b/docs/Sonarr/.pages index 08705172d..edf59f95d 100644 --- a/docs/Sonarr/.pages +++ b/docs/Sonarr/.pages @@ -9,7 +9,4 @@ nav: - How to setup Quality Profiles (French): sonarr-setup-quality-profiles-french-en.md - Collection of Custom Formats: sonarr-collection-of-custom-formats.md - Remote Path Mappings explained: Sonarr-remote-path-mapping.md - - Sonarr v3 (Legacy): - - Release Profile RegEx (WEB-DL): Sonarr-Release-Profile-RegEx.md - - Release Profile RegEx (Anime): Sonarr-Release-Profile-RegEx-Anime.md - Tips diff --git a/docs/Sonarr/Sonarr-Release-Profile-RegEx-Anime.md b/docs/Sonarr/Sonarr-Release-Profile-RegEx-Anime.md deleted file mode 100644 index 7a1ff2c2f..000000000 --- a/docs/Sonarr/Sonarr-Release-Profile-RegEx-Anime.md +++ /dev/null @@ -1,648 +0,0 @@ -{! include-markdown "../../includes/sonarrv3-eol.md" !} - -# Release Profile RegEx (Anime) - -!!! note - This guide is created and maintained by [Visorask/Visorak](https://github.com/Visorask) - - It's recommended to run two Sonarr instances. One for Anime and one for normal tv shows, or you can make use of tags. - - Being that release profiles are global without the use of a tag. - -## Dual-Audio Regex - -Having tested most of these settings, they work pretty well, but Anime is a fickle beast to toy with so be warned. - ---- - -## Anime Delete - -??? tip "If you have issues with extra files being downloaded like NCED or NCOP" - - If you have issues with Sonarr picking up a bunch of: - - - NCED - - NCOP - - Music Videos - - OP's - - Then this script (linux based only) will delete these files and get rid of them and you don't have to worry about them cluttering up your Auto or Manual import process. - - ```bash - #!/usr/bin/env bash - - # Set the following location to your completed download location for Anime. - # Usually one of the following paths: - # Dockers => /data/{usenet|torrents}/anime - # Cloudbox => /mnt/local/downloads/nzbs/nzbget/completed/sonarranime - location="/your/download/path/here" - - find $location -type f \( -iname "*op[0-9]*" -o -iname "*nced*" -o -iname "*ncop*" -o -iname "*music video*" \) -exec rm -rf {} \; - ``` - - This script will be called through a custom connection in Sonarr. - - 1. Copy the contents of the script into whatever filepath Sonarr has access to (`/config/app/` or `/appdata/sonarr/scripts`) - 1. Edit the `location="/your/download/path/here"` and make sure it's in quotes. - 1. Then save it and chmod +x the script. - 1. In Sonarr go to `Settings` => `Connect` => Click on the `+` Symbol => and select `Custom Script` - 1. Change Name to whatever you like. - 1. Select `On Grab` and `On Import`. - 1. Click the Folder icon or type in the path to the script you chose earlier. - - ![!rpa-customscript](images/rpa-customscript.png) - - Now when you download or import any files the script will run and clear out those files that you most likely won't use and if you want them well this script isn't for you. - ---- - -## Media Management - -!!! note - - There are a few settings which make life a lot easier when tracking down and keeping certain information for your Anime and with tweaks to make it work better with [HamaAgent](https://github.com/ZeroQI/Hama.bundle){:target="_blank" rel="noopener noreferrer"} for Plex. - -### Suggested naming scheme - -For this I used the [Sonarr Recommended naming scheme](/Sonarr/Sonarr-recommended-naming-scheme/#anime-episode-format){:target="_blank" rel="noopener noreferrer"} with only a small change for a formatting error to be fixed and the `Series Folder Format` for easier matching. - -#### Anime Episode Format - -Has all necessary information and a little extra if you needed to rebuild. - -```bash -{Series TitleYear} - S{season:00}E{episode:00} - {absolute:000} - {Episode CleanTitle} [{Preferred Words }{Quality Full}]{[MediaInfo VideoDynamicRange]}[{MediaInfo VideoBitDepth}bit]{[MediaInfo VideoCodec]}[{Mediainfo AudioCodec} { Mediainfo AudioChannels}]{MediaInfo AudioLanguages}{-Release Group} -``` - -??? abstract "RESULTS:" - - Single Episode: - - `The Series Title! (2010) - S01E01 - 001 - Episode Title 1 [AMZN WEBDL-1080p v2][HDR][10bit][x264][DTS 5.1][FLAC][JA]-RlsGrp` - - Multi Episode: - - `The Series Title! (2010) - S01E01-E02-E03 - 001-002-003 - Episode Title [AMZN WEBDL-1080p v2][HDR][10bit][x264][DTS 5.1][FLAC][JA]-RlsGrp` - -#### Series Folder Format - -Adding year back in with tvdb id allows matching to be correct. Thanks salty. - -```bash -{Series TitleYear} [tvdb-{TvdbId}] -``` - -RESULT: - -`The Series Title! (2010) [tvdb-12345]` - -#### Season Folder Format - -The only one real option to use in my opinion. - -```bash -Season {season:00} -``` - -RESULT: - -`Season 01` - -#### Multi-Episode Style - -```bash -Prefixed Range -``` - -RESULTS: - -![results](images/results.png) - -??? success "Example" - - ![!Example image of above](images/rpa-mediamanage.png) - ---- - -## Quality Profile - -We need to add `HDTV-1080p` and `Bluray-1080p` into the same group as `WEBDL-1080p` and `WEBRip-1080p` so that it will download correctly and not upgrade past HDTV-1080P if Preferred Words does not allow it. - -![!rpa-quality-profile-group](images/rpa-quality-profile-group.png) - ---- - -## Indexers - -We need to add the Anime Categories to our indexers otherwise this all won't work very well. - -??? success "Example" - - 1. We need to open `Settings -> Indexers` - 1. Select the Indexer(s) you would like to use for `Anime` - 1. Select the dropdown for `Anime Categories`. - ![!rpa-indexer-1](images/rpa-indexer-1.png) - 1. Select the `Anime` category. - ![!rpa-indexer-2](images/rpa-indexer-2.png) - 1. Click outside the pop-up modal but inside the `Add Indexer` modal. - ![!rpa-indexer-3](images/rpa-indexer-3.png) - ---- - -!!! note - - Check mark `Include Preferred when Renaming` where applicable and add `{Preferred Words}` to your renaming scheme else you could get a download loop issues!!! - -## Release Profiles - -!!! note - We're going to make use of **2** separate release profiles. - -### First Release Profile - - -!!! tip - **DO** Check mark `Include Preferred when Renaming` on this release profile. - ![!rpa-release-sources-1](images/rpa-release-sources-1.png) - -#### Multi-Audio - -Add this to your Preferred with a score of **[500]** - -```bash -/(multi[ ._-]?audio)/i -``` - -#### Dual-Audio - -Add this to your Preferred with a score of **[0]**. This is for renames only and that's why it is at **0**. It is also added in the second profile. This one is to ensure that the preferred words get added. - -```bash -/(dual[ ._-]?audio)/i -``` - -#### Optional (uncut|unrated|uncensored) - -Add this to your Preferred with a score of **[100]/[-10000]** - -If you would like it to be priority then set to **100**. If you do not want uncensored set it to **-10000**. If you don't care either way just leave it out. The reasoning behind only **100** is so that it doesn't trump other release further up in the chain, this way it will trump maybe a couple releases, but not more. And **-10000** to hopefully put it at the bottom of any tier list if you don't want it. - -```bash -/(uncut|unrated|uncensored|\b(AT[-_. ]?X)\b)/i -``` - -!!! note - - When done it should look something like this: - ![!rpa-release-profile-1](images/rpa-release-profile-1.png) - ---- - -### Second Release Profile - - -!!! warning - **DO NOT** Check mark `Include Preferred when Renaming` - ![!rpa-release-sources-2](images/rpa-release-sources-2.png) - -#### Must Not Contain - -The reason most of these are added is due to their shitty quality or just in general are not as good as other stuff that is out there. This can be tweaked as needed. Let me know if you run into any issues here. You should be able to just copy paste these in one go. If there is a reason something shouldn't be here let me know and your logic and I will be open to adjusting. - -!!! tip - - If you would like `dub` releases then remove the last 2 lines and do not add them. - -```bash -/(\[EMBER\]|-EMBER\b|DaddySubs)/i, -/(BDMV|M2TS|\bSSA\b|\bVOSTFR\b|\bAbemaTV\b)/i, -/(CuaP|PnPSubs|ICEBLUE|SLAX|U3-Web)/i, -/(Raws-Maji|\bKRP\b|M@nI|Kanjouteki|PuyaSubs)/i, -/\b(Beatrice|ohys|Kawaiika|neko|daddy)[ ._-]?(raws)\b/i, -/\b(LowPower|Scryous)[ ._-]?(raws)\b/i, -/\b(NS|AREY|BDMV|BDVD|BJX|DKB|DP|TnF)\b/i, -/(Amb3r|DsunS|ExREN|\$tore-Chill)/i, -/(\[Hatsuyuki\]|-Hatsuyuki\b|\[Hitoku\]|-Hitoki\b)/i, -/(\[Foxtrot\]|-Foxtrot\b|HollowRoxas|\bMGD\b)/i, -/(JacobSwaggedUp|KEKMASTERS|\[Mites\]|-Mites\b)/i, -/(neoHEVC|Pantsu|\[Pao\]|-Pao\b|Plex Friendly)/i, -/(Rando235|RandomRemux|Reaktor|RightShiftBy2)/i, -/(\bSHFS\b|StrayGods|\bUQW\b|Yabai_Desu_Ne)/i, -/(YakuboEncodes|\b(WtF[ ._-]?Anime)\b)/i, -/((funi|eng(lish)?)_?dub|\bdub(bed)?\b)/i, -/(Golumpa|torenter69|KamiFS|KaiDubs)/i -``` - -#### Preferred - -!!! note - - Two lines in one grouping is just there for readability purposes but achieves the same result and score. - ---- - -Add this to your Preferred with a score of **[501]** - -!!! note - This is set to **501** so that it may jump one tier if need be, but not more. - -```bash -/dual[ ._-]?audio|EN\+JA|JA\+EN/i -``` - ---- - -!!! tip - These next few are optional, but they are here to move releases up over lower tiers of `1080/720p` or `WEB-DL/Blu-Ray`. Will add another note like this to end the optional section. - ---- - -Add this to your Preferred with a score of **[100]** - -!!! note - We are adding this as **100** so that any unknown `Blu-Ray` can jump tiers inside the Subs categories but not interfere with any tiers above. - -```bash -/\b(?:(Blu-?Ray|BDMux|BD(?!$))|(B[DR]Rip))(?:\b|$|[ .])/ix -``` - ---- - -Add this to your Preferred with a score of **[15]** - -```bash -/\b(WEB[-_. ]?DL|WebHD|[. ]WEB[. ](?:[xh]26[45]|DDP?5[. ]1)|[. ](?-i:WEB)$|\d+0p(?:WEB-DLMux|\b\s\/\sWEB\s\/\s\b))/ix -``` - ---- - -Add this to your Preferred with a score of **[10]** - -```bash -/(Web-?Rip|WEBMux)/ix -``` - ---- - -Add this to your Preferred with a score of **[5]** - -```bash -/\b(?:(1080p|1920x1080|1440p|FHD|1080i|4kto1080p))\b/i -``` - -!!! tip - This is the end of the optional section. - -Add this to your Preferred with a score of **[4000]** - -BluRay-Remux / Dual-Audio / 1st Tier - -```bash -/(deanzel|\bZR\b|\bCTR\b|\bSCY\b|\bMK\b|TTGA)/i -``` - -```bash -/(\bShir\b|LostYears|BluDragon|KAWAiREMUX)/i -``` - -```bash -/(\[AC\]|-AC$|ShadyCrab|Rasetsu|Raizel|Dragon-Releases)/i -``` - -```bash -/(\[Spark\]|-Spark\b|\bREVO\b|\bSRLS\b|ANThELIa)/i -``` - -```bash -/(\[Vanilla\]|-Vanilla\b|\bAP\b)/i -``` - ---- - -Add this to your Preferred with a score of **[3750]** - -BluRay / Dual-Audio / Special (Releases they have are in between below releases and remuxes above.) - -```bash -/(E[.-]N[.-]D)/i -``` - ---- - -Add this to your Preferred with a score of **[3500]** - -BluRay / Dual-Audio / 1st Tier - -```bash -/(\bHAiKU\b|Exiled-Destiny|\b(E-D)\b|Koten[ ._-]Gars)/i -``` - -```bash -/(\[GHOST\]|-GHOST\b|\[NPC\]|-NPC\b|\bCBM\b)/i -``` - -```bash -/(\bKH\b|\bCBT\b|\[naiyas\]|-naiyas\b|ShowY|Kametsu|\bPn8\b|Hark0N)/i -``` - ---- - -Add this to your Preferred with a score of **[3000]** - -BluRay / Dual-Audio / Scene|P2P Groups - -```bash -/(\bDHD\b|RedBlade|TENEIGHTY|WaLMaRT)/i -``` - -```bash -/(\bBMF\b|\[STRiFE\]|-STRiFE\b)/i -``` - -```bash -/(MKVULTRA|iAHD|ANiHLS)/i -``` - ---- - -Add this to your Preferred with a score of **[2500]** - -BluRay / Dual-Audio / 2ndd Tier - -```bash -/(\[YURASUKA\]|-YURASUKA\b|karios|Arukoru)/i -``` - -```bash -/(\bRH\b|\[Prof\]|-Prof\b)/i -``` - ---- - -Add this to your Preferred with a score of **[2000]** - -WebSource / Dual|Multi-Audio - -```bash -/(DragsterPS)/i -``` - ---- - -Add this to your Preferred with a score of **[1500]** - -WebSource / Dual-Audio - -```bash -/(xPearse|\bMCR\b|\bKS\b|KiyoshiStar)/i -``` - ---- - -Add this to your Preferred with a score of **[1000]** - -DVD / Dual-Audio - -```bash -/(\b(A-L)\b)/i -``` - ---- - -Add this to your Preferred with a score of **[300]** - -Subs with multi such as German, French , Spanish, Italian, Russian, Arabic, Portuguese and English - -```bash -/(Erai-raws|KAN3D2M)/i -``` - ---- - -Add this to your Preferred with a score of **[250]** - -Subs - -```bash -/(HorribleSubs|SubsPlease|SallySubs)/i -``` - ---- - -Add this to your Preferred with a score of **[200]** - -Subs 2nd Tier - -```bash -/(\[Mysteria\]|-Mysteria\b|Asenshi)/i -``` - -```bash -/(\[meta\]|-meta\b|BlueLobster)/i -``` - ---- - -Add this to your Preferred with a score of **[150]** - -Subs 3rd Tier - -```bash -/(\bGJM\b|kBaraka)/i -``` - ---- - -Add this to your Preferred with a score of **[100]** - -FanSubs 1st Tier - -```bash -/(\bCH\b|\bFFF\b|Licca|Soldado|SNSbu)/i -``` - -```bash -/(Coalgirls|BlurayDesuYo|DameDesuYo|\bPAS\b)/i -``` - ---- - -Add this to your Preferred with a score of **[50]** - -FanSubs 2nd Tier - -```bash -/(\[Orphan\]|-Orphan\b|\[Yabai\]|-Yabai\b|\bNii-sama\b)/i -``` - -```bash -/(\[Doki\]|-Doki\b|\[Chihiro\]|-Chihiro\b|Final8)/i -``` - -```bash -/(\[tenshi\]|-tenshi\b|SHiN-gx)/i -``` - ---- - -Add this to your Preferred with a score of **[25]** - -FanSubs 3rd Tier - -```bash -/(AkihitoSubs|\bASW\b|Commie)/i -``` - ---- - -!!! note - - These are extra parameters that can help and are not needed but are nice to have. They are set low mainly to supercede themselves and not interfere with other releases. - -Add this to your Preferred with a score of **[1]** - -Adds Hi10|Hi10p into a match. Prefers this over some erroneous matches. - -```bash -/(10.?bit|hi10p)/i -``` - ---- - -Add this to your Preferred with a score of **[1]** - -Adds version due to anime groups sometimes fixing issues with their releases. - -```bash -/\b(v2)\b/i -``` - ---- - -Add this to your Preferred with a score of **[2]** - -```bash -/\b(v3)\b/i -``` - ---- - -Add this to your Preferred with a score of **[3]** - -```bash -/\b(v4)\b/i -``` - ---- - -!!! note - - This section can be controversial but most of these releases are micro/mini encodes or crappy quality. I personally add them into the do not want section but I will leave them here with negative values so you can still grab them if all else fails. - -Add this to your Preferred with a score of **[-10000]** - -Sub-Par Releases 1st Tier (Re-encoded to crap or really small filesizes) (Little less worse than the rest) - -```bash -/(\[Judas\]|-Judas|\[Cleo\]|-Cleo)/i -``` - -```bash -/(AnimeRG|bonkai77|URANiME)/i -``` - ---- - -Add this to your Preferred with a score of **[-15000]** - -Sub-Par Releases 2nd Tier (Re-encoded to crap or really small filesizes) (Seperated onto separate lines for readability) - -```bash -/(\[Pixel\]|-Pixel\b\[EDGE\]|-EDGE\b|\[Ranger\]|-Ranger\b)/i -``` - -```bash -/(SpaceFish|DeadFish|\bDB\b|Man\.K|\bHR\b)/i -``` - -```bash -/(BakedFish|N[eo][wo]b[ ._-]?Subs|\bAnime[ .]Time\b)/i -``` - -```bash -/(AnimeKaizoku|\[Kaizoku\]|-Kaizoku\b|\bCBB\b|phazer11)/i -``` - -```bash -/(iPUNISHER|MiniTheatre|MiniFreeza|Mr\.Deadpool)/i -``` - -```bash -/(NemDiggers|Project-gxs|youshikibi)/i -``` - -```bash -/(\bMD\b|Pog42|mdcx)/i -``` - -```bash -/(A-Destiny|TOPKEK|\bUwU\b|DARKFLiX)/i -``` - -```bash -/(\[Maximus\]|-Maximus\b|\[224\]|-224\b)/i -``` - -```bash -/(\[Harunatsu\]|-Harunatsu\b)/i -``` - -```bash -/(\[Davinci\]|-Davinci\b)/i -``` - -??? tip "If you would like the above to be in DO NOT WANT in an easy format here it is." - - ```bash - /(\[Pixel\]|-Pixel\b\[EDGE\]|-EDGE\b|\[Ranger\]|-Ranger\b)/i, - /(SpaceFish|DeadFish|\bDB\b|Man\.K|\bHR\b)/i, - /(BakedFish|N[eo][wo]b[ ._-]?Subs|\bAnime Time\b)/i, - /(AnimeKaizoku|Kaizoku|\bCBB\b|phazer11)/i, - /(iPUNISHER|MiniTheatre|MiniFreeza|Mr\.Deadpool)/i, - /(NemDiggers|Project-gxs|youshikibi)/i, - /(\bMD\b|Pog42|mdcx)/i, - /(A-Destiny|TOPKEK|\bUwU\b|DARKFLiX)/i, - /(\[Maximus\]|-Maximus\b|\[224\]|-224\b)/i, - /(\[Harunatsu\]|-Harunatsu\b)/i, - /(\[Davinci\]|-Davinci\b)/i - ``` - -!!! note - - When done it should look something like this: - ![!rpa-release-profile-2](images/rpa-release-profile-2.png) - ---- - -### Completed - -When completed your Release Profiles should look like this: - -![!rpa-release-profile-3](images/rpa-release-profile-3.png) - -### Acknowledgements - -Most of my information and knowledge came from: - -- Kaiser (Guidance on anime groups) - -- rg9400 (Guidance on regex fixes, anime groups and general knowledge share.) - -- Drazzilb (Guidance on regex fixes, anime groups and general knowledge share.) - -- [TRaSH](https://trash-guides.info/) (For allowing me to utilize his website for my guide and general knowledge share.) - -Thanks a bunch!! - -{! include-markdown "../../includes/support.md" !} - diff --git a/docs/Sonarr/Sonarr-Release-Profile-RegEx.md b/docs/Sonarr/Sonarr-Release-Profile-RegEx.md deleted file mode 100644 index aa851af89..000000000 --- a/docs/Sonarr/Sonarr-Release-Profile-RegEx.md +++ /dev/null @@ -1,674 +0,0 @@ -{! include-markdown "../../includes/sonarrv3-eol.md" !} - -# Release Profile RegEx (WEB-DL) - -Sonarr V3 has a great feature called Release Profile. -With this option you can fine tune your preference. - -The Release profile that we're going to use for this example is mainly to prefer P2P releases over Scene releases. (Scene releases are still being downloaded, but replaced once an upgrade is found.) - -!!! danger "" - **If you don't care about quality then stop reading and see if the other tutorials are helpful for you.** - -??? question "FAQ - [Click to show/hide]" - - ## FAQ - - **Q: Why do you only have a release profile for WEB-DL?** - - A: I only do WEB-DL my self for TV shows because in my opinion WEB-DL is the sweet spot between quality and size and you often don't see big differences anyway for TV shows. (Except for shows like GOT, Vikings, etc) - - **Q: Why do you prefer P2P groups over scene groups?** - - A: Scene groups always release in a rush to bring it out as fast as possible. - - So I noticed often that I got Repacks/Proper releases from them or from different groups and quality. - P2P releases are a bit smarter and work sort of together by not doing the same release. - Also, I noticed that with some scene releases the 5.1 audio was stripped out or converted to AAC audio. - - In my opinion the P2P releases are of better quality. - There's one scene group that does bring out quality releases `-deflate/-inflate`. - - **Q: Why do I see so many repacks/propers of Amazon WEB-DLs lately?** - - A: A large portion of Amazon WEB-DLs in the last week have only had 192Kbps DD+5.1, because that's all Amazon made available initially. - The proper 640Kbps DD+5.1 audio might appear a few hours later or a few months, but when they get updated, the episodes will be REPACKED. - - **Q: Why did you remove all the scene groups?** - - A: I decided to redo the Release Profile to make it easier for me and the end user to update/manage the Release Profile. I decided not to add the scene groups anymore (and also removing the current ones). Why? Lately I noticed a lot of popup scene releases meaning we need to update often. - - With this it also means all scene and (yet) unknown groups will be getting a score of `0` and not `-50`. - - I will still keep a eye on them and add the Low Quality Groups to the `-100` score and when I find a new P2P group I will add them, resulting in less updates and a more accurate upgrade. - ------- - -## Basics - -This guide is based on WEBDL (Read the [FAQ](#faq) why) that's why we're going to create a quality profile based on WEBDL. - -`Settings` => `Profiles` - -![!cf-settings-profiles](images/cf-settings-profiles.png) - -Select the profile that you want to use/prefer. - -![!cf-quality-profiles](images/cf-quality-profiles.png) - -![Select quality](images/rp-profile-selected.png) - -!!! tip - Starting from 2010 you will be able to find almost anything as WEBDL, - - 2000-2010 you will only find a few shows as WEBDL in that case you might want to enable `HDTV` and or `720p`. - - If you want 2160p WEBDL then choose 2160p WEBDL and add the HDR and/or DV regex, 2160p without HDR/DV has no real benefits !!! - ------- - -{! include-markdown "../../includes/merge-quality/sonarr-current-logic.md" !} - ------- - -## Propers and Repacks - -First we're need to make sure a P2P release isn't being replaced by a Scene Repack/Proper release! - -![!rp-settings-media-management-proper](images/rp-settings-media-management-proper.png) - -Go to `Settings` => `Media Management` -We´re going to set it to `Do not Prefer`. - -Then we navigate to `Settings` => `Profiles` and click the plus sign. - -![!rp-settings-profiles](images/rp-settings-profiles.png) - -You will get a popup screen that will look like this: - -![!rp-release-profile](images/rp-release-profile.png) - -1. `Must Contain` => add words that the release name **MUST HAVE!** - -1. `Must Not Contain` => add words that the release name **MUST NOT HAVE OR IT WILL BE REJECTED!** - -1. `Preferred` => add words you prefer with a certain score. The release will be preferred based on each term's score. - -1. `Include Preferred when Renaming` => When you add `{Preferred Words}` to your renaming scheme it will add this info. - -1. `Indexers` => Specify what indexer the profile applies to. - -1. `Tags` => create a tag so this is only used by shows that you give this tag to or else it's global. - ------- - -!!! info - - The Number between the **[**brackets**]** in the following release profiles are the scores the release name will get during an automatic and manual search and with the use of the scores some releases will be preferred over others and even upgraded. - - The Number between **(**brackets**)** in the following release profiles are referring to the location where you should add this regex in the release profile corresponding the screenshot above. - -!!! warning "We're going to make use of four separate release profiles." - ------- - -## Profile 1 - - - -### Release Sources (Streaming Service) - -!!! note - - Check mark `Include Preferred when Renaming` and add `{Preferred Words}` to your renaming scheme or else you could get download loop issues!!! - - What it does: - - When enabled, the block with the [Release Source (Streaming Service)](#release-source-streaming-service) in it are then added to the file name which fixes any loops due to Sonarr seeing a new NF rip when an AMZN rip is found. - Probably doesn’t happen if cutoff is met, but for anything that is unmet or any forced searches it results in a loop because NF is not in Sonarr’s copy so it upgrades, and loops. - - Enabling the include in preferred words for AMZN and adding that to the file name fixes that. - - Example of a naming scheme for series: - - Can be found [HERE](/Sonarr/Sonarr-recommended-naming-scheme/){:target="_blank" rel="noopener noreferrer"} - -Add this to your `Preferred (3)` with a score of [100] - -```bash -/\b(atvp|aptv|Apple TV\+)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i -``` - -```bash -/\b(dsnp|dsny|disney|Disney\+)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i -``` - -Add this to your `Preferred (3)` with a score of [90] - -```bash -/\b((? - -### P2P Groups + Repack/Proper - -!!! warning "DO NOT Check mark `Include Preferred when Renaming` :bangbang:" - -Add this to your `Preferred (3)` with a score of [1700] - -```bash -/(-ABBIE|-AJP69|-APEX|-CasStudio|CRFW|-CtrlHD|-FLUX|\bHONE|-KiNGS|-monkee|NOSiViD|-NTb|-NTG|-PAXA|-PEXA|-QOQ|-RTN|-SiC|T6D|-TOMMY|-ViSUM|-XEPA)\b/i -``` - -Add this to your `Preferred (3)` with a score of [1650] - -```bash -/(3CTWeB|BLUTONiUM|-BTW|-Chotab|-Cinefeel|-CiT|-CMRG|Coo7|-dB|-DEEP|-END|-ETHiCS|-FC|-Flights|-GNOME|-iJP|-iKA|-iT00NZ|-JETIX|-KHN|-KiMCHI|-LAZY|-MZABI|-NPMS|-NYH|-orbitron|playWEB|PSiG|-ROCCaT|RTFM|-SA89|-SDCC|-SIGMA|-SMURF|-SPiRiT|-TEPES|-TVSmash|-WELP)\b/i -``` - -Add this to your `Preferred (3)` with a score of [1600] - -```bash -/(-DRACULA|SLiGNOME|T4H|-ViSiON|SwAgLaNdEr|-NINJACENTRAL)\b/i -``` - -Add this to your `Preferred (3)` with a score of [1600] [^1] - -```bash -/(-deflate|-inflate)\b/i -``` - -Add this to your `Preferred (3)` with a score of [7] - -```bash -/(repack3)/i -``` - -Add this to your `Preferred (3)` with a score of [6] - -```bash -/(repack2)/i -``` - -Add this to your `Preferred (3)` with a score of [5] - -```bash -/\b(repack|proper)\b/i -``` - -!!! danger "Caution" - Don't forget to click on `SAVE` after you've added everything you want to the release profile :bangbang: - -??? success "example - [Click to show/hide]" - - !!! warning - These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add. - - - Always follow the data described in the guide (with the copy paste/option at the end). - - If you got any questions or aren't sure just click the chat badge to join the Discord Channel where you can ask your questions directly. - - [![Discord chat](https://img.shields.io/discord/492590071455940612?style=for-the-badge&color=4051B5&logo=discord)](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"} - - ![!rp-p2p-groups](images/rp-p2p-groups.png) - ------- - -## Profile 3 - - - -### Low Quality Groups - -!!! warning "DO NOT Check mark `Include Preferred when Renaming` :bangbang:" - -Add this to your `Preferred (3)` with a score of [-10000] - -```bash -/(-BRiNK|-CHX|-CTFOH|-d3g|-EVO|-FGT|-GHOSTS|-HiQVE|-iNTENSO|JFF|MeGusta|-NERO|nhanc3|Pahe\.ph|Pahe\.in|Pahe|PSA|TBS|-TG|-VIDEOHOLE|-worldmkv|-XLF|-Zero00)\b/i -``` - -!!! danger "Caution" - Don't forget to click on `SAVE` after you've added everything you want to the release profile :bangbang: - -??? success "example - [Click to show/hide]" - - !!! warning - These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add. - - - Always follow the data described in the guide (with the copy paste/option at the end). - - If you got any questions or aren't sure just click the chat badge to join the Discord Channel where you can ask your questions directly. - - [![Discord chat](https://img.shields.io/discord/492590071455940612?style=for-the-badge&color=4051B5&logo=discord)](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"} - - ![!rp-lq-groups](images/rp-lq-groups.png) - ------- - -## Profile 4 - -### Optionals - -!!! warning "DO NOT Check mark `Include Preferred when Renaming` :bangbang:" - -!!! danger "Caution" - These optionals are optional because they should only be added/used if you got a certain use case for it, if you don't understand what the optional is for then you probably don't need it :bangbang: - - :bangbang: **Except the `Golden Rule` this one is actually a must even that it's added in the optional section** :bangbang: - - If you see certain optional with a positive score and you actually don't want them just add them with a negative score !!! - -#### Golden rule - -!!! warning "" - :bangbang: This one is actually a must even that it's added in the optional section :bangbang: - -??? question "Why the Must Not Contain entry - [Click to show/hide]" - - This one blocks/ignores 720/1080p releases that are (re-)encoded in x265. - - So why did I put `/^(?=.*(1080|720))(?=.*((x|h)[ ._-]?265|hevc)).*/i` as `Must Not Contain` and what does it do ? - - Why ? - - !!! quote - x265 is good for for 4k stuff or 1080p if they used the the remuxes as source. - If the media isn't source quality/remux, then there will be a loss of quality every time. - Also, once you go x265, typically that file is done. - It can't be changed to something else without a huge loss of quality. - - Something like 95% of video files are x264 and have much better direct play support. - If you have more than a couple users, - you will notice much more transcoding. - Just depends on your priorities. - - So basically if you are storage poor and just need to save space, use x265. - The catch is if you want best quality x265, you need source quality files, so you still have huge file sizes. - If you want maximum compatibility and the option to change your files to something else later, - then x264. - It's all really dependent on specific situations for different people - - It's a shame that most x265 groups microsize the releases or use the x264 as source what results in low quality releases. And the few groups that do use the correct source suffer from it. - - That's why I created my own golden rule. - - - 720/1080p => x264 - - 2160p/4k => x265 - -Add this to your `Must not contain (2)` - -```bash -/^(?=.*(1080|720))(?=.*((x|h)[ ._-]?265|hevc)).*/i -``` - -??? success "example - [Click to show/hide]" - - ![!rp-release-sources](images/rp-golden-rule.png) - ------- - -#### Optional - Prefer HDR - -Add this to your `Preferred (3)` with a score of [500] - -```bash -/\bHDR(\b|\d)/i -``` - ------- - -#### Optional - Prefer Dolby Vision - -Add this to your `Preferred (3)` with a score of [1500] - -```bash -/\b(dv|dovi|dolby[ .]?v(ision)?)\b/i -``` - ------- - -#### Optional - Dislike retags - -??? question "Explanation - [Click to show/hide]" - Use this only if you dislike renamed and retagged releases, some indexers/trackers are known to rename or add their own tags to the release name which could mess up your results or naming. - -Add this to your `Preferred (3)` with a score of [-10000] - -```bash -/(\[rartv\]|\[rarbg\]|\[eztv([ ._-]re)?\]|\[TGx\])/i -``` - -#### Optional - Dislike Obfuscated - -??? question "Explanation - [Click to show/hide]" - Use this only if you dislike Obfuscated releases, some indexers are known to rename or add their own tags/obfuscated name to the release name which could mess up your results or naming. - -Add this to your `Preferred (3)` with a score of [-10000] - -```bash -/(-4P|-4Planet|-AsRequested|-BUYMORE|-CAPTCHA|-Chamele0n|-GEROV|-iNC0GNiTO|-NZBGeek|-Obfuscated|-postbot|-Rakuv|-Scrambled|-WhiteRev|-WRTEAM|-xpost)\b/i -``` - ------- - -#### Optional - Dislike release ending: en - -Add this to your `Preferred (3)` with a score of [-10000] - -??? question "Explanation - [Click to show/hide]" - Some indexers are known to add extra useless info to the release name which could mess up your results or naming. - -```bash -/\s?\ben\b$/i -``` - ------- - -#### Optional - Dislike release containing: 1- - -??? question "Explanation - [Click to show/hide]" - Some indexers are known to add extra useless info to the release name which could mess up your results or naming. - - Matches any release that contains '1-' as prefix for Release Groups - -Add this to your `Preferred (3)` with a score of [-10000] - -```bash -/(? Preferred Words overrule season pack preference [Sonarr/Sonarr#3562](https://github.com/Sonarr/Sonarr/issues/3562){:target="_blank" rel="noopener noreferrer"} - -Add this to your `Preferred (3)` with a score of [15] - -```bash -/\bS\d+\b(?!E\d+\b)/i -``` - ------- - -##### .su season pack issue - -??? bug ".su season pack issue - [Click to show/hide]" - - When you see a error in Sonarr that looks somehow like the follow screenshot - - ![!rp-su-season](images/rp-su-season.png) - - Then there is only one way real way that always solves this issue. - create a new release profile specific for .su that uses the [Season regex](#optional-matches-season-packs-use-this-if-you-prefer-season-packs) as `Must not contain (2)` - - ![!rp-release-profile-block-season-su](images/rp-release-profile-block-season-su.png) - - !!! note - There is a [script](/NZBGet/scripts/#wtfnzb-renamer){:target="_blank" rel="noopener noreferrer"} for NZBGet that sometimes could help but it seems it doesn't always work. It also seems there is a work around for SABnzbd but i can't confirm being i'm not using Sab. - ------- - -#### Optional - Ignore Dolby Vision without HDR10 fallback - -??? question "Explanation - [Click to show/hide]" - - This is a RegEx that ignores DV that don't have the fallback to HDR10, What can results in playback issues like weird colors if you want to play it on a not Dolby Vision compatible setup. - -Add this to your `Must not contain (2)` - -```bash -/^(?!.*(HDR|HULU|REMUX))(?=.*\b(DV|Dovi|Dolby[- .]?V(ision)?)\b).*/i -``` - ------- - -#### Optional - Ignore The Group -SCENE - -??? question "Explanation - [Click to show/hide]" - - Seems plex ignores `-scene` because it thinks they are extra's. [SOURCE](https://github.com/squaresmile/Plex-Plug-Ins/blob/61eda8a775e198971dcf5088c4daf264a844736f/Scanners.bundle/Contents/Resources/Common/VideoFiles.py#L11){:target="_blank" rel="noopener noreferrer"} - -Add this to your `Must not contain (2)` - -```bash -/\b(-scene)\b/i -``` - ------- - -#### Optional - Ignore scene releases - -??? question "WHY ? - [Click to show/hide]" - - If you don't want to download so called scene releases. - -Add this to your `Must not contain (2)` - -```bash -/^(?!.*(web[ ]dl|-deflate|-inflate))(?=.*(\b\d{3,4}p\b).*([_. ]WEB[_. ])(?!DL)\b)|\b(-CAKES|-GGEZ|-GGWP|-GLHF|-GOSSIP|-NAISU|-KOGI|-PECULATE|-SLOT|-EDITH|-ETHEL|-ELEANOR|-B2B|-SPAMnEGGS|-FTP|-DiRT|-SYNCOPY|-BAE|-SuccessfulCrab|-NHTFS|-SURCODE|-B0MBARDIERS).*/i - -``` - -#### Optional - Ignore Bad Dual Audio Groups - -??? question "WHY ? - [Click to show/hide]" - - These groups take the original release, then they add their own preferred language (ex. Portuguese) as the main audio track (AAC 2.0), What results after renaming and FFprobe that the media file will be recognized as Portuguese AAC audio. It's a common rule that you add the best audio as first. - Also they often even rename the release name in to Portuguese. - -Add this to your `Must not contain (2)` - -```bash -/\b(-alfaHD|-BAT|-BNd|-C\.A\.A|-Cory|-EXTREME|-FF|-FOXX|-G4RiS|-GUEIRA|-N3G4N|-PD|-PTHome|-RiPER|-RK|-SiGLA|-Tars|-WTV|-Yatogam1|-YusukeFLA|-ZigZag)\b/i -``` - -#### Optional - Ignore AV1 - -??? question "WHY ? - [Click to show/hide]" - - - This is a new codec and you need modern devices that support it. - - We also had reports of playback/transcoding issues. - - No main group is actually using it (yet). - - It's better to ignore this new codec to prevent compatibility issues. - -Add this to your `Must not contain (2)` - -```bash -/\bAV1\b/i -``` - ------- - -### A little explanation of the scores and why - -- Scores [75]-[100] Release Source. -- Scores [1600]-[1800] P2P Groups. -- Scores [10-12] Give a repack/proper a higher score but don't trump P2P groups for a Scene fix. -- Scores [-10000] Retagged/Renames/Obfuscated releases. - - !!! danger "" - If you're getting often a error message like `Has the same filesize as existing file`, you might need to consider to remove the [-10000] - -- Scores [-10000] Groups that mess with the audio or add another preferred language. - -Optional => We've tested it and it worked for what we've tested it on, if it will work in your situation we don't know. - -If you notice something wrong just contact me and we will try to fix it or remove it. - -## Final Results - -When you've done it correctly it will look something like this. - -??? success "example - [Click to show/hide]" - - !!! warning - These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add. - - - Always follow the data described in the guide (with the copy paste/option at the end). - - If you got any questions or aren't sure just click the chat badge to join the Discord Channel where you can ask your questions directly. - - [![Discord chat](https://img.shields.io/discord/492590071455940612?style=for-the-badge&color=4051B5&logo=discord)](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"} - - ![!rp-profiles](images/rp-profiles.png) - ------- - -This list is made by collecting information from Sonarr Discord Channel, and personal testing and a few others that helped. - -So I want to thank everyone who helped to make this list possible, for privacy reasons I decided not to add the names/nick of the persons. - -If you want to be mentioned please message me on discord, including a link for proof to what part you want to be credited. - -!!! info - - Keep in mind this list will be a constant work in progress because I will be updating it when it's needed. - - So best to set a notification for updates for this page. - - Or use one of the 3rd Party Sync options that you can find [HERE](/Misc/trash-sync){:target="_blank" rel="noopener noreferrer"}. - ------- - -{! include-markdown "../../includes/support.md" !} - - -[^1]: - - The reason why this one gets positively scored is because it's the only quality scene group that exists (up until now). Scene groups don't add a streaming service to their release names, so the score is adjusted to take this into account. diff --git a/docs/Sonarr/sonarr-v3-eol.md b/docs/Sonarr/sonarr-v3-eol.md new file mode 100644 index 000000000..93d623325 --- /dev/null +++ b/docs/Sonarr/sonarr-v3-eol.md @@ -0,0 +1,3 @@ +# Sonarr v3 - End Of Life + +!!! warning "**Sonarr v3 - End Of Life**

As of December 30th 2023, Sonarr v4 has been officially released.
Sonarr v3 is therefore in End of Life status.
As v4 is now the only supported version of Sonarr, we have removed the Sonarr v3 guide.
We recommend that all users upgrade to Sonarr v4.

:bangbang: **Before updating to Sonarr v4** :bangbang:
it is recommended that you delete any existing Release Profiles

" diff --git a/includes/sonarrv3-eol.md b/includes/sonarrv3-eol.md deleted file mode 100644 index 9c9582394..000000000 --- a/includes/sonarrv3-eol.md +++ /dev/null @@ -1 +0,0 @@ -!!! warning "**Sonarr v3 - End Of Life**

As of December 30th 2023, Sonarr v4 has been officially released.
Sonarr v3 is therefore in End of Life status.
As v4 has now been released, there will be no further updates to the Sonarr v3 guide.
We recommend that all users upgrade to Sonarr v4.
This Sonarr v3 guide will be removed in a future guides update.

:bangbang: **Before updating to Sonarr v4** :bangbang:
it is recommended that you delete any existing Release Profiles

" diff --git a/mkdocs.yml b/mkdocs.yml index 6727b9e06..3b39039d3 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -95,6 +95,8 @@ plugins: # Sonarr redirects Sonarr/sonarr-setup-custom-formats.md: Sonarr/sonarr-setup-quality-profiles.md Sonarr/sonarr-setup-custom-formats-anime.md: Sonarr/sonarr-setup-quality-profiles-anime.md + Sonarr/Sonarr-Release-Profile-RegEx.md: Sonarr/sonarr-v3-eol.md + Sonarr/Sonarr-Release-Profile-RegEx-Anime.md: Sonarr/sonarr-v3-eol.md # How to old redirects How-to-setup-for/index.md: Hardlinks/How-to-setup-for/index.md How-to-setup-for/Docker.md: Hardlinks/How-to-setup-for/Docker.md From 44dad663ac11fa373b4fdb5aa91ab5acc9003ff1 Mon Sep 17 00:00:00 2001 From: nuxen Date: Thu, 2 May 2024 20:43:12 +0200 Subject: [PATCH 16/26] fix(guide): missing quote in unraid mover (#1910) --- .../Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md b/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md index cd483b960..d1bd5ea9f 100644 --- a/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md +++ b/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md @@ -188,7 +188,7 @@ Choose your method (select a tab) and copy/paste the script in the new window th /usr/local/emhttp/plugins/dynamix/scripts/notify -s "qBittorrent Mover" -d "qBittorrent Mover starting @ `date +%H:%M:%S`." echo "executing script to pause torrents and run mover." - /mnt/user/data/scripts/.venv/bin/python3 /mnt/user/data/scripts/mover.py --host ip:port" --user "your_user" --password "your_password" --days_from 0 --days_to 2 + /mnt/user/data/scripts/.venv/bin/python3 /mnt/user/data/scripts/mover.py --host "ip:port" --user "your_user" --password "your_password" --days_from 0 --days_to 2 echo "qbittorrent-mover completed and resumed all paused torrents." /usr/local/emhttp/plugins/dynamix/scripts/notify -s "qBittorrent Mover" -d "qBittorrent Mover completed @ `date +%H:%M:%S`." ``` From c20934176e42f9a029dad398a7c9eedcd1209554 Mon Sep 17 00:00:00 2001 From: nuxen Date: Fri, 3 May 2024 17:00:10 +0200 Subject: [PATCH 17/26] feat(starr): add ShieldBearer to LQ (#1911) --- docs/json/radarr/cf/lq.json | 9 +++++++++ docs/json/sonarr/cf/lq.json | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/docs/json/radarr/cf/lq.json b/docs/json/radarr/cf/lq.json index f382e1d40..ed296f5b1 100644 --- a/docs/json/radarr/cf/lq.json +++ b/docs/json/radarr/cf/lq.json @@ -645,6 +645,15 @@ "value": "^(Scene)$" } }, + { + "name": "ShieldBearer", + "implementation": "ReleaseGroupSpecification", + "negate": false, + "required": false, + "fields": { + "value": "^(ShieldBearer)$" + } + }, { "name": "STUTTERSHIT", "implementation": "ReleaseGroupSpecification", diff --git a/docs/json/sonarr/cf/lq.json b/docs/json/sonarr/cf/lq.json index 445cd476e..2c04297c1 100644 --- a/docs/json/sonarr/cf/lq.json +++ b/docs/json/sonarr/cf/lq.json @@ -150,6 +150,15 @@ "value": "^(SasukeducK)$" } }, + { + "name": "ShieldBearer", + "implementation": "ReleaseGroupSpecification", + "negate": false, + "required": false, + "fields": { + "value": "^(ShieldBearer)$" + } + }, { "name": "TBS", "implementation": "ReleaseGroupSpecification", From 057251a80da8288ca95a6f71b7b2f9fd9ab5d186 Mon Sep 17 00:00:00 2001 From: TRaSH Date: Sat, 4 May 2024 16:18:43 +0200 Subject: [PATCH 18/26] chore(guides): fix several broken/forgotten anchors (#1912) chore(guides): fix several broken/forgotten links --- docs/Downloaders/Deluge/Tips/Unraid-Mover.md | 2 +- ...-to-run-the-unRaid-mover-for-qBittorrent.md | 2 +- docs/Hardlinks/How-to-setup-for/Dockstarter.md | 2 +- .../sonarr-collection-of-custom-formats.md | 18 ++++++++++++++++++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/docs/Downloaders/Deluge/Tips/Unraid-Mover.md b/docs/Downloaders/Deluge/Tips/Unraid-Mover.md index 784b1270b..40e184247 100644 --- a/docs/Downloaders/Deluge/Tips/Unraid-Mover.md +++ b/docs/Downloaders/Deluge/Tips/Unraid-Mover.md @@ -94,7 +94,7 @@ You can choose one of the following 3 options (select a tab) to install `request First, you need to choose a location to start a new Python environment. !!! info - In the next steps, you will be asked to choose a [location to store the script](#copy-script-to-your-preferred-location), try to be consistent. + In the next steps, you will be asked to choose a [location to store the script](#copy-the-script-to-your-preferred-location), try to be consistent. Suggestions: diff --git a/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md b/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md index d1bd5ea9f..b35ff6a39 100644 --- a/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md +++ b/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md @@ -97,7 +97,7 @@ You can choose one of the following 3 options (select a tab) to install `qbittor First, you need to choose a location to start a new Python environment. !!! info - In the next steps, you will be asked to choose a [location to store the script](#copy-script-to-your-preferred-location), try to be consistent. + In the next steps, you will be asked to choose a [location to store the script](#copy-the-script-to-your-preferred-location), try to be consistent. Suggestions: diff --git a/docs/Hardlinks/How-to-setup-for/Dockstarter.md b/docs/Hardlinks/How-to-setup-for/Dockstarter.md index 35458eb39..13089d51c 100644 --- a/docs/Hardlinks/How-to-setup-for/Dockstarter.md +++ b/docs/Hardlinks/How-to-setup-for/Dockstarter.md @@ -75,7 +75,7 @@ When that's all set then you will need to change the paths you're going to use i - [Radarr](#radarr) - [SABnzbd](#sabnzbd) - [NZBGet](#nzbget) -- [qBittorrent](#qbittorent) +- [qBittorrent](#qbittorrent) - [Deluge](#deluge) - [ruTorrent](#rutorrent) diff --git a/docs/Sonarr/sonarr-collection-of-custom-formats.md b/docs/Sonarr/sonarr-collection-of-custom-formats.md index f81160be2..eebf52472 100644 --- a/docs/Sonarr/sonarr-collection-of-custom-formats.md +++ b/docs/Sonarr/sonarr-collection-of-custom-formats.md @@ -1871,6 +1871,24 @@ We've made 3 guides related to this. --- +#### TVING + +TVING + +??? question "TVING - [Click to show/hide]" + + {! include-markdown "../../includes/cf-descriptions/tving.md" !} + +??? example "JSON - [Click to show/hide]" + + ```json + [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/tving.json' %]][[% endfilter %]] + ``` + +[TOP](#index) + +--- + #### U-NEXT U-NEXT From 83dc7fda3b5ad1069866d23f15289e7f04b6a537 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 20:20:12 +0200 Subject: [PATCH 19/26] build(deps): bump actions/checkout from 4.1.3 to 4.1.4 (#1901) Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.3 to 4.1.4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4.1.3...v4.1.4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy.yml | 4 ++-- .github/workflows/lint-editor.yml | 2 +- .github/workflows/lint-markdown.yml | 2 +- .github/workflows/lint-yaml.yml | 2 +- .github/workflows/metadata-validation.yml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index af7243401..e63cee0e3 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -17,7 +17,7 @@ jobs: cancel-in-progress: true steps: - name: Checkout repository - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.4 with: fetch-depth: 0 sparse-checkout: | @@ -57,7 +57,7 @@ jobs: cancel-in-progress: true steps: - name: Checkout repository - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.4 with: fetch-depth: 0 sparse-checkout: | diff --git a/.github/workflows/lint-editor.yml b/.github/workflows/lint-editor.yml index 6cb907c74..7b20d7d40 100644 --- a/.github/workflows/lint-editor.yml +++ b/.github/workflows/lint-editor.yml @@ -10,7 +10,7 @@ jobs: editorconfig-checker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.3 + - uses: actions/checkout@v4.1.4 - name: editorconfig-checker run: | docker run --rm \ diff --git a/.github/workflows/lint-markdown.yml b/.github/workflows/lint-markdown.yml index c8b10508f..4f33d49b3 100644 --- a/.github/workflows/lint-markdown.yml +++ b/.github/workflows/lint-markdown.yml @@ -10,7 +10,7 @@ jobs: markdownlint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.3 + - uses: actions/checkout@v4.1.4 - name: markdownlint run: | docker run --rm \ diff --git a/.github/workflows/lint-yaml.yml b/.github/workflows/lint-yaml.yml index 40ce6352a..3d9b5cdb3 100644 --- a/.github/workflows/lint-yaml.yml +++ b/.github/workflows/lint-yaml.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.3 + - uses: actions/checkout@v4.1.4 - name: Run yamllint run: | diff --git a/.github/workflows/metadata-validation.yml b/.github/workflows/metadata-validation.yml index a89da4dba..389f4e44c 100644 --- a/.github/workflows/metadata-validation.yml +++ b/.github/workflows/metadata-validation.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest name: Validate metadata.json steps: - - uses: actions/checkout@v4.1.3 + - uses: actions/checkout@v4.1.4 - uses: actions/setup-python@v5.1.0 with: python-version: 3.x From 5a1bf005b51d892e53634d9a3a1e0319046c8de6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 20:34:03 +0200 Subject: [PATCH 20/26] build(deps): bump mkdocs-include-markdown-plugin from 6.0.5 to 6.0.6 (#1914) Bumps [mkdocs-include-markdown-plugin](https://github.com/mondeja/mkdocs-include-markdown-plugin) from 6.0.5 to 6.0.6. - [Release notes](https://github.com/mondeja/mkdocs-include-markdown-plugin/releases) - [Commits](https://github.com/mondeja/mkdocs-include-markdown-plugin/compare/v6.0.5...v6.0.6) --- updated-dependencies: - dependency-name: mkdocs-include-markdown-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index 14dce6a30..51f482cb8 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -5,5 +5,5 @@ mkdocs-macros-plugin==1.0.5 mkdocs-material==9.5.18 mkdocs-minify-plugin==0.8.0 mkdocs-redirects==1.2.1 -mkdocs-include-markdown-plugin==6.0.5 +mkdocs-include-markdown-plugin==6.0.6 mkdocs-markdownextradata-plugin==0.2.5 \ No newline at end of file From ddc98139c722127a80003f8e8394662e2a0cea83 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 20:36:50 +0200 Subject: [PATCH 21/26] build(deps): bump mkdocs-material from 9.5.18 to 9.5.21 (#1915) Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.18 to 9.5.21. - [Release notes](https://github.com/squidfunk/mkdocs-material/releases) - [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG) - [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.18...9.5.21) --- updated-dependencies: - dependency-name: mkdocs-material dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index 51f482cb8..f94b17f38 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -2,7 +2,7 @@ mkdocs-glightbox==0.3.7 mkdocs-awesome-pages-plugin==2.9.2 mkdocs-git-revision-date-localized-plugin==1.2.4 mkdocs-macros-plugin==1.0.5 -mkdocs-material==9.5.18 +mkdocs-material==9.5.21 mkdocs-minify-plugin==0.8.0 mkdocs-redirects==1.2.1 mkdocs-include-markdown-plugin==6.0.6 From 17e144ea911a9453ef50dc9174b4fbed85115566 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 20:40:22 +0200 Subject: [PATCH 22/26] build(deps): bump mkdocs-git-revision-date-localized-plugin from 1.2.4 to 1.2.5 (#1916) build(deps): bump mkdocs-git-revision-date-localized-plugin Bumps [mkdocs-git-revision-date-localized-plugin](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin) from 1.2.4 to 1.2.5. - [Release notes](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/releases) - [Commits](https://github.com/timvink/mkdocs-git-revision-date-localized-plugin/compare/v1.2.4...v1.2.5) --- updated-dependencies: - dependency-name: mkdocs-git-revision-date-localized-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index f94b17f38..d2064f5e7 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,6 +1,6 @@ mkdocs-glightbox==0.3.7 mkdocs-awesome-pages-plugin==2.9.2 -mkdocs-git-revision-date-localized-plugin==1.2.4 +mkdocs-git-revision-date-localized-plugin==1.2.5 mkdocs-macros-plugin==1.0.5 mkdocs-material==9.5.21 mkdocs-minify-plugin==0.8.0 From 6065824d40f757f052db0c45704821207171b766 Mon Sep 17 00:00:00 2001 From: zakary Date: Tue, 7 May 2024 12:04:55 -0500 Subject: [PATCH 23/26] fix(starr-cf/audio-channels): add word barrier and negates to prevent matching incorrectly (#1919) * fix(cf/audio-channels): add word barrier to prevent matching incorrectly * update(cf/audio-channels): change to rg recommendations add word barriers to all low channel and adjust negates remove 9.1 from guides --- .../Radarr-collection-of-custom-formats.md | 14 +--- .../sonarr-collection-of-custom-formats.md | 14 +--- docs/json/radarr/cf/10-mono.json | 17 +--- docs/json/radarr/cf/20-stereo.json | 10 +-- docs/json/radarr/cf/30-sound.json | 10 +-- docs/json/radarr/cf/40-sound.json | 10 +-- docs/json/radarr/cf/51-surround.json | 71 ++++++++-------- docs/json/radarr/cf/61-surround.json | 80 +++++++++---------- docs/json/radarr/cf/71-surround.json | 62 ++++++++------ docs/json/radarr/cf/91-surround.json | 42 ---------- docs/json/sonarr/cf/10-mono.json | 17 +--- docs/json/sonarr/cf/20-stereo.json | 10 +-- docs/json/sonarr/cf/30-sound.json | 8 +- docs/json/sonarr/cf/40-sound.json | 10 +-- docs/json/sonarr/cf/51-surround.json | 62 +++++++------- docs/json/sonarr/cf/61-surround.json | 80 +++++++++---------- docs/json/sonarr/cf/71-surround.json | 62 ++++++++------ docs/json/sonarr/cf/91-surround.json | 42 ---------- 18 files changed, 246 insertions(+), 375 deletions(-) delete mode 100644 docs/json/radarr/cf/91-surround.json delete mode 100644 docs/json/sonarr/cf/91-surround.json diff --git a/docs/Radarr/Radarr-collection-of-custom-formats.md b/docs/Radarr/Radarr-collection-of-custom-formats.md index 11e490176..2e97b9b1d 100644 --- a/docs/Radarr/Radarr-collection-of-custom-formats.md +++ b/docs/Radarr/Radarr-collection-of-custom-formats.md @@ -42,7 +42,7 @@ We've made 3 guides related to this. | [TrueHD](#truehd) | [DD](#dd) | [5.1 Surround](#51-surround) | [DV SDR](#dv-sdr) | | [DTS-HD MA](#dts-hd-ma) | [MP3](#mp3) | [6.1 Surround](#61-surround) | [HDR10+](#hdr10plus) | | [DD+](#ddplus) | [Opus](#opus) | [7.1 Surround](#71-surround) | [HDR10](#hdr10) | -| [DTS-ES](#dts-es) | | [9.1 Surround](#91-surround) | [HDR](#hdr) | +| [DTS-ES](#dts-es) | | | [HDR](#hdr) | | [DTS](#dts) | | | [HDR (undefined)](#hdr-undefined) | | | | | [PQ](#pq) | | | | | [HLG](#hlg) | @@ -479,18 +479,6 @@ We've made 3 guides related to this. --- -### 9.1 Surround - -??? example "JSON - [Click to show/hide]" - - ```json - [[% filter indent(width=4) %]][[% include 'json/radarr/cf/91-surround.json' %]][[% endfilter %]] - ``` - -[TOP](#index) - ---- - ## HDR Formats --- diff --git a/docs/Sonarr/sonarr-collection-of-custom-formats.md b/docs/Sonarr/sonarr-collection-of-custom-formats.md index eebf52472..a46705c69 100644 --- a/docs/Sonarr/sonarr-collection-of-custom-formats.md +++ b/docs/Sonarr/sonarr-collection-of-custom-formats.md @@ -39,7 +39,7 @@ We've made 3 guides related to this. | [TrueHD](#truehd) | [DD](#dd) | [5.1 Surround](#51-surround) | [DV SDR](#dv-sdr) | | [DTS-HD MA](#dts-hd-ma) | [MP3](#mp3) | [6.1 Surround](#61-surround) | [HDR10+](#hdr10plus) | | [DD+](#ddplus) | [Opus](#opus) | [7.1 Surround](#71-surround) | [HDR10](#hdr10) | -| [DTS-ES](#dts-es) | | [9.1 Surround](#91-surround) | [HDR](#hdr) | +| [DTS-ES](#dts-es) | | | [HDR](#hdr) | | [DTS](#dts) | | | [HDR (undefined)](#hdr-undefined) | | | | | [PQ](#pq) | | | | | [HLG](#hlg) | @@ -480,18 +480,6 @@ We've made 3 guides related to this. --- -### 9.1 Surround - -??? example "JSON - [Click to show/hide]" - - ```json - [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/91-surround.json' %]][[% endfilter %]] - ``` - -[TOP](#index) - ---- - ## HDR Formats --- diff --git a/docs/json/radarr/cf/10-mono.json b/docs/json/radarr/cf/10-mono.json index 4b56ad0fc..2ceb864ce 100644 --- a/docs/json/radarr/cf/10-mono.json +++ b/docs/json/radarr/cf/10-mono.json @@ -8,16 +8,7 @@ "negate": false, "required": true, "fields": { - "value": "[^0-9]1[ .]0|\\bMono\\b|\\[PCM \\]" - } - }, - { - "name": "Not Stereo", - "implementation": "ReleaseTitleSpecification", - "negate": true, - "required": true, - "fields": { - "value": "(? Date: Sat, 11 May 2024 16:04:29 -0500 Subject: [PATCH 24/26] chore(editorconfig): Add more extensions (#1410) * Add more extensions to editorconfig Signed-off-by: Eric Nemchik * feat(editorconfig): update indent size * Revert "feat(editorconfig): update indent size" This reverts commit 30e5918efe499ebf05559b19bdb140e75bd0d31b. * style: :lipstick: format json files Signed-off-by: Eric Nemchik * style: :lipstick: format yaml files Signed-off-by: Eric Nemchik * style: :lipstick: format md files Signed-off-by: Eric Nemchik * style: :lipstick: format other files Signed-off-by: Eric Nemchik * style: :lipstick: format md files Signed-off-by: Eric Nemchik * fix: :bug: markdownlint fixes Signed-off-by: Eric Nemchik * fix: :bug: markdownlint fixes Signed-off-by: Eric Nemchik * fix: :bug: markdownlint fixes Signed-off-by: Eric Nemchik * fix: :bug: editorconfig lint fixes Signed-off-by: Eric Nemchik * feat: :rocket: deploy preview Signed-off-by: Eric Nemchik * feat: :rocket: deploy preview Signed-off-by: Eric Nemchik * feat: :rocket: deploy preview Signed-off-by: Eric Nemchik * revert: :fire: remove deploy preview Signed-off-by: Eric Nemchik * fix: :bug: fix incorrect prior merges Signed-off-by: Eric Nemchik * style: :lipstick: change json to 2 spaces Signed-off-by: GitHub * style: :lipstick: format json to 2 spaces Signed-off-by: GitHub * update(formatting/py): run pep8 formatting --------- Signed-off-by: Eric Nemchik Signed-off-by: GitHub Co-authored-by: FonduemangVI <15520607+FonduemangVI@users.noreply.github.com> Co-authored-by: FonduemangVI Co-authored-by: zakary --- .editorconfig | 48 ++- .github/CODE_OF_CONDUCT.md | 23 +- .github/labeler.yml | 57 ++- .github/workflows/conflicts.yml | 1 - .github/workflows/deploy.yml | 2 - .github/workflows/lint-markdown.yml | 6 +- .gitignore | 14 +- .markdownlint.yaml | 34 ++ CONTRIBUTING.md | 45 +- docs/.pages | 22 +- docs/Bazarr/.pages | 10 +- docs/Bazarr/After-install-configuration.md | 2 +- docs/Bazarr/Setup-Guide.md | 15 +- docs/Bazarr/Tips/Bazarr-suggested-scoring.md | 4 +- docs/Bazarr/index.md | 4 +- docs/Bazarr/scripts/index.md | 1 + docs/Downloaders/.pages | 12 +- docs/Downloaders/Deluge/Basic-Setup.md | 37 +- docs/Downloaders/Deluge/Port-Forwarding.md | 6 +- docs/Downloaders/Deluge/Tips/Plugins.md | 7 +- docs/Downloaders/Deluge/Tips/Thin-Client.md | 15 +- docs/Downloaders/Deluge/Tips/Unraid-Mover.md | 31 +- docs/Downloaders/Deluge/Using-Labels.md | 4 +- docs/Downloaders/Deluge/index.md | 6 +- docs/Downloaders/NZBGet/.pages | 6 +- docs/Downloaders/NZBGet/Basic-Setup.md | 9 +- .../NZBGet/Paths-and-Categories.md | 3 - .../Downloaders/NZBGet/scripts/Clean/Clean.py | 72 ++-- .../NZBGet/scripts/HashRenamer/HashRenamer.py | 111 +++-- .../scripts/WtFnZb-Renamer/WtFnZb-Renamer.py | 120 +++--- docs/Downloaders/NZBGet/scripts/index.md | 9 +- .../NZBGet/scripts/replace_for/replace_for.py | 20 +- docs/Downloaders/SABnzbd/.pages | 6 +- docs/Downloaders/SABnzbd/Basic-Setup.md | 37 +- .../SABnzbd/Paths-and-Categories.md | 3 - .../SABnzbd/scripts/Clean/Clean.py | 73 ++-- docs/Downloaders/SABnzbd/scripts/index.md | 16 +- .../scripts/replace_for/replace_for.py | 25 +- docs/Downloaders/qBittorrent/.pages | 12 +- .../qBittorrent/3rd-party-tools.md | 39 +- docs/Downloaders/qBittorrent/Basic-Setup.md | 49 ++- .../qBittorrent/How-to-add-categories.md | 2 +- docs/Downloaders/qBittorrent/Paths.md | 1 - .../qBittorrent/Port-forwarding.md | 3 +- ...to-run-the-unRaid-mover-for-qBittorrent.md | 22 +- docs/Downloaders/qBittorrent/Tips/Themes.md | 10 +- .../ruTorrent/ruTorrent-Basic-Setup.md | 4 +- docs/Guide-Sync/.pages | 2 +- docs/Guide-Sync/index.md | 10 +- docs/Hardlinks/.pages | 10 +- .../Check-if-hardlinks-are-working.md | 5 +- docs/Hardlinks/Examples.md | 4 +- docs/Hardlinks/Hardlinks-and-Instant-Moves.md | 11 +- docs/Hardlinks/How-to-setup-for/Docker.md | 7 +- .../Hardlinks/How-to-setup-for/Dockstarter.md | 21 +- docs/Hardlinks/How-to-setup-for/Native.md | 4 - docs/Hardlinks/How-to-setup-for/Synology.md | 54 +-- .../How-to-setup-for/TrueNAS-Core.md | 17 +- docs/Hardlinks/How-to-setup-for/Unraid.md | 28 +- .../Replace-copies-with-hardlinks.md | 5 +- docs/Misc/.pages | 8 +- ...w-to-setup-Torguard-for-port-forwarding.md | 37 +- docs/Misc/how-to-provide-a-docker-compose.md | 14 +- docs/Misc/x265-4k.md | 7 +- docs/Plex/.pages | 12 +- docs/Plex/Tips/4k-transcoding.md | 2 +- .../Plex/Tips/Optimal-plex-client-settings.md | 4 +- docs/Plex/Tips/Plex-media-server.md | 68 ++- .../Android-SHIELD-Android-TV.xml | 31 +- docs/Plex/profiles/Chromecast/Chromecast.xml | 35 +- docs/Plex/profiles/index.md | 7 +- docs/Prowlarr/.pages | 8 +- docs/Prowlarr/index.md | 6 +- docs/Prowlarr/prowlarr-setup-flaresolverr.md | 6 +- docs/Prowlarr/prowlarr-setup-limited-api.md | 2 +- docs/Prowlarr/prowlarr-setup-proxy.md | 3 +- docs/Radarr/.pages | 22 +- .../Radarr-Quality-Settings-File-Size.md | 5 +- .../Radarr-collection-of-custom-formats.md | 376 +++++++++-------- .../Radarr-how-to-update-custom-formats.md | 6 +- docs/Radarr/Radarr-import-custom-formats.md | 12 +- .../Radarr-recommended-naming-scheme.md | 20 +- docs/Radarr/Radarr-remote-path-mapping.md | 6 +- .../How-to-setup-language-custom-formats.md | 2 +- docs/Radarr/Tips/Merge-quality.md | 3 - .../Radarr/Tips/Radarr-rename-your-folders.md | 3 +- .../Tips/Radarr-show-unknown-movie-items.md | 1 - docs/Radarr/Tips/Sync-2-radarr-sonarr.md | 17 +- docs/Radarr/index.md | 6 +- .../radarr-setup-quality-profiles-anime.md | 20 +- ...radarr-setup-quality-profiles-french-en.md | 57 +-- ...radarr-setup-quality-profiles-french-fr.md | 63 +-- docs/Radarr/radarr-setup-quality-profiles.md | 37 +- docs/Recyclarr/.pages | 4 +- docs/Recyclarr/index.md | 4 +- docs/SQP/1-4k.md | 2 +- docs/SQP/1.md | 2 +- docs/SQP/2.md | 2 +- docs/SQP/3.md | 2 +- docs/SQP/4.md | 2 +- docs/SQP/5.md | 2 +- docs/SQP/index.md | 20 +- docs/Sonarr/.pages | 22 +- .../Sonarr-Quality-Settings-File-Size.md | 6 +- .../Sonarr-recommended-naming-scheme.md | 23 +- docs/Sonarr/Sonarr-remote-path-mapping.md | 8 +- .../How-to-setup-language-custom-formats.md | 5 +- docs/Sonarr/Tips/Merge-quality.md | 5 +- docs/Sonarr/Tips/Sync-2-radarr-sonarr.md | 5 +- docs/Sonarr/index.md | 4 +- .../sonarr-collection-of-custom-formats.md | 389 ++++++++++-------- .../sonarr-how-to-update-custom-formats.md | 6 +- docs/Sonarr/sonarr-import-custom-formats.md | 12 +- .../sonarr-setup-quality-profiles-anime.md | 22 +- ...sonarr-setup-quality-profiles-french-en.md | 50 +-- ...sonarr-setup-quality-profiles-french-fr.md | 54 +-- docs/Sonarr/sonarr-setup-quality-profiles.md | 21 +- docs/index.md | 24 +- docs/json/radarr/cf/10-mono.json | 71 ++-- docs/json/radarr/cf/20-stereo.json | 89 ++-- docs/json/radarr/cf/30-sound.json | 89 ++-- docs/json/radarr/cf/40-sound.json | 89 ++-- docs/json/radarr/cf/aac.json | 125 +++--- docs/json/radarr/cf/anime-raws.json | 326 +++++++-------- docs/json/radarr/cf/av1.json | 2 +- docs/json/radarr/cf/dd.json | 125 +++--- docs/json/radarr/cf/ddplus.json | 107 ++--- docs/json/radarr/cf/dts-es.json | 161 ++++---- docs/json/radarr/cf/dts-hd-hra.json | 197 ++++----- docs/json/radarr/cf/dts-x.json | 143 +++---- docs/json/radarr/cf/dts.json | 179 ++++---- docs/json/radarr/cf/dutch-groups.json | 8 +- docs/json/radarr/cf/fansub.json | 27 +- docs/json/radarr/cf/flac.json | 125 +++--- docs/json/radarr/cf/freeleech.json | 8 +- docs/json/radarr/cf/mp3.json | 8 +- docs/json/radarr/cf/mpeg2.json | 8 +- docs/json/radarr/cf/multi.json | 8 +- docs/json/radarr/cf/opus.json | 8 +- docs/json/radarr/cf/pcm.json | 125 +++--- docs/json/radarr/cf/remaster.json | 35 +- docs/json/radarr/cf/repack-proper.json | 53 +-- docs/json/radarr/cf/theatrical-cut.json | 8 +- docs/json/radarr/cf/uncensored.json | 28 +- docs/json/radarr/cf/vp9.json | 2 +- docs/json/radarr/cf/x264.json | 35 +- docs/json/radarr/naming/radarr-naming.json | 24 +- .../quality-profiles/hd-bluray-web.json | 24 +- .../quality-profiles/remux-web-1080p.json | 24 +- .../quality-profiles/remux-web-2160p.json | 24 +- .../radarr/quality-profiles/sqp-1-1080p.json | 20 +- .../radarr/quality-profiles/sqp-1-2160p.json | 20 +- docs/json/radarr/quality-profiles/sqp-2.json | 12 +- docs/json/radarr/quality-profiles/sqp-3.json | 20 +- docs/json/radarr/quality-profiles/sqp-4.json | 12 +- docs/json/radarr/quality-profiles/sqp-5.json | 20 +- .../quality-profiles/uhd-bluray-web.json | 24 +- docs/json/radarr/quality-size/movie.json | 176 ++++---- .../radarr/quality-size/sqp-streaming.json | 116 +++--- docs/json/radarr/quality-size/sqp-uhd.json | 97 +++-- docs/json/sonarr/cf/10-mono.json | 71 ++-- docs/json/sonarr/cf/20-stereo.json | 89 ++-- docs/json/sonarr/cf/30-sound.json | 89 ++-- docs/json/sonarr/cf/40-sound.json | 89 ++-- docs/json/sonarr/cf/aac.json | 125 +++--- docs/json/sonarr/cf/anime-raws.json | 326 +++++++-------- docs/json/sonarr/cf/av1.json | 2 +- docs/json/sonarr/cf/bglobal.json | 82 ++-- docs/json/sonarr/cf/bilibili.json | 82 ++-- docs/json/sonarr/cf/cr.json | 82 ++-- docs/json/sonarr/cf/dd.json | 125 +++--- docs/json/sonarr/cf/ddplus.json | 107 ++--- docs/json/sonarr/cf/dts-es.json | 161 ++++---- docs/json/sonarr/cf/dts-hd-hra.json | 197 ++++----- docs/json/sonarr/cf/dts-x.json | 143 +++---- docs/json/sonarr/cf/dts.json | 179 ++++---- docs/json/sonarr/cf/fansub.json | 27 +- docs/json/sonarr/cf/flac.json | 125 +++--- docs/json/sonarr/cf/freeleech.json | 18 +- docs/json/sonarr/cf/funi.json | 82 ++-- docs/json/sonarr/cf/hidive.json | 82 ++-- docs/json/sonarr/cf/mp3.json | 8 +- docs/json/sonarr/cf/mpeg2.json | 8 +- docs/json/sonarr/cf/multi.json | 8 +- docs/json/sonarr/cf/opus.json | 8 +- docs/json/sonarr/cf/pcm.json | 125 +++--- docs/json/sonarr/cf/remaster.json | 35 +- docs/json/sonarr/cf/repack-proper.json | 53 +-- docs/json/sonarr/cf/season-pack-spec.json | 15 + docs/json/sonarr/cf/vp9.json | 2 +- docs/json/sonarr/cf/x265.json | 1 - docs/json/sonarr/cf/x266.json | 1 - docs/json/sonarr/naming/sonarr-naming.json | 38 +- .../sonarr/quality-profiles/web-1080p.json | 24 +- .../sonarr/quality-profiles/web-2160p.json | 24 +- docs/json/sonarr/quality-size/anime.json | 236 +++++------ docs/json/sonarr/quality-size/series.json | 176 ++++---- docs/json/sonarr/rp/lqGroups.json | 14 +- docs/json/sonarr/rp/optionals.json | 164 ++++---- docs/json/sonarr/rp/p2pRepackProper.json | 16 +- docs/json/sonarr/rp/streaming.json | 8 +- docs/json/sonarr/rp/visorakAnimeOne.json | 15 +- docs/json/sonarr/rp/visorakAnimeTwo.json | 60 +-- docs/manifest.webmanifest | 28 +- docs/requirements.txt | 2 +- docs/stylesheets/extra.css | 16 +- docs/stylesheets/github-permalink-style.css | 59 +-- includes/cf-descriptions/4od.md | 2 +- includes/cf-descriptions/aac.md | 2 +- includes/cf-descriptions/abema.md | 2 +- includes/cf-descriptions/all4.md | 2 +- includes/cf-descriptions/amzn.md | 2 +- includes/cf-descriptions/atmos-undefined.md | 1 + includes/cf-descriptions/atvp.md | 2 +- includes/cf-descriptions/bcore.md | 4 +- includes/cf-descriptions/bglobal.md | 2 +- includes/cf-descriptions/bilibili.md | 2 +- includes/cf-descriptions/cc.md | 2 +- includes/cf-descriptions/cr.md | 2 +- includes/cf-descriptions/crav.md | 2 +- includes/cf-descriptions/crit.md | 2 +- includes/cf-descriptions/dcu.md | 2 +- includes/cf-descriptions/dd.md | 2 +- includes/cf-descriptions/ddplus.md | 2 +- includes/cf-descriptions/dscp.md | 2 +- includes/cf-descriptions/dsnp.md | 2 +- includes/cf-descriptions/dts-hd-hra.md | 2 +- includes/cf-descriptions/dts-hd-ma.md | 2 +- includes/cf-descriptions/dv-hdr10.md | 6 +- includes/cf-descriptions/dv-hdr10plus.md | 10 +- includes/cf-descriptions/dv-hlg.md | 2 +- includes/cf-descriptions/dv-sdr.md | 2 +- includes/cf-descriptions/dv.md | 2 +- includes/cf-descriptions/fod.md | 4 +- includes/cf-descriptions/french-adn.md | 2 +- includes/cf-descriptions/french-canalplus.md | 2 +- includes/cf-descriptions/french-rtbf.md | 2 +- includes/cf-descriptions/french-salto.md | 2 +- includes/cf-descriptions/french-wkn.md | 2 +- includes/cf-descriptions/funi.md | 2 +- includes/cf-descriptions/hbo.md | 2 +- includes/cf-descriptions/hdr.md | 2 +- includes/cf-descriptions/hidive.md | 2 +- includes/cf-descriptions/hlg.md | 2 +- includes/cf-descriptions/hmax.md | 2 +- includes/cf-descriptions/htsr.md | 2 +- includes/cf-descriptions/hulu.md | 2 +- includes/cf-descriptions/ip.md | 2 +- includes/cf-descriptions/it.md | 2 +- includes/cf-descriptions/itvx.md | 2 +- includes/cf-descriptions/ma.md | 2 +- includes/cf-descriptions/nf.md | 2 +- includes/cf-descriptions/now.md | 2 +- includes/cf-descriptions/opus.md | 2 +- includes/cf-descriptions/ovid.md | 2 +- includes/cf-descriptions/pathe.md | 2 +- includes/cf-descriptions/pcok.md | 2 +- includes/cf-descriptions/pmtp.md | 2 +- includes/cf-descriptions/qibi.md | 2 +- includes/cf-descriptions/red.md | 2 +- includes/cf-descriptions/sho.md | 2 +- includes/cf-descriptions/stan.md | 2 +- includes/cf-descriptions/strp.md | 2 +- includes/cf-descriptions/truehd-atmos.md | 2 +- includes/cf-descriptions/truehd.md | 2 +- includes/cf-descriptions/tver.md | 4 +- includes/cf-descriptions/tving.md | 2 +- includes/cf-descriptions/u-next.md | 4 +- includes/cf-descriptions/vdl.md | 2 +- includes/cf-descriptions/viu.md | 2 +- includes/cf-descriptions/vrv.md | 2 +- includes/cf/dv-info-profiles.md | 2 + includes/cf/radarr-anime.md | 1 + .../cf/radarr-cf-hd-bluray-web-scoring.md | 1 + includes/cf/radarr-cf-remux-web-scoring.md | 1 + .../cf/radarr-cf-uhd-bluray-web-scoring.md | 1 + includes/cf/radarr-dv-tip-dv-webdl.md | 1 + includes/cf/radarr-misc.md | 1 + .../cf/radarr-movie-versions-imaxe-noremux.md | 2 + includes/cf/radarr-movie-versions-imaxe.md | 2 + includes/cf/radarr-movie-versions-noremux.md | 1 + includes/cf/radarr-movie-versions.md | 1 + includes/cf/radarr-optional-uhd.md | 3 +- includes/cf/radarr-optional.md | 3 +- includes/cf/radarr-streaming-services.md | 4 +- includes/cf/radarr-suggest-attention.md | 4 +- includes/cf/radarr-unwanted-uhd.md | 19 +- includes/cf/radarr-unwanted.md | 3 +- includes/cf/score-attention.md | 1 + includes/cf/sonarr-anime.md | 3 +- includes/cf/sonarr-dv-tip-dv-webdl.md | 1 + includes/cf/sonarr-hq-source-group.md | 2 + includes/cf/sonarr-misc.md | 1 + includes/cf/sonarr-optional-uhd.md | 7 +- includes/cf/sonarr-optional.md | 3 +- .../cf/sonarr-streaming-services-anime.md | 3 +- includes/cf/sonarr-streaming-services.md | 1 + includes/cf/sonarr-suggest-attention.md | 4 +- includes/cf/sonarr-uhd-streaming-services.md | 2 + includes/cf/sonarr-unwanted-uhd.md | 3 +- includes/cf/sonarr-unwanted.md | 3 +- includes/docker/x265.md | 1 + includes/downloaders/basic-setup.md | 4 +- includes/downloaders/path.md | 1 + includes/flowcharts/radarr-flowchart.drawio | 2 +- ...darr-cf-french-hd-bluray-web-scoring-en.md | 3 + ...darr-cf-french-hd-bluray-web-scoring-fr.md | 3 + .../radarr-cf-french-remux-web-scoring-en.md | 3 + .../radarr-cf-french-remux-web-scoring-fr.md | 3 + ...arr-cf-french-uhd-bluray-web-scoring-en.md | 3 + ...arr-cf-french-uhd-bluray-web-scoring-fr.md | 3 + ...rr-french-advanced-audio-information-en.md | 2 + ...rr-french-advanced-audio-information-fr.md | 2 + .../radarr-french-audio-version-en.md | 4 + .../radarr-french-audio-version-fr.md | 4 + .../radarr-french-multi-audio-en.md | 3 + .../radarr-french-multi-audio-fr.md | 3 + .../french-guide/radarr-french-unwanted-en.md | 3 +- .../french-guide/radarr-french-unwanted-fr.md | 3 +- .../radarr-french-unwanted-uhd-en.md | 3 +- .../radarr-french-unwanted-uhd-fr.md | 3 +- .../sonarr-cf-french-anime-scoring-en.md | 3 + .../sonarr-cf-french-anime-scoring-fr.md | 3 + .../sonarr-cf-french-web-scoring-en.md | 3 + .../sonarr-cf-french-web-scoring-fr.md | 3 + .../sonarr-french-anime-info-en.md | 3 + .../sonarr-french-anime-info-fr.md | 3 + .../sonarr-french-audio-version-en.md | 3 + .../sonarr-french-audio-version-fr.md | 3 + .../sonarr-french-multi-audio-en.md | 3 + .../sonarr-french-multi-audio-fr.md | 3 + ...narr-french-streaming-services-anime-en.md | 1 + ...narr-french-streaming-services-anime-fr.md | 1 + .../sonarr-french-streaming-services-en.md | 1 + .../sonarr-french-streaming-services-fr.md | 1 + .../french-guide/sonarr-french-unwanted-en.md | 4 +- .../french-guide/sonarr-french-unwanted-fr.md | 4 +- .../sonarr-french-unwanted-uhd-en.md | 4 +- .../sonarr-french-unwanted-uhd-fr.md | 4 +- includes/hardlinks/bad-path-suggestion.md | 2 +- .../breakdown-folder-structure-docker.md | 2 +- .../breakdown-folder-structure-synology.md | 2 +- .../hardlinks/breakdown-folder-structure.md | 2 +- includes/hardlinks/docker-iptables-fix.sh | 29 +- includes/hardlinks/docker-tree-full.md | 16 +- includes/hardlinks/docker-tree-media.md | 8 +- includes/hardlinks/docker-tree-torrents.md | 8 +- includes/hardlinks/docker-tree-usenet.md | 8 +- includes/hardlinks/folder-structure.md | 2 +- .../merge-quality/radarr-current-logic.md | 3 +- .../merge-quality/sonarr-current-logic.md | 3 +- .../merge-quality/sonarrv4-current-logic.md | 3 +- includes/sqp/1-4k-cf-scoring-sqp1.md | 32 +- includes/sqp/1-4k-qp-settings-sqp1.md | 6 +- includes/sqp/1-4k-select-qualities-sqp1.md | 1 + includes/sqp/1-4k-streaming-services.md | 4 +- includes/sqp/1-4k-why.md | 6 +- includes/sqp/1-4k-workflow.md | 2 +- includes/sqp/1-cf-scoring.md | 4 + includes/sqp/1-qp-settings.md | 6 +- includes/sqp/1-streaming-services.md | 4 +- includes/sqp/1-why.md | 2 +- includes/sqp/1-workflow.md | 2 +- includes/sqp/2-cf-scoring.md | 1 + includes/sqp/2-qp-settings.md | 2 + includes/sqp/2-workflow.md | 2 +- includes/sqp/3-qp-settings.md | 2 + includes/sqp/3-workflow.md | 2 +- includes/sqp/4-qp-settings.md | 2 + includes/sqp/4-workflow.md | 2 +- includes/sqp/5-cf-scoring.md | 1 + includes/sqp/5-qp-settings.md | 2 + includes/sqp/5-workflow.md | 2 +- includes/sqp/hd-radarr-optional.md | 3 +- includes/sqp/hd-radarr-resolution.md | 1 + includes/sqp/important-notice.md | 1 + includes/sqp/merge-qualities.md | 2 +- includes/sqp/radarr-unwanted-sqp1.md | 5 +- includes/sqp/radarr-unwanted-uhd-sqp1.md | 21 +- includes/sqp/sqp-uhd-radarr-optional.md | 2 +- includes/sqp/uhd-radarr-misc.md | 4 +- includes/sqp/uhd-radarr-resolution.md | 1 + includes/sqp/wip.md | 1 + includes/support.md | 4 +- overrides/main.html | 21 +- 385 files changed, 5216 insertions(+), 4429 deletions(-) create mode 100644 .markdownlint.yaml create mode 100644 docs/json/sonarr/cf/season-pack-spec.json diff --git a/.editorconfig b/.editorconfig index 11bd79db4..a3d044d8c 100644 --- a/.editorconfig +++ b/.editorconfig @@ -3,9 +3,55 @@ # top-most EditorConfig file root = true -[*.json] +[*] indent_style = space indent_size = 2 +end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true + +[*.{css}] +indent_style = space +indent_size = 2 +end_of_line = lf + +[*.{htm,html}] +indent_style = space +indent_size = 2 +end_of_line = lf + +[*.js] +indent_style = space +indent_size = 2 +end_of_line = lf + +[*.{json,jsonc,webmanifest}] +indent_style = space +indent_size = 2 +end_of_line = lf + +[*.md] +indent_style = space +indent_size = 4 +end_of_line = lf + +[*.py] +indent_style = space +indent_size = 4 +end_of_line = lf + +[*.sh] +indent_style = space +indent_size = 4 +end_of_line = lf + +[*.xml] +indent_style = space +indent_size = 2 +end_of_line = lf + +[*.{yaml,yml}] +indent_style = space +indent_size = 2 +end_of_line = lf diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md index 484c8aea5..4b17f8ce3 100644 --- a/.github/CODE_OF_CONDUCT.md +++ b/.github/CODE_OF_CONDUCT.md @@ -14,22 +14,19 @@ appearance, race, religion, or sexual identity and orientation. Examples of behavior that contributes to creating a positive environment include: -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members Examples of unacceptable behavior by participants include: -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting +- The use of sexualized language or imagery and unwelcome sexual attention or advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities diff --git a/.github/labeler.yml b/.github/labeler.yml index 04779aa08..23e8ec56b 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,39 +1,70 @@ "Area: Bazarr": - changed-files: - - any-glob-to-any-file: ['docs/Bazarr/**'] + - any-glob-to-any-file: ["docs/Bazarr/**"] "Area: Dependencies": - changed-files: - - any-glob-to-any-file: ['package.json', 'package-lock.json'] + - any-glob-to-any-file: ["package.json", "package-lock.json"] "Area: Downloaders": - changed-files: - - any-glob-to-any-file: ['docs/Downloaders/**'] + - any-glob-to-any-file: ["docs/Downloaders/**"] "Area: Plex": - changed-files: - - any-glob-to-any-file: ['docs/Plex/**'] + - any-glob-to-any-file: ["docs/Plex/**"] "Area: Prowlarr": - changed-files: - - any-glob-to-any-file: ['docs/Prowlarr/**'] + - any-glob-to-any-file: ["docs/Prowlarr/**"] "Area: Radarr": - changed-files: - - any-glob-to-any-file: ['docs/json/radarr/cf/**', 'docs/json/radarr/quality-size/**', 'docs/json/radarr/naming/**', 'docs/Radarr/**'] + - any-glob-to-any-file: + [ + "docs/json/radarr/cf/**", + "docs/json/radarr/quality-size/**", + "docs/json/radarr/naming/**", + "docs/Radarr/**", + ] "Area: Recyclarr": - changed-files: - - any-glob-to-any-file: ['docs/recyclarr-configs/**'] + - any-glob-to-any-file: ["docs/recyclarr-configs/**"] "Area: Sonarr": - changed-files: - - any-glob-to-any-file: ['docs/json/sonarr/rp/**', 'docs/json/sonarr/cf/**', 'docs/json/sonarr/quality-size/**', 'docs/json/sonarr/naming/**', 'docs/Sonarr/**'] + - any-glob-to-any-file: + [ + "docs/json/sonarr/rp/**", + "docs/json/sonarr/cf/**", + "docs/json/sonarr/quality-size/**", + "docs/json/sonarr/naming/**", + "docs/Sonarr/**", + ] "Area: Starr Custom Formats": - changed-files: - - any-glob-to-any-file: ['docs/json/radarr/cf/**', 'docs/json/sonarr/cf/**'] + - any-glob-to-any-file: + ["docs/json/radarr/cf/**", "docs/json/sonarr/cf/**"] "Area: Starr Naming": - changed-files: - - any-glob-to-any-file: ['docs/json/radarr/naming/**', 'docs/json/sonarr/naming/**'] + - any-glob-to-any-file: + ["docs/json/radarr/naming/**", "docs/json/sonarr/naming/**"] "Area: github_actions": - changed-files: - - any-glob-to-any-file: ['.github/workflows/**', '.github/dependabot.yml', '.github/labeler.yml', '.github/stale.yml'] + - any-glob-to-any-file: + [ + ".github/workflows/**", + ".github/dependabot.yml", + ".github/labeler.yml", + ".github/stale.yml", + ] "Area: python": - changed-files: - - any-glob-to-any-file: ['**/*.py'] + - any-glob-to-any-file: ["**/*.py"] "Area: Backend": - changed-files: - - any-glob-to-any-file: ['docs/**/*.md', '!docs/Bazarr/**', '!docs/Downloaders/**', '!docs/Plex/**', '!docs/Prowlarr/**', '!docs/Radarr/**', '!docs/recyclarr-configs/**', '!docs/Sonarr/**'] + - any-glob-to-any-file: + [ + "docs/**/*.md", + "!docs/Bazarr/**", + "!docs/Downloaders/**", + "!docs/Plex/**", + "!docs/Prowlarr/**", + "!docs/Radarr/**", + "!docs/recyclarr-configs/**", + "!docs/Sonarr/**", + ] diff --git a/.github/workflows/conflicts.yml b/.github/workflows/conflicts.yml index 744cce081..a19e5f4e3 100644 --- a/.github/workflows/conflicts.yml +++ b/.github/workflows/conflicts.yml @@ -6,7 +6,6 @@ on: - master pull_request: - jobs: triage: runs-on: ubuntu-latest diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index e63cee0e3..61e8e9f44 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -6,9 +6,7 @@ on: - master pull_request: - jobs: - build: name: Build docs runs-on: ubuntu-latest diff --git a/.github/workflows/lint-markdown.yml b/.github/workflows/lint-markdown.yml index 4f33d49b3..7fd4e76de 100644 --- a/.github/workflows/lint-markdown.yml +++ b/.github/workflows/lint-markdown.yml @@ -14,7 +14,7 @@ jobs: - name: markdownlint run: | docker run --rm \ - -v "${GITHUB_WORKSPACE}":/data \ - markdownlint/markdownlint \ - -r ~MD013,~MD033,~MD034,~MD046,~MD002,~MD041 \ + -v "${GITHUB_WORKSPACE}":/workdir \ + ghcr.io/igorshubovych/markdownlint-cli \ + -c "/workdir/.markdownlint.yaml" \ . diff --git a/.gitignore b/.gitignore index 8c03e9676..542a14462 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ -.cache -venv/ -mkdocs-dev-server.bat -site/ -/docs/Notifiarr/preview.bat -/docs/Notifiarr/Integrations/_TEMPLATE.md -/includes/flowcharts/.$radarr-flowchart.drawio.bkp +.cache +venv/ +mkdocs-dev-server.bat +site/ +/docs/Notifiarr/preview.bat +/docs/Notifiarr/Integrations/_TEMPLATE.md +/includes/flowcharts/.$radarr-flowchart.drawio.bkp diff --git a/.markdownlint.yaml b/.markdownlint.yaml new file mode 100644 index 000000000..ce7ca5211 --- /dev/null +++ b/.markdownlint.yaml @@ -0,0 +1,34 @@ +# https://github.com/DavidAnson/markdownlint/blob/main/schema/.markdownlint.yaml + +# Default state for all rules +default: true + +# MD002/first-header-h1 : First header should be a top level header : +MD002: false + +# MD007/ul-indent : Unordered list indentation : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md007.md +MD007: false + +# MD013/line-length : Line length : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md013.md +MD013: false + +# MD033/no-inline-html : Inline HTML : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md033.md +MD033: false + +# MD034/no-bare-urls : Bare URL used : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md034.md +MD034: false + +# MD041/first-line-heading/first-line-h1 : First line in a file should be a top-level heading : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md041.md +MD041: false + +# MD046/code-block-style : Code block style : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md046.md +MD046: false + +# MD051/link-fragments : Link fragments should be valid : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md051.md +MD051: false + +# MD052/reference-links-images : Reference links and images should use a label that is defined : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md052.md +MD052: false + +# MD053/link-image-reference-definitions : Link and image reference definitions should be needed : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md053.md +MD053: false diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cd0dac9ff..180691ec3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,13 +17,13 @@ These are mostly guidelines, not rules. Use your best judgment, and feel free to We're trying to be as consistent as possible for automation of the changelog. - **feat/xxx** Commits, that adds a new feature -- **fix/xxx** Commits, that fixes a bug/issue +- **fix/xxx** Commits, that fixes a bug/issue - **style/xxx** Commits, that do not affect the meaning (white-space, formatting, missing semi-colons, etc) - **chore/xxx** Miscellaneous commits (administrative / cleanup / backend) Where 'xxx' can stand for Starr/Sonarr/Radarr/Guide etc -*Examples:* +_Examples:_ - `feat/Starr-ELEANOR-to-Scene-CF` - `feat/Radarr-CiNEPHiLES-to-Remux-Tier-02` @@ -37,13 +37,13 @@ Where 'xxx' can stand for Starr/Sonarr/Radarr/Guide etc We're trying to be as consistent as possible for automation of the changelog. - **feat(xxx):** Commits, that adds a new feature -- **fix(xxx):** Commits, that fixes a bug/issue +- **fix(xxx):** Commits, that fixes a bug/issue - **style(xxx):** Commits, that do not affect the meaning (white-space, formatting, missing semi-colons, etc) - **chore(xxx):** Miscellaneous commits (administrative / cleanup / backend) Where 'xxx' can stand for Starr/Sonarr/Radarr/Guide etc -*Examples:* +_Examples:_ - `feat(starr): add ELEANOR to Scene CF` - `feat(radarr): add CiNEPHiLES to Remux Tier 02` @@ -72,12 +72,12 @@ When doing a PR that is in-progress and not yet complete / ready for review or n ```json { - "trash_id": "HASHCODE", - "trash_scores": { - "default": 50, - "some_other_profile": 100 - }, - "trash_regex": "https://regex101.com/r/pADWJD/5", + "trash_id": "HASHCODE", + "trash_scores": { + "default": 50, + "some_other_profile": 100 + }, + "trash_regex": "https://regex101.com/r/pADWJD/5", STARRJSONEXPORT } ``` @@ -86,11 +86,9 @@ General Structure - json file name - name of the [json file](#file-naming) - `trash_id` - Generated [HashCode](#hashcode) for the Custom Format -- `trash_scores` - Json object of [score(s) for the Custom Format](#scoring). Note that Custom - Formats with Default Scores of 0 should NOT have a `trash_scores.default` +- `trash_scores` - Json object of [score(s) for the Custom Format](#scoring). Note that Custom Formats with Default Scores of 0 should NOT have a `trash_scores.default` - `trash_regex` - Link to [regex test cases](#regex-test-cases) for regex -- STARRJSONEXPORT - The exported custom format created within Starr. Note that this will have a - leading `{` that will need to have the `trash` specific regex added after +- STARRJSONEXPORT - The exported custom format created within Starr. Note that this will have a leading `{` that will need to have the `trash` specific regex added after ### File Naming @@ -98,10 +96,10 @@ General Structure ### Hashcode -- When adding the hashcode for **Radarr** use the following naming `CF_name` e.g. the Custom Format `BR-DISK` would be the hash of [`BR-DISK`](https://md5.gromweb.com/?string=BR-DISK) -- When adding the hashcode for **Radarr Anime** use the following naming `Radarr Anime CF_name` e.g. the Custom Format `BR-DISK` would be the hash of [`Radarr Anime BR-DISK`](https://md5.gromweb.com/?string=Radarr+Anime+BR-DISK). +- When adding the hashcode for **Radarr** use the following naming `CF_name` e.g. the Custom Format `BR-DISK` would be the hash of [`BR-DISK`](https://md5.gromweb.com/?string=BR-DISK) +- When adding the hashcode for **Radarr Anime** use the following naming `Radarr Anime CF_name` e.g. the Custom Format `BR-DISK` would be the hash of [`Radarr Anime BR-DISK`](https://md5.gromweb.com/?string=Radarr+Anime+BR-DISK). - When adding the hashcode for **Sonarr** use the following naming `Sonarr CF_name` e.g. the Custom Format `BR-DISK` would be the hash of [`Sonarr BR-DISK`](https://md5.gromweb.com/?string=Sonarr+BR-DISK). -- When adding the hashcode for **Sonarr Anime** use the following naming `Sonarr Anime CF_name` e.g. the Custom Format `BR-DISK` would be the hash of [`Sonarr Anime BR-DISK`](https://md5.gromweb.com/?string=Sonarr+Anime+BR-DISK). +- When adding the hashcode for **Sonarr Anime** use the following naming `Sonarr Anime CF_name` e.g. the Custom Format `BR-DISK` would be the hash of [`Sonarr Anime BR-DISK`](https://md5.gromweb.com/?string=Sonarr+Anime+BR-DISK). ### Regex Test Cases @@ -117,7 +115,7 @@ When updating or adding a new CF the test case url (`trash_regex`) needs to be p ```json { - "trash_regex": "https://regex101.com/r/pADWJD/5", + "trash_regex": "https://regex101.com/r/pADWJD/5" } ``` @@ -127,10 +125,10 @@ When updating or adding a new CF the test case url (`trash_regex`) needs to be p ```json { - "trash_scores": { - "default": 50, - "some_other_profile": 100 - }, + "trash_scores": { + "default": 50, + "some_other_profile": 100 + } } ``` @@ -155,8 +153,7 @@ based on the `.vscode/extensions.json` file; you should install all of them. These prerequisites are taken from the [mkdocs installation instructions][mkdocinstall]. - Install a recent version of [Python 3](https://www.python.org/). -- `pip` is also required, but should come with Python. Run `pip --version` to check if its available - and working. See the [installation instructions](https://pip.pypa.io/en/stable/installation/). +- `pip` is also required, but should come with Python. Run `pip --version` to check if its available and working. See the [installation instructions](https://pip.pypa.io/en/stable/installation/). [mkdocinstall]: https://www.mkdocs.org/user-guide/installation/ diff --git a/docs/.pages b/docs/.pages index fd2c79f68..2daceaa80 100644 --- a/docs/.pages +++ b/docs/.pages @@ -1,12 +1,12 @@ nav: - - Home: index.md - - Radarr - - Sonarr - - Prowlarr - - Bazarr - - Downloaders - - Plex - - Guide-Sync - - Misc - - Hardlinks - - How-to-setup-for: Hardlinks/How-to-setup-for + - Home: index.md + - Radarr + - Sonarr + - Prowlarr + - Bazarr + - Downloaders + - Plex + - Guide-Sync + - Misc + - Hardlinks + - How-to-setup-for: Hardlinks/How-to-setup-for diff --git a/docs/Bazarr/.pages b/docs/Bazarr/.pages index 16f3360c0..3725fba6e 100644 --- a/docs/Bazarr/.pages +++ b/docs/Bazarr/.pages @@ -1,6 +1,6 @@ nav: - - Home: index.md - - Basic-Guide: Setup-Guide.md - - After Install Configuration: After-install-configuration.md - - Scripts: /Bazarr/scripts/ - - Tips \ No newline at end of file + - Home: index.md + - Basic-Guide: Setup-Guide.md + - After Install Configuration: After-install-configuration.md + - Scripts: /Bazarr/scripts/ + - Tips diff --git a/docs/Bazarr/After-install-configuration.md b/docs/Bazarr/After-install-configuration.md index 2460adbb9..915614d24 100644 --- a/docs/Bazarr/After-install-configuration.md +++ b/docs/Bazarr/After-install-configuration.md @@ -1,9 +1,9 @@ - # After Install Configuration After you've installed everything it's best to check all of your settings, !!! warning + Bazarr only searches for subs for Episodes and Movies that are added after the install. So you will need to set the preferred languages for your existing Shows and Movies. diff --git a/docs/Bazarr/Setup-Guide.md b/docs/Bazarr/Setup-Guide.md index 17227ec74..31bb78b20 100644 --- a/docs/Bazarr/Setup-Guide.md +++ b/docs/Bazarr/Setup-Guide.md @@ -33,7 +33,7 @@ Click on `Enabled` **Be aware that when using Bazarr in docker, you cannot reach another container on the same Docker host using the loopback address (ex.: 127.0.0.1 or localhost). Loopback address refers to the Bazarr Docker container, not the Docker host.** 1. Enter the TCP port of your Sonarr instance. Default is 8989. -1. Sonarr uses the Base URL *ONLY* if used with a "Reverse Proxy" (ex: Nginx Proxy Manager or SWAG) and MUST have a leading slash if it is needed (ex: /sonarr). +1. Sonarr uses the Base URL _ONLY_ if used with a "Reverse Proxy" (ex: Nginx Proxy Manager or SWAG) and MUST have a leading slash if it is needed (ex: /sonarr). !!! info @@ -125,7 +125,7 @@ Click on `Enabled` **Be aware that when using Bazarr in docker, you cannot reach another container on the same Docker host using the loopback address (ex.: 127.0.0.1 or localhost). Loopback address refers to the Bazarr Docker container, not the Docker host.** 1. Enter the TCP port of your Radarr instance. Default is 7878. -1. Radarr uses the Base URL *ONLY* if used with a "Reverse Proxy" (ex: Nginx Proxy Manager or SWAG) and MUST have a leading slash if it is needed (ex: /radarr). +1. Radarr uses the Base URL _ONLY_ if used with a "Reverse Proxy" (ex: Nginx Proxy Manager or SWAG) and MUST have a leading slash if it is needed (ex: /radarr). !!! info @@ -224,7 +224,7 @@ Select `Add New Profile` 1. How you want to name your language profile. 1. Click on `Add` to add the languages you enabled earlier in [Subtitle Language](#subtitles-language). 1. Select the languages you want to enable for your profile (Including the optional settings). - - Forced => [FAQ - What are Forced Subtitles](https://wiki.bazarr.media/Troubleshooting/FAQ/#what-are-forced-subtitles){:target="_blank" rel="noopener noreferrer"} + - Forced => [FAQ - What are Forced Subtitles](https://wiki.bazarr.media/Troubleshooting/FAQ/#what-are-forced-subtitles){:target="\_blank" rel="noopener noreferrer"} - HI => Hearing Impaired - Exclude Audio => Exclude if matching audio 1. Optional select the cutoff where you want Bazarr to stop downloading other languages. @@ -297,7 +297,7 @@ Here we will configure some extra settings for your subtitles Here you can select which Anti-Captcha provider you want to use. -[Why (or) do I need the Anti-Captcha ?](https://wiki.bazarr.media/Troubleshooting/FAQ/#why-or-do-i-need-the-anti-captcha){:target="_blank" rel="noopener noreferrer"} +[Why (or) do I need the Anti-Captcha ?](https://wiki.bazarr.media/Troubleshooting/FAQ/#why-or-do-i-need-the-anti-captcha){:target="\_blank" rel="noopener noreferrer"} !!! tip @@ -309,7 +309,7 @@ Here you can select which Anti-Captcha provider you want to use. 1. When searching for subtitles, Bazarr will search less frequently to limit calls to providers. 1. Search multiple providers at once (Don't choose this on low powered devices). -1. If you want to use the embedded subtitles in the media files [More Info](https://wiki.bazarr.media/Additional-Configuration/Settings/#use-embedded-subtitles){:target="_blank" rel="noopener noreferrer"} +1. If you want to use the embedded subtitles in the media files [More Info](https://wiki.bazarr.media/Additional-Configuration/Settings/#use-embedded-subtitles){:target="\_blank" rel="noopener noreferrer"} ### Automatic Subtitles Synchronization @@ -320,6 +320,7 @@ Enable this option for automatic subtitles synchronization. !!! danger "Don't forget to save your settings!!!" ![Save](images/qs-save.png) + --- Now wait until Bazarr gets all the info needed from Sonarr/Radarr. @@ -332,5 +333,5 @@ Now wait until Bazarr gets all the info needed from Sonarr/Radarr. --- -If you still have questions please check the [Troubleshooting](https://wiki.bazarr.media/Troubleshooting/Asking-for-help-or-report-a-problem/){:target="_blank" rel="noopener noreferrer"} section in the wiki. -For more info about the other settings check the [Settings](https://wiki.bazarr.media/Additional-Configuration/Settings/){:target="_blank" rel="noopener noreferrer"} wiki. +If you still have questions please check the [Troubleshooting](https://wiki.bazarr.media/Troubleshooting/Asking-for-help-or-report-a-problem/){:target="\_blank" rel="noopener noreferrer"} section in the wiki. +For more info about the other settings check the [Settings](https://wiki.bazarr.media/Additional-Configuration/Settings/){:target="\_blank" rel="noopener noreferrer"} wiki. diff --git a/docs/Bazarr/Tips/Bazarr-suggested-scoring.md b/docs/Bazarr/Tips/Bazarr-suggested-scoring.md index 83c5e359a..7856be3d7 100644 --- a/docs/Bazarr/Tips/Bazarr-suggested-scoring.md +++ b/docs/Bazarr/Tips/Bazarr-suggested-scoring.md @@ -1,6 +1,6 @@ # Suggested Scoring -You just setup Bazarr and wonder which scoring you should use/setup for your subtitles and sync ? +You just setup Bazarr and wonder which scoring you should use/setup for your subtitles and sync ? I'll going to suggest here a scoring what would work for most common languages, with this scoring 99% of your downloaded subs should be the correct ones for your release. @@ -40,6 +40,7 @@ This score is the minimal score that the subs should match to for your release, This will set the Synchronization Score Threshold, meaning at which score bazarr will sync the subtitles. !!! info + The synchronization is best effort based on the following. - it use the embedded subtitles track as reference, if not present. @@ -52,4 +53,3 @@ This will set the Synchronization Score Threshold, meaning at which score bazarr I personally noticed that when setting it to high 98-100 I would actually get subs that are like 1 second to slow/fast. {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Bazarr/index.md b/docs/Bazarr/index.md index 13a3e09e3..2b36e5aa9 100644 --- a/docs/Bazarr/index.md +++ b/docs/Bazarr/index.md @@ -9,7 +9,7 @@ Here you will find several scripts you can use with Bazarr - (stable) - Builds Pushed after a testing period in development - Github Branch: master -- Docker: [hotio/bazarr:latest](https://hotio.dev/containers/bazarr/){:target="_blank" rel="noopener noreferrer"} +- Docker: [hotio/bazarr:latest](https://hotio.dev/containers/bazarr/){:target="\_blank" rel="noopener noreferrer"} ```bash hotio/bazarr:latest @@ -22,7 +22,7 @@ hotio/bazarr:latest - (development) - Builds pushed when complete - Github Branch: development -- Docker: [hotio/bazarr:nightly](https://hotio.dev/containers/bazarr/){:target="_blank" rel="noopener noreferrer"} +- Docker: [hotio/bazarr:nightly](https://hotio.dev/containers/bazarr/){:target="\_blank" rel="noopener noreferrer"} ```bash hotio/bazarr:nightly diff --git a/docs/Bazarr/scripts/index.md b/docs/Bazarr/scripts/index.md index 2362d8fce..a691aeb92 100644 --- a/docs/Bazarr/scripts/index.md +++ b/docs/Bazarr/scripts/index.md @@ -1,6 +1,7 @@ # Bazarr Scripts !!! note "" + Here you will find a collection of Scripts you can use with Bazarr. Most of them are provided by other users, if you got a script you want to share don't hesitate to create a [PR](https://github.com/TRaSH-Guides/Guides/blob/master/CONTRIBUTING.md) for it diff --git a/docs/Downloaders/.pages b/docs/Downloaders/.pages index 0ef29032d..159119ec7 100644 --- a/docs/Downloaders/.pages +++ b/docs/Downloaders/.pages @@ -1,7 +1,7 @@ nav: - - Home: index.md - - NZBGet - - SABnzbd - - qBittorrent - - Deluge - - ruTorrent + - Home: index.md + - NZBGet + - SABnzbd + - qBittorrent + - Deluge + - ruTorrent diff --git a/docs/Downloaders/Deluge/Basic-Setup.md b/docs/Downloaders/Deluge/Basic-Setup.md index 52ed67c7a..0d4769244 100644 --- a/docs/Downloaders/Deluge/Basic-Setup.md +++ b/docs/Downloaders/Deluge/Basic-Setup.md @@ -1,13 +1,14 @@ # Basic-Setup {! include-markdown "../../../includes/downloaders/basic-setup.md" !} - ------- +--- + !!! Note + Settings that aren't covered means you can change them to your liking or just leave them on default. ------- +--- ## Accessing your settings @@ -28,6 +29,7 @@ Once you are here, you can edit your download settings in the `Downloads` sectio Copy (and delete upon removal) of the .torrent file upon completion. !!! success "" + **Suggested: `Personal preference`** ### Pre-allocated Files @@ -35,20 +37,23 @@ Copy (and delete upon removal) of the .torrent file upon completion. Pre-allocate disk space for the added torrents. This limits fragmentation and also makes sure if you use a cache drive or a feeder disk, that the space is available. !!! success "" + **Suggested: `Enabled`** !!! warning - Do not set Pre-allocated disk space if you are using ZFS as your filesystem as ZFS [does not support fallocate](https://github.com/openzfs/zfs/issues/326){:target="_blank" rel="noopener noreferrer"} + + Do not set Pre-allocated disk space if you are using ZFS as your filesystem as ZFS [does not support fallocate](https://github.com/openzfs/zfs/issues/326){:target="\_blank" rel="noopener noreferrer"} {! include-markdown "../../../includes/downloaders/warning-path-location.md" !} ------- +--- ## Bandwidth Here you can set your rate limits, meaning your maximum download/upload/connections. !!! info + In Deluge, the value of `-1` is used for "infinity" or "unlimited". ![!Bandwidth Settings](images/Deluge-bandwidth-settings.png) @@ -60,6 +65,7 @@ The best settings depend on many factors. - Bandwidth needed by other services in your home network. !!! success "" + **Suggested:** `For a home connection that you use with others it's best practice to set the upload/download rate to about 70-80% of your maximum upload/download speed.` ## Global Bandwidth Limits @@ -84,13 +90,14 @@ In addition to global limits, you can set limits per torrent. ![!Per-Torrent Bandwidth Settings](images/Deluge-torrentbw-settings.png) ------- +--- ## Queue These settings are intended to manage your number of active seeds, downloads, and uploads. !!! info + In Deluge, the value of `-1` is used for "infinity" or "unlimited". ### Active Torrents @@ -105,7 +112,7 @@ Unless you have a specific reason, `Total` can be set to `-1`. These are torrent I recommend using the seeding goals in your Starr Apps indexer settings (enable advanced) to remove completed downloads. These sections are then not necessary. ------- +--- ## Network @@ -116,16 +123,19 @@ This is where you will bind Deluge to a specific interface/address, specify port ### Incoming Port !!! info "" - You've followed the [Setup TorGuard for port forwarding](/Misc/How-to-setup-Torguard-for-port-forwarding/){:target="_blank" rel="noopener noreferrer"} and want to know where in your download client you should add the port you've port forwarded. + + You've followed the [Setup TorGuard for port forwarding](/Misc/How-to-setup-Torguard-for-port-forwarding/){:target="\_blank" rel="noopener noreferrer"} and want to know where in your download client you should add the port you've port forwarded. `Incoming Port` should be set to a specific port that you have opened/forwarded (if you are behind any NAT/Firewall/VPN.) !!! WARNING + Default ports of 6880-6890 are not recommended. Make sure you click `Test Active Port` and get a ✓ before moving on. !!! success "" + **Suggested: `Critical`** ### Encryption @@ -133,6 +143,7 @@ Make sure you click `Test Active Port` and get a ✓ before moving on. Encryption should be enabled on both `Incoming` and `Outgoing`. The default `Level` of `Either` will accept both encrypted and standard connections. !!! success "" + **Suggested: `Level = Full Stream`** ### Network Extras @@ -140,6 +151,7 @@ Encryption should be enabled on both `Incoming` and `Outgoing`. The default `Lev You can configure your network protocols in this section. Depending on which type of tracker you use, some of these will be beneficial while on other trackers (private) it will put you at risk of being banned/disabled. !!! warning + Please read this section carefully. 1. UPnP and NAT-PMP should be both disabled in your router, as well as in Deluge, as they can pose security risks. @@ -147,6 +159,7 @@ You can configure your network protocols in this section. Depending on which typ ![!Network UPNP](images/Deluge-network-extras-upnp.png) !!! success "" + **Suggested: `Disabled`** 1. Public trackers can benefit from having settings like DHT (Distributed Hash Table) and Peer Exchange (PEX) enabled. These protocols rely on sources besides the trackers to get peers. **The following settings are recommended ONLY for public trackers.** @@ -154,6 +167,7 @@ You can configure your network protocols in this section. Depending on which typ ![!Network Extras (Public)](images/Deluge-network-extras-public.png) !!! success "" + **Suggested: `Recommended`** 1. Decent private trackers will use the "private flag" and ignore these settings by default. However, it is strongly recommended that you use the following settings if you use private trackers. Almost all private trackers have rules stating that you must disable DHT, PEX, and LSD/LPD (Local Peer Discovery). Failing to do so puts your account at risk of being disabled. @@ -161,9 +175,10 @@ You can configure your network protocols in this section. Depending on which typ ![!Network Extras (Public)](images/Deluge-network-extras.png) !!! success "" + **Suggested: `Disabled`** ------- +--- ## Plugins @@ -172,9 +187,11 @@ Finally, you will want to enable some plugins. There are plenty of plugins on th ![!Plugin Settings](images/Deluge-plugin-settings.png) !!! tip + If you are familiar with the client and plugins you can find more information [here](./Tips/Plugins.md) !!! info + If you are running a docker container, such as binhex's image, the `WebUI` plugin may not need to be enabled. Instead, it may be configured in the container. ### WebUI @@ -182,6 +199,7 @@ Finally, you will want to enable some plugins. There are plenty of plugins on th Once you have enabled the `WebUI` plugin, it will appear in your `Preferences` menu list, and you will need to enable the web interface and set the port you want the WebUI to listen on. !!! info + The default WebUI password is `deluge` and you can change that in preferences inside the WebUI once you access it through your browser. Remember your password, we will need this later. @@ -193,4 +211,3 @@ The `Label` plugin will allow you to categorize/sort your torrents. You can assi Labels are a valuable tool, if used properly, to keep your torrents managed and organized. {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Downloaders/Deluge/Port-Forwarding.md b/docs/Downloaders/Deluge/Port-Forwarding.md index 509f1b93a..fcdf64395 100644 --- a/docs/Downloaders/Deluge/Port-Forwarding.md +++ b/docs/Downloaders/Deluge/Port-Forwarding.md @@ -7,17 +7,19 @@ The `Network` section of `Preferences` is where you will bind Deluge to a specif ## Incoming Port !!! info "" - You've followed the [Setup TorGuard for port forwarding](/Misc/How-to-setup-Torguard-for-port-forwarding/){:target="_blank" rel="noopener noreferrer"} and want to know where in your download client you should add the port you've forwarded. + + You've followed the [Setup TorGuard for port forwarding](/Misc/How-to-setup-Torguard-for-port-forwarding/){:target="\_blank" rel="noopener noreferrer"} and want to know where in your download client you should add the port you've forwarded. `Incoming Port` should be set to a specific port that you have opened/forwarded (if you are behind any NAT/Firewall/VPN.) !!! WARNING + Default ports of 6880-6890 are not recommended. Make sure you click `Test Active Port` and get a ✓ before moving on. !!! success "" + **Suggested: `Critical`** {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Downloaders/Deluge/Tips/Plugins.md b/docs/Downloaders/Deluge/Tips/Plugins.md index c55708578..5fb5c043c 100644 --- a/docs/Downloaders/Deluge/Tips/Plugins.md +++ b/docs/Downloaders/Deluge/Tips/Plugins.md @@ -3,9 +3,11 @@ Here you will find a list of included and available plugins that may be useful. These are not required but should be seen as ways to advance/customize your setup once you understand the client and its behaviors. !!! info + All plugins are .egg files, these files will need to be placed inside your deluge config/data directory, inside the `plugins` folder. If you are using a thin client, they will also need to be present on your local instance as well. !!! tip + Links to the plugins below are directly to the latest versions available on Deluge's forums, see the original and subsequent posts for more information concerning the plugin's features and iterations. --- @@ -41,6 +43,7 @@ Use at your own discretion. Execute will run a program or script upon reaching a specified event. It is recommended that after adding events, you restart Deluge. !!! info + Checking or Rechecking a torrent will not trigger the "Torrent Completed" event, you will need to actually download the torrent to trigger this. --- @@ -92,11 +95,13 @@ Other forks, and the original plugin, can be found on the GitHub page. If you need to set libtorrent settings to anything other than their defaults, this is the plugin for you. There are presets, but you can fine-tune the settings as you need as well. !!! ATTENTION + There is a known bug when trying to enable settings in ltConfig, double-clicking will sometimes not "check" the option. Simply click the option, then use the space bar to enable that checkbox. !!! tips + If you want to seed over 1600 torrents, you will need this plugin. You will need to increase the active_tracker_limit. If your tracker's SSL certificate has expired, you can disable validate_https_trackers to bypass validation. @@ -106,5 +111,3 @@ See the forum thread for details below. [ltConfig](https://forum.deluge-torrent.org/viewtopic.php?p=235653#p235653){:target="\_blank" rel="noopener noreferrer"} {! include-markdown "../../../../includes/support.md" !} - - diff --git a/docs/Downloaders/Deluge/Tips/Thin-Client.md b/docs/Downloaders/Deluge/Tips/Thin-Client.md index b4d41bea8..f56bbe38d 100644 --- a/docs/Downloaders/Deluge/Tips/Thin-Client.md +++ b/docs/Downloaders/Deluge/Tips/Thin-Client.md @@ -5,6 +5,7 @@ If you are already running Deluge in `daemon` or `console` mode, or running via Docker, this is usually enabled by default. You will need to check your compose or core.conf for the "daemon_port" if you do not know it. !!! tip + You can also access the daemon settings in `Preferences` in the WebUI if you do not have access to the GTK/UI You will need to have "Allow Remote Connections" enabled if you are not connecting to Deluge from localhost. @@ -12,11 +13,12 @@ You will need to have "Allow Remote Connections" enabled if you are not connecti ![!Daemon Settings](../images/Deluge-tc-daemon.png) !!! info - If you do not have access to the WebUI, and are instead doing this by editing Deluge's `core.conf`, you will need to change "allow_remote" to true. - Restart Deluge for the changes to take effect. + If you do not have access to the WebUI, and are instead doing this by editing Deluge's `core.conf`, you will need to change "allow_remote" to true. + + Restart Deluge for the changes to take effect. ------- +--- ## Switching to Thin-Client @@ -29,7 +31,8 @@ Simply go to `Edit` => `Preferences` and switch from `Standalone` to `Thin Clien Restart Deluge. !!! info - You will still need to set the daemon to run at start-up. + + You will still need to set the daemon to run at start-up. ### Connections Manager @@ -38,11 +41,13 @@ After switching to `Thin Client` you will need to connect to your daemon. Go to ![!Label Options](../images/Deluge-tc-connman.png) !!! ATTENTION + If you mistyped your password while adding the connection, it will prompt you to enter it. There is a bug that does not accept/save the correct password unless it is entered through the `Add`/`Edit` Menu. If you mistype the password while you are adding the connection, go to `Edit` on the connection and retype the password into the password field. !!! WARNING + You can find your users and passwords for the daemon in the `auth` file inside your appdata/config folder for Deluge. You can add users in the `Daemon` settings in preferences as well. @@ -50,5 +55,3 @@ After switching to `Thin Client` you will need to connect to your daemon. Go to BE AWARE: These passwords are stored in PLAIN-TEXT in your `auth` file. {! include-markdown "../../../../includes/support.md" !} - - diff --git a/docs/Downloaders/Deluge/Tips/Unraid-Mover.md b/docs/Downloaders/Deluge/Tips/Unraid-Mover.md index 40e184247..d3966d7f6 100644 --- a/docs/Downloaders/Deluge/Tips/Unraid-Mover.md +++ b/docs/Downloaders/Deluge/Tips/Unraid-Mover.md @@ -23,9 +23,9 @@ Using the following instructions will allow you to move the files with the use o Download the following standalone Python script. -- [Script (deluge-mover.py)](https://raw.githubusercontent.com/zakkarry/deluge-mover/master/deluge-mover.py){:target="_blank" rel="noopener noreferrer"} +- [Script (deluge-mover.py)](https://raw.githubusercontent.com/zakkarry/deluge-mover/master/deluge-mover.py){:target="\_blank" rel="noopener noreferrer"} -Thanks to [zakary](https://github.com/zakkarry){:target="_blank" rel="noopener noreferrer"} (Developer on [cross-seed](https://github.com/cross-seed/cross-seed){:target="_blank" rel="noopener noreferrer"}) +Thanks to [zakary](https://github.com/zakkarry){:target="\_blank" rel="noopener noreferrer"} (Developer on [cross-seed](https://github.com/cross-seed/cross-seed){:target="\_blank" rel="noopener noreferrer"}) ### Plugins @@ -33,13 +33,13 @@ Install the following Plugins. - User Scripts - NerdTools - - python3 (*1*) - - python-setuptools (*1*) - - python-pip (*1*) + - python3 (_1_) + - python-setuptools (_1_) + - python-pip (_1_) -!!! info "(*1*) These need to be installed from NerdTools." +!!! info "(_1_) These need to be installed from NerdTools." ------- +--- ## Setup @@ -52,6 +52,7 @@ After you install the needed `Plugins` - it's time to configure everything. You can choose one of the following 3 options (select a tab) to install `requests`. === "User scripts" + With this option, we're going to install the `requests` module when the Array is started the first time. In your unRAID Dashboard, go to your `Settings` tab and select `User Scripts` in the `User Utilities` section at the bottom. @@ -86,7 +87,9 @@ You can choose one of the following 3 options (select a tab) to install `request Click on `Apply`. Finally, you will need to choose `RUN IN BACKGROUND` or restart your unRAID server to install the `requests` module. + === "Python venv" + With this option, we're going to create a [Python virtual environment](https://docs.python.org/3/library/venv.html) on our disk. We will use this to run and store dependencies (`requests`) for this specific environment. By doing this, we will **only need to configure this once** and it will be persistent after reboots *(this differs from the previous steps)*. @@ -94,6 +97,7 @@ You can choose one of the following 3 options (select a tab) to install `request First, you need to choose a location to start a new Python environment. !!! info + In the next steps, you will be asked to choose a [location to store the script](#copy-the-script-to-your-preferred-location), try to be consistent. Suggestions: @@ -116,8 +120,11 @@ You can choose one of the following 3 options (select a tab) to install `request ``` !!! info + Replace `/mnt/user/data/scripts/.venv` with the path you have chosen. + === "Go File" + With this option, we're going to install the `requests` module when the unRAID server is started. On your USB stick/key go to `/boot/config` and open the `go` file with your text editor ([VSCode](https://code.visualstudio.com/){:target="_blank" rel="noopener noreferrer"}/[Notepad++](https://notepad-plus-plus.org/downloads/){:target="_blank" rel="noopener noreferrer"}). @@ -130,11 +137,11 @@ You can choose one of the following 3 options (select a tab) to install `request Restart your unRAID Server or run the above command from the terminal. ------- +--- ### Script -Now, using your favorite text editor ([VSCode](https://code.visualstudio.com/){:target="_blank" rel="noopener noreferrer"}/[Notepad++](https://notepad-plus-plus.org/downloads/){:target="_blank" rel="noopener noreferrer"}) edit the script you downloaded at the beginning of the guide ([HERE](#deluge-mover-script)). +Now, using your favorite text editor ([VSCode](https://code.visualstudio.com/){:target="\_blank" rel="noopener noreferrer"}/[Notepad++](https://notepad-plus-plus.org/downloads/){:target="\_blank" rel="noopener noreferrer"}) edit the script you downloaded at the beginning of the guide ([HERE](#deluge-mover-script)). You only need to change a few options at the top of the script. @@ -177,12 +184,13 @@ age_day_min = 3 age_day_max = 0 ``` -- `deluge_webui` => The URL you use to access Deluge locally. (*the* `"` *should remain*) -- `deluge_password` => Your Deluge WebUI `Password`. (*the* `"` *should remain*) +- `deluge_webui` => The URL you use to access Deluge locally. (_the_ `"` _should remain_) +- `deluge_password` => Your Deluge WebUI `Password`. (_the_ `"` _should remain_) - `check_fs` => If set to `True`, it will check for the file on the cache drive before pausing. - `use_mover_old` => See below. !!! warning "" + - If you do not use `Mover Tuning`, you **DO NOT** have to make any changes. - If you use `Mover Tuning` but **DON'T** want to use it for the script, change this to `True` - If you use `Mover Tuning` and **DO** want to use it for the script, you will not have to make any changes. However, for this option, inside the `Mover Tuner` you will need to set `Move Now button follows plugin filters` to `Yes` and `Disable Mover running on a schedule` to `No`. @@ -244,6 +252,7 @@ Choose your method (select a tab) and copy/paste the script in the new window th ``` !!! info + Replace `/mnt/user/data/scripts/` in the script with the path you have chosen for the Python script. ![!Bash script](images/Unraid-settings-user-scripts-deluge-mover.png) diff --git a/docs/Downloaders/Deluge/Using-Labels.md b/docs/Downloaders/Deluge/Using-Labels.md index 6da775b37..36f1d5dba 100644 --- a/docs/Downloaders/Deluge/Using-Labels.md +++ b/docs/Downloaders/Deluge/Using-Labels.md @@ -3,6 +3,7 @@ ## Labels !!! info + Labels are the equivalent of categories for qBittorrent, and how you can manage and organize your torrents in groups. Starr apps can use labels in Deluge to keep track of downloads to monitor, rather than watching every torrent in your client. ### Managing Labels @@ -16,6 +17,7 @@ Once you have [enabled the `Label` plugin](./Basic-Setup.md#plugins), you simply Each label can be customized by selecting the label, right-clicking, and going to its `Label Options`. Here you can specify the bandwidth settings, download location settings, and even seed goals. !!! info + In Deluge, the value of `-1` is used for "infinity" or "unlimited". Below you see an example of the bandwidth options available for a specific label. These settings will be automatically applied as long as a torrent has this label. @@ -27,9 +29,9 @@ If you want torrents to be moved upon completion to a specific folder, you can s ![!Label Folders](images/Deluge-label-folders.png) !!! info + Enabling a "Move completed to" for a label may require you to restart Deluge before it will take effect. Rechecking torrents will not trigger the "completion" call. {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Downloaders/Deluge/index.md b/docs/Downloaders/Deluge/index.md index d04f3a51f..12e64c1aa 100644 --- a/docs/Downloaders/Deluge/index.md +++ b/docs/Downloaders/Deluge/index.md @@ -4,7 +4,7 @@ Deluge is an open-source cross-platform torrent client written in Python. It has been around since 2006 and offers many features that, while niche, many consider to be critical to their setups. ------- +--- ## Installation @@ -15,6 +15,7 @@ Information sourced mostly from [Deluge's Downloads Page](https://dev.deluge-tor You can find the latest Windows installers [here](https://ftp.osuosl.org/pub/deluge/windows/?C=M;O=D) !!! note + `lt2.0` in the filename means the installer includes libtorrent 2.0.x instead of the older 1.2.x ### Linux (Native) @@ -32,9 +33,11 @@ Using `pip3` to install (included in the Python package) pip3 install deluge !!! info + You can find this project's pip repo @ [pypi.org/project/deluge/](https://pypi.org/project/deluge/) !!! Advanced + If you want to install deluged as a service, documentation can be found [here](https://deluge.readthedocs.io/en/latest/how-to/systemd-service.html) ### Docker Containers @@ -46,4 +49,3 @@ Using `pip3` to install (included in the Python package) [BinHex VPN](https://hub.docker.com/r/binhex/arch-delugevpn) {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Downloaders/NZBGet/.pages b/docs/Downloaders/NZBGet/.pages index ab65d0ac7..d57b1cadd 100644 --- a/docs/Downloaders/NZBGet/.pages +++ b/docs/Downloaders/NZBGet/.pages @@ -1,4 +1,4 @@ nav: - - Basic-Setup: Basic-Setup.md - - Path and Categories: Paths-and-Categories.md - - Scripts: /Downloaders/NZBGet/scripts/ \ No newline at end of file + - Basic-Setup: Basic-Setup.md + - Path and Categories: Paths-and-Categories.md + - Scripts: /Downloaders/NZBGet/scripts/ diff --git a/docs/Downloaders/NZBGet/Basic-Setup.md b/docs/Downloaders/NZBGet/Basic-Setup.md index 24cbff7df..dcf7c25c2 100644 --- a/docs/Downloaders/NZBGet/Basic-Setup.md +++ b/docs/Downloaders/NZBGet/Basic-Setup.md @@ -3,9 +3,8 @@ !!! danger "NZBGet development has been officially abandoned by the developer :bangbang:" {! include-markdown "../../../includes/downloaders/basic-setup.md" !} - ------- +--- ## Some Basics @@ -63,6 +62,7 @@ I will only explain the so called most important paths. ![!incoming](images/incoming.png) !!! info + `AppendCategoryDir`: Create subdirectory with category-name in destination-directory. ## DOWNLOAD QUEUE @@ -70,6 +70,7 @@ I will only explain the so called most important paths. ![!queue](images/queue.png) !!! warning + `WriteBuffer`: If you're low on memory don't set this to high. ## LOGGING @@ -85,6 +86,7 @@ I will only explain the so called most important paths. ![!unpack](images/unpack.png) !!! info + `DirectUnpack`: This might lower your download speed but the overall time could be faster. (disable on low powered devices) ## EXTENSION SCRIPTS @@ -93,7 +95,7 @@ I will only explain the so called most important paths. Depending if you're using some NZBGet script here you can change the order or when it should be used ------- +--- ## Recommended Sonarr/Radarr Settings @@ -127,4 +129,3 @@ Being that Sonarr/Radarr only looks at the last xx amount in the queue/history. and both boxes under `Failed Download Handling` at step 4. {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Downloaders/NZBGet/Paths-and-Categories.md b/docs/Downloaders/NZBGet/Paths-and-Categories.md index 2f16d23b8..2db451a45 100644 --- a/docs/Downloaders/NZBGet/Paths-and-Categories.md +++ b/docs/Downloaders/NZBGet/Paths-and-Categories.md @@ -3,7 +3,6 @@ !!! danger "NZBGet development has been officially abandoned by the developer :bangbang:" {! include-markdown "../../../includes/downloaders/path.md" !} - --- @@ -16,7 +15,5 @@ ![nzbget-settings-categories](/Hardlinks/images/nzbget-settings-categories.png) {! include-markdown "../../../includes/downloaders/warning-path-location.md" !} - {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Downloaders/NZBGet/scripts/Clean/Clean.py b/docs/Downloaders/NZBGet/scripts/Clean/Clean.py index ccbf82780..d5ea3242b 100644 --- a/docs/Downloaders/NZBGet/scripts/Clean/Clean.py +++ b/docs/Downloaders/NZBGet/scripts/Clean/Clean.py @@ -18,44 +18,44 @@ from __future__ import print_function import os, re, sys # Exit codes used by NZBGet -POSTPROCESS_SUCCESS=93 -POSTPROCESS_ERROR=94 -POSTPROCESS_SKIP=95 +POSTPROCESS_SUCCESS = 93 +POSTPROCESS_ERROR = 94 +POSTPROCESS_SKIP = 95 # Check if the script is called from NZBGet 13.0 or later -if not 'NZBOP_SCRIPTDIR' in os.environ: - print('*** NZBGet post-processing script ***') - print('This script is supposed to be called from NZBGet (13.0 or later).') - sys.exit(POSTPROCESS_ERROR) - -if not 'NZBNP_NZBNAME' in os.environ: - print('[WARN] Filename not found in environment') - sys.exit(POSTPROCESS_ERROR) - -fwp = os.environ['NZBNP_NZBNAME'] -fwp = re.sub('(?i)-4P\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)-4Planet\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)-AsRequested\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)-AsRequested-xpost\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)-BUYMORE\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)-Chamele0n\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)-GEROV\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)-iNC0GNiTO\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)-NZBGeek\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)-Obfuscated\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)-postbot\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)-Rakuv\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)-Scrambled\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)-WhiteRev\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)-xpost\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)\[eztv([ ._-]re)?\]\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)\[TGx\]\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)\[TGx\]-xpost\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)\[ettv\]\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)-WRTEAM\.nzb$', '.nzb', fwp) -fwp = re.sub('(?i)-CAPTCHA\.nzb$', '.nzb', fwp) -fwp = re.sub(r'(\-[^-.\n]*)(\-.{4})?\.nzb$', r'\1.nzb', fwp) +if not "NZBOP_SCRIPTDIR" in os.environ: + print("*** NZBGet post-processing script ***") + print("This script is supposed to be called from NZBGet (13.0 or later).") + sys.exit(POSTPROCESS_ERROR) + +if not "NZBNP_NZBNAME" in os.environ: + print("[WARN] Filename not found in environment") + sys.exit(POSTPROCESS_ERROR) + +fwp = os.environ["NZBNP_NZBNAME"] +fwp = re.sub("(?i)-4P\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)-4Planet\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)-AsRequested\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)-AsRequested-xpost\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)-BUYMORE\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)-Chamele0n\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)-GEROV\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)-iNC0GNiTO\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)-NZBGeek\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)-Obfuscated\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)-postbot\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)-Rakuv\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)-Scrambled\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)-WhiteRev\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)-xpost\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)\[eztv([ ._-]re)?\]\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)\[TGx\]\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)\[TGx\]-xpost\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)\[ettv\]\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)-WRTEAM\.nzb$", ".nzb", fwp) +fwp = re.sub("(?i)-CAPTCHA\.nzb$", ".nzb", fwp) +fwp = re.sub(r"(\-[^-.\n]*)(\-.{4})?\.nzb$", r"\1.nzb", fwp) if fwp: - print('[NZB] NZBNAME=', fwp, sep='') + print("[NZB] NZBNAME=", fwp, sep="") sys.exit(POSTPROCESS_SUCCESS) diff --git a/docs/Downloaders/NZBGet/scripts/HashRenamer/HashRenamer.py b/docs/Downloaders/NZBGet/scripts/HashRenamer/HashRenamer.py index d2957d263..ffc6d8e77 100644 --- a/docs/Downloaders/NZBGet/scripts/HashRenamer/HashRenamer.py +++ b/docs/Downloaders/NZBGet/scripts/HashRenamer/HashRenamer.py @@ -43,51 +43,73 @@ NZBGET_POSTPROCESS_NONE = 95 # EXTENSION STUFF ############################################################ + def do_check(): - if 'NZBOP_SCRIPTDIR' not in os.environ: + if "NZBOP_SCRIPTDIR" not in os.environ: print("This script can only be called from NZBGet (11.0 or later).") sys.exit(0) - if os.environ['NZBOP_VERSION'][0:5] < '11.0': - print("[ERROR] NZBGet Version %s is not supported. Please update NZBGet." % (str(os.environ['NZBOP_VERSION']))) + if os.environ["NZBOP_VERSION"][0:5] < "11.0": + print( + "[ERROR] NZBGet Version %s is not supported. Please update NZBGet." + % (str(os.environ["NZBOP_VERSION"])) + ) sys.exit(0) - print("Script triggered from NZBGet Version %s." % (str(os.environ['NZBOP_VERSION']))) + print( + "Script triggered from NZBGet Version %s." % (str(os.environ["NZBOP_VERSION"])) + ) status = 0 - if 'NZBPP_TOTALSTATUS' in os.environ: - if not os.environ['NZBPP_TOTALSTATUS'] == 'SUCCESS': - print("[ERROR] Download failed with status %s." % (os.environ['NZBPP_STATUS'])) + if "NZBPP_TOTALSTATUS" in os.environ: + if not os.environ["NZBPP_TOTALSTATUS"] == "SUCCESS": + print( + "[ERROR] Download failed with status %s." % (os.environ["NZBPP_STATUS"]) + ) status = 1 else: # Check par status - if os.environ['NZBPP_PARSTATUS'] == '1' or os.environ['NZBPP_PARSTATUS'] == '4': - print("[ERROR] Par-repair failed, setting status \"failed\".") + if os.environ["NZBPP_PARSTATUS"] == "1" or os.environ["NZBPP_PARSTATUS"] == "4": + print('[ERROR] Par-repair failed, setting status "failed".') status = 1 # Check unpack status - if os.environ['NZBPP_UNPACKSTATUS'] == '1': - print("[ERROR] Unpack failed, setting status \"failed\".") + if os.environ["NZBPP_UNPACKSTATUS"] == "1": + print('[ERROR] Unpack failed, setting status "failed".') status = 1 - if os.environ['NZBPP_UNPACKSTATUS'] == '0' and os.environ['NZBPP_PARSTATUS'] == '0': + if ( + os.environ["NZBPP_UNPACKSTATUS"] == "0" + and os.environ["NZBPP_PARSTATUS"] == "0" + ): # Unpack was skipped due to nzb-file properties or due to errors during par-check - if os.environ['NZBPP_HEALTH'] < 1000: - print("[ERROR] Download health is compromised and Par-check/repair disabled or no .par2 files found. " \ - "Setting status \"failed\".") - print("[ERROR] Please check your Par-check/repair settings for future downloads.") + if os.environ["NZBPP_HEALTH"] < 1000: + print( + "[ERROR] Download health is compromised and Par-check/repair disabled or no .par2 files found. " + 'Setting status "failed".' + ) + print( + "[ERROR] Please check your Par-check/repair settings for future downloads." + ) status = 1 else: - print("[ERROR] Par-check/repair disabled or no .par2 files found, and Unpack not required. Health is " \ - "ok so handle as though download successful.") - print("[WARNING] Please check your Par-check/repair settings for future downloads.") + print( + "[ERROR] Par-check/repair disabled or no .par2 files found, and Unpack not required. Health is " + "ok so handle as though download successful." + ) + print( + "[WARNING] Please check your Par-check/repair settings for future downloads." + ) # Check if destination directory exists (important for reprocessing of history items) - if not os.path.isdir(os.environ['NZBPP_DIRECTORY']): - print("[ERROR] Nothing to post-process: destination directory", os.environ[ - 'NZBPP_DIRECTORY'], "doesn't exist. Setting status \"failed\".") + if not os.path.isdir(os.environ["NZBPP_DIRECTORY"]): + print( + "[ERROR] Nothing to post-process: destination directory", + os.environ["NZBPP_DIRECTORY"], + 'doesn\'t exist. Setting status "failed".', + ) status = 1 # All checks done, now launching the script. @@ -98,9 +120,9 @@ def do_check(): def get_file_name(path): try: file_name = os.path.basename(path) - extensions = re.findall(r'\.([^.]+)', file_name) - ext = '.'.join(extensions) - name = file_name.replace(".%s" % ext, '') + extensions = re.findall(r"\.([^.]+)", file_name) + ext = ".".join(extensions) + name = file_name.replace(".%s" % ext, "") return name, ext except Exception: pass @@ -109,10 +131,10 @@ def get_file_name(path): def is_file_hash(file_name): hash_regexp = [ - r'^[a-fA-F0-9]{40}$', - r'^[a-fA-F0-9]{32}$', - r'^[a-f0-9]{128}$', - r'^[a-zA-Z0-9]{42}$' + r"^[a-fA-F0-9]{40}$", + r"^[a-fA-F0-9]{32}$", + r"^[a-f0-9]{128}$", + r"^[a-zA-Z0-9]{42}$", ] for hash in hash_regexp: if re.match(hash, file_name): @@ -146,20 +168,20 @@ def find_files(folder, extension=None, depth=None): do_check() # retrieve required variables -directory = os.path.normpath(os.environ['NZBPP_DIRECTORY']) -nzb_name = os.environ['NZBPP_NZBFILENAME'] +directory = os.path.normpath(os.environ["NZBPP_DIRECTORY"]) +nzb_name = os.environ["NZBPP_NZBFILENAME"] if nzb_name is None: print("[ERROR] Unable to retrieve NZBPP_NZBFILENAME") sys.exit(NZBGET_POSTPROCESS_ERROR) -nzb_name = nzb_name.replace('.nzb', '') +nzb_name = nzb_name.replace(".nzb", "") -print(("[INFO] Using \"%s\" for hashed filenames" % nzb_name)) -print(("[INFO] Scanning \"%s\" for hashed filenames" % directory)) +print(('[INFO] Using "%s" for hashed filenames' % nzb_name)) +print(('[INFO] Scanning "%s" for hashed filenames' % directory)) # scan for files found_files = find_files(directory) if not found_files: - print(("[INFO] No files were found in \"%s\"" % directory)) + print(('[INFO] No files were found in "%s"' % directory)) sys.exit(NZBGET_POSTPROCESS_NONE) else: print(("[INFO] Found %d files to check for hashed filenames" % len(found_files))) @@ -173,13 +195,20 @@ else: # is this a file hash if is_file_hash(file_name): new_file_path = os.path.join(dir_name, "%s.%s" % (nzb_name, file_ext)) - print(("[INFO] Moving \"%s\" to \"%s\"" % (found_file_path, new_file_path))) + print(('[INFO] Moving "%s" to "%s"' % (found_file_path, new_file_path))) try: shutil.move(found_file_path, new_file_path) moved_files += 1 except Exception: - print(("[ERROR] Failed moving \"%s\" to \"%s\"" % (found_file_path, new_file_path))) - - print(("[INFO] Finished processing \"%s\", moved %d files" % (directory, moved_files))) - -sys.exit(NZBGET_POSTPROCESS_SUCCESS) \ No newline at end of file + print( + ( + '[ERROR] Failed moving "%s" to "%s"' + % (found_file_path, new_file_path) + ) + ) + + print( + ('[INFO] Finished processing "%s", moved %d files' % (directory, moved_files)) + ) + +sys.exit(NZBGET_POSTPROCESS_SUCCESS) diff --git a/docs/Downloaders/NZBGet/scripts/WtFnZb-Renamer/WtFnZb-Renamer.py b/docs/Downloaders/NZBGet/scripts/WtFnZb-Renamer/WtFnZb-Renamer.py index 5eadc8ef2..a63b6d1a8 100644 --- a/docs/Downloaders/NZBGet/scripts/WtFnZb-Renamer/WtFnZb-Renamer.py +++ b/docs/Downloaders/NZBGet/scripts/WtFnZb-Renamer/WtFnZb-Renamer.py @@ -30,47 +30,56 @@ POSTPROCESS_ERROR = 94 try: from lxml import etree except ImportError: - print(u'[ERROR] Python lxml required. Please install with "sudo apt install python-lxml" or "pip install lxml".') + print( + '[ERROR] Python lxml required. Please install with "sudo apt install python-lxml" or "pip install lxml".' + ) sys.exit(POSTPROCESS_ERROR) patterns = ( - re.compile(r'^(?P.*\[PRiVATE\]-\[WtFnZb\]-)' - r'\[(?P\d+)\]-\[(?P\d+)\/(?P.{3,}?)\]' - r'\s+-\s+""\s+yEnc\s+', - re.MULTILINE | re.UNICODE), - re.compile(r'^(?P.*\[PRiVATE\]-\[WtFnZb\]-)' - r'\[(?P.{3,}?)\]-\[(?P\d+)/(?P\d+)\]' - r'\s+-\s+""\s+yEnc\s+', - re.MULTILINE | re.UNICODE)) - -nzb_dir = os.getenv('NZBNP_DIRECTORY') -nzb_filename = os.getenv('NZBNP_FILENAME') -nzb_name = os.getenv('NZBNP_NZBNAME') -nzb_file_naming = os.getenv('NZBOP_FILENAMING') + re.compile( + r"^(?P.*\[PRiVATE\]-\[WtFnZb\]-)" + r"\[(?P\d+)\]-\[(?P\d+)\/(?P.{3,}?)\]" + r'\s+-\s+""\s+yEnc\s+', + re.MULTILINE | re.UNICODE, + ), + re.compile( + r"^(?P.*\[PRiVATE\]-\[WtFnZb\]-)" + r"\[(?P.{3,}?)\]-\[(?P\d+)/(?P\d+)\]" + r'\s+-\s+""\s+yEnc\s+', + re.MULTILINE | re.UNICODE, + ), +) + +nzb_dir = os.getenv("NZBNP_DIRECTORY") +nzb_filename = os.getenv("NZBNP_FILENAME") +nzb_name = os.getenv("NZBNP_NZBNAME") +nzb_file_naming = os.getenv("NZBOP_FILENAMING") if nzb_dir is None or nzb_filename is None or nzb_name is None: - print('Please run as NZBGet plugin') + print("Please run as NZBGet plugin") sys.exit(POSTPROCESS_ERROR) -if nzb_file_naming is not None and nzb_file_naming.lower() != 'nzb': - print(u'[ERROR] NZBGet setting FileNaming (under Download Queue) ' - u'must be set to "Nzb" for this extension to work correctly, exiting.') +if nzb_file_naming is not None and nzb_file_naming.lower() != "nzb": + print( + "[ERROR] NZBGet setting FileNaming (under Download Queue) " + 'must be set to "Nzb" for this extension to work correctly, exiting.' + ) sys.exit(POSTPROCESS_ERROR) if not os.path.exists(nzb_dir): - print('[ERROR] NZB directory doesn\'t exist, exiting') + print("[ERROR] NZB directory doesn't exist, exiting") sys.exit(POSTPROCESS_ERROR) -if not nzb_filename.lower().endswith('.nzb'): - print(u'[ERROR] {} is not a .nzb file.'.format(nzb_filename)) +if not nzb_filename.lower().endswith(".nzb"): + print("[ERROR] {} is not a .nzb file.".format(nzb_filename)) sys.exit(POSTPROCESS_ERROR) nzb = os.path.join(nzb_dir, nzb_filename) if not os.path.exists(nzb): - print('[ERROR] {nzb} doesn\'t exist, exiting'.format(nzb=nzb)) + print("[ERROR] {nzb} doesn't exist, exiting".format(nzb=nzb)) sys.exit(POSTPROCESS_ERROR) -with open(nzb, mode='rb') as infile: +with open(nzb, mode="rb") as infile: tree = etree.parse(infile) changed = False @@ -78,74 +87,77 @@ file_count = 0 totals = set() filenames = set() -for f in tree.getiterator('{http://www.newzbin.com/DTD/2003/nzb}file'): - subject = f.get('subject') +for f in tree.getiterator("{http://www.newzbin.com/DTD/2003/nzb}file"): + subject = f.get("subject") if subject is None: - print(u'[DETAIL] No subject in , skipping') + print("[DETAIL] No subject in , skipping") continue file_count += 1 result = [re.match(pattern, subject) for pattern in patterns] matched = [m for m in result if m is not None] if len(matched) == 0: - print(u'[INFO] No pattern matching subject, exiting.') + print("[INFO] No pattern matching subject, exiting.") sys.exit(POSTPROCESS_NONE) elif len(matched) > 1: - print(u'[ERROR] Multiple patterns matched, exiting.') + print("[ERROR] Multiple patterns matched, exiting.") sys.exit(POSTPROCESS_ERROR) else: match = matched[0].groupdict() - if match['filename'].lower().endswith('.par2'): - print(u'[INFO] par2 exists, exiting') + if match["filename"].lower().endswith(".par2"): + print("[INFO] par2 exists, exiting") sys.exit(POSTPROCESS_NONE) - if int(match['segment']) > int(match['total']): - print(u'[DETAIL] Segment index is greater then total, skipping') + if int(match["segment"]) > int(match["total"]): + print("[DETAIL] Segment index is greater then total, skipping") continue # NZBGet subject parsing changes when duplicate filenames are present # prefix duplicates to avoid that - if match['filename'] in filenames: - match['filename'] = u'{}.{}'.format(file_count, match['filename']) + if match["filename"] in filenames: + match["filename"] = "{}.{}".format(file_count, match["filename"]) - filenames.add(match['filename']) + filenames.add(match["filename"]) - s = u'WtFnZb "{filename}" yEnc ({segment}/{total})'.format( - filename = match['filename'], - segment = match['segment'], - total = match['total']) + s = 'WtFnZb "{filename}" yEnc ({segment}/{total})'.format( + filename=match["filename"], segment=match["segment"], total=match["total"] + ) - print(u'[INFO] New subject {subject}'.format(subject=s.encode('ascii', 'ignore'))) - f.set('subject', s) + print("[INFO] New subject {subject}".format(subject=s.encode("ascii", "ignore"))) + f.set("subject", s) changed = True - totals.add(int(match['total'])) + totals.add(int(match["total"])) if not changed: - print(u'[WARNING] No subject changed, exiting.') + print("[WARNING] No subject changed, exiting.") sys.exit(POSTPROCESS_NONE) if len(totals) != 1: - print(u'[WARNING] Mixed values for number of total segments, exiting.') + print("[WARNING] Mixed values for number of total segments, exiting.") sys.exit(POSTPROCESS_NONE) if totals.pop() != file_count: - print(u'[WARNING] Listed segment count does not match count, exiting.') + print("[WARNING] Listed segment count does not match count, exiting.") sys.exit(POSTPROCESS_NONE) -org = u'{}.wtfnzb.original.processed'.format(nzb) +org = "{}.wtfnzb.original.processed".format(nzb) exists_counter = 0 while os.path.exists(org): exists_counter += 1 - org = u'{}.{}.wtfnzb.original.processed'.format(nzb, exists_counter) + org = "{}.{}.wtfnzb.original.processed".format(nzb, exists_counter) -print(u'[INFO] Preserving original nzb as {}'.format(org)) +print("[INFO] Preserving original nzb as {}".format(org)) os.rename(nzb, org) -print(u'[INFO] Writing {}'.format(nzb)) -with open(nzb, mode='wb') as outfile: - outfile.write(etree.tostring(tree, - xml_declaration=True, - encoding=tree.docinfo.encoding, - doctype=tree.docinfo.doctype)) +print("[INFO] Writing {}".format(nzb)) +with open(nzb, mode="wb") as outfile: + outfile.write( + etree.tostring( + tree, + xml_declaration=True, + encoding=tree.docinfo.encoding, + doctype=tree.docinfo.doctype, + ) + ) sys.exit(POSTPROCESS_SUCCESS) diff --git a/docs/Downloaders/NZBGet/scripts/index.md b/docs/Downloaders/NZBGet/scripts/index.md index b03ea3625..218254a85 100644 --- a/docs/Downloaders/NZBGet/scripts/index.md +++ b/docs/Downloaders/NZBGet/scripts/index.md @@ -48,10 +48,10 @@ Install Instructions: - 1. Copy script to NZBGet's script folder - 1. Run: `sudo chmod +x replace_for.py` - 1. In NZBGet go to `Settings` => `Extension Scripts` - 1. Enable `replace_for.py` in the `Extensions` setting. + 1. Copy script to NZBGet's script folder + 1. Run: `sudo chmod +x replace_for.py` + 1. In NZBGet go to `Settings` => `Extension Scripts` + 1. Enable `replace_for.py` in the `Extensions` setting. ??? example "Script" @@ -80,6 +80,7 @@ ``` !!! tip + This script doesn't always work and is often needed if you use a certain indexer. It might be better to use the following Sonarr Regex in your release profile diff --git a/docs/Downloaders/NZBGet/scripts/replace_for/replace_for.py b/docs/Downloaders/NZBGet/scripts/replace_for/replace_for.py index bdd61d6e5..ea953900b 100644 --- a/docs/Downloaders/NZBGet/scripts/replace_for/replace_for.py +++ b/docs/Downloaders/NZBGet/scripts/replace_for/replace_for.py @@ -22,19 +22,19 @@ from __future__ import print_function import os, re, sys # Exit codes used by NZBGet -POSTPROCESS_SUCCESS=93 -POSTPROCESS_ERROR=94 -POSTPROCESS_SKIP=95 +POSTPROCESS_SUCCESS = 93 +POSTPROCESS_ERROR = 94 +POSTPROCESS_SKIP = 95 -directory = os.environ['NZBPP_DIRECTORY'] -print('Directory used is: ',directory) +directory = os.environ["NZBPP_DIRECTORY"] +print("Directory used is: ", directory) for path, currentDirectory, files in os.walk(directory): for file in files: - if file.find("_") !=-1: - dst = file.replace('_', '.') - os.rename (os.path.join(path,file),os.path.join(path,dst) ) - print('Result: ',file," renamed to ",dst) + if file.find("_") != -1: + dst = file.replace("_", ".") + os.rename(os.path.join(path, file), os.path.join(path, dst)) + print("Result: ", file, " renamed to ", dst) -sys.exit(POSTPROCESS_SUCCESS) \ No newline at end of file +sys.exit(POSTPROCESS_SUCCESS) diff --git a/docs/Downloaders/SABnzbd/.pages b/docs/Downloaders/SABnzbd/.pages index ba5470999..946cdd5c0 100644 --- a/docs/Downloaders/SABnzbd/.pages +++ b/docs/Downloaders/SABnzbd/.pages @@ -1,4 +1,4 @@ nav: - - Basic-Setup: Basic-Setup.md - - Path and Categories: Paths-and-Categories.md - - Scripts: /Downloaders/SABnzbd/scripts/ \ No newline at end of file + - Basic-Setup: Basic-Setup.md + - Path and Categories: Paths-and-Categories.md + - Scripts: /Downloaders/SABnzbd/scripts/ diff --git a/docs/Downloaders/SABnzbd/Basic-Setup.md b/docs/Downloaders/SABnzbd/Basic-Setup.md index aaf0bdec2..ecc04024f 100644 --- a/docs/Downloaders/SABnzbd/Basic-Setup.md +++ b/docs/Downloaders/SABnzbd/Basic-Setup.md @@ -1,18 +1,18 @@ # SABnzbd - Basic Setup {! include-markdown "../../../includes/downloaders/basic-setup.md" !} - ------- +--- !!! Note + Settings that aren't covered means you can change them to your own liking or just leave them on default. **I also recommend to enable the `Advanced Settings` on the top right.** ## General -[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/general){:target="_blank" rel="noopener noreferrer"} +[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/general){:target="\_blank" rel="noopener noreferrer"} ### Tuning @@ -21,11 +21,11 @@ I recommend setting a sane maximum speed and then limiting below that, to keep your internet connection happy. You can use `Settings` => `Scheduling` to toggle the limit on and off based on time, slowing it down while your family is using the internet and speeding it up at night when they're not. ------- +--- ## Folders -[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/folders){:target="_blank" rel="noopener noreferrer"} +[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/folders){:target="\_blank" rel="noopener noreferrer"} ### User Folders @@ -35,7 +35,6 @@ I recommend setting a sane maximum speed and then limiting below that, to keep y Here you setup your download path/location. {! include-markdown "../../../includes/downloaders/warning-path-location.md" !} - ### System Folders @@ -44,16 +43,17 @@ Here you setup your download path/location. I recommend the .nzb Backup Folder because sabnzbd doesn't have a hidden history and having remove from history enabled in Sonarr/Radarr is the best method. This allows you to see your past downloads and it is used for duplicate download detection/prevention. Default is empty, I picked history because it is easy. It'll end up in the `/config` folder for Docker, which isn't crazy... but this is literally compressed nzb files, so can end up pretty big. But the choice is yours what you prefer. ------- +--- ## Servers -[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/servers){:target="_blank" rel="noopener noreferrer"} +[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/servers){:target="\_blank" rel="noopener noreferrer"} `Settings` => `Servers` => `Add Server` ![!Servers](images/sabnzbd-servers.png) !!! info "" + USP = Usenet Service Provider 1. Server description. @@ -66,21 +66,21 @@ I recommend the .nzb Backup Folder because sabnzbd doesn't have a hidden history 1. How long the articles are stored on the news server. 1. For unreliable servers, will be ignored longer in case of failures ------- +--- ## Categories -[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/categories){:target="_blank" rel="noopener noreferrer"} +[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/categories){:target="\_blank" rel="noopener noreferrer"} `Settings`=> `Categories` -Covered and fully explained in [SABnzbd - Paths and Categories](/Downloaders/SABnzbd/Paths-and-Categories/){:target="_blank" rel="noopener noreferrer"} +Covered and fully explained in [SABnzbd - Paths and Categories](/Downloaders/SABnzbd/Paths-and-Categories/){:target="\_blank" rel="noopener noreferrer"} ------- +--- ## Switches -[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/switches){:target="_blank" rel="noopener noreferrer"} +[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/switches){:target="\_blank" rel="noopener noreferrer"} ### Queue @@ -105,7 +105,7 @@ Covered and fully explained in [SABnzbd - Paths and Categories](/Downloaders/SAB 1. Some servers provide an alternative NZB when a download fails. I have it enabled no guarantee that it works. 1. Helps with de-obfuscation especially invalid file extensions ------- +--- ## Sorting @@ -116,7 +116,7 @@ Covered and fully explained in [SABnzbd - Paths and Categories](/Downloaders/SAB ## Special Rarely used options. -Don't change these without checking the [SABnzbd Wiki](https://sabnzbd.org/wiki/configuration/4.0/special){:target="_blank" rel="noopener noreferrer"} first, as some have serious side-effects. +Don't change these without checking the [SABnzbd Wiki](https://sabnzbd.org/wiki/configuration/4.0/special){:target="\_blank" rel="noopener noreferrer"} first, as some have serious side-effects. The default values are between parentheses. ### Unable to connect to SABnzbd @@ -137,7 +137,7 @@ Example: `sabnzbd.domain.tld, ` ![!SABnzbd: host_whitelist ( )](images/sabnzbd-special-host-whitelist.png) ------- +--- ## Recommended Sonarr/Radarr Settings @@ -174,9 +174,8 @@ Being that Sonarr/Radarr only looks at the last xx amount in the queue/history. ![!Radarr: Download Clients - SABnzbd](images/radarr-download-clients-sabnzbd.png) ------- +--- -Thanks to [fryfrog](https://github.com/fryfrog){:target="_blank" rel="noopener noreferrer"} for helping me with the settings and providing the info needed to create this Guide. +Thanks to [fryfrog](https://github.com/fryfrog){:target="\_blank" rel="noopener noreferrer"} for helping me with the settings and providing the info needed to create this Guide. {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Downloaders/SABnzbd/Paths-and-Categories.md b/docs/Downloaders/SABnzbd/Paths-and-Categories.md index a5ea0e0e6..3c5e57dcb 100644 --- a/docs/Downloaders/SABnzbd/Paths-and-Categories.md +++ b/docs/Downloaders/SABnzbd/Paths-and-Categories.md @@ -1,7 +1,6 @@ # SABnzbd - Paths and Categories {! include-markdown "../../../includes/downloaders/path.md" !} - --- @@ -16,7 +15,6 @@ You don't need to add the full path under `Folder/Path`, it will use the `Relative folders are based on:` path you see on the top of the screenshot, that you setup as `Completed Download Folder`. {! include-markdown "../../../includes/downloaders/warning-path-location.md" !} - --- @@ -27,4 +25,3 @@ You don't need to add the full path under `Folder/Path`, it will use the `Relati ![!SABnzbd - Paths and Categories Breakdown](images/sabnzbd-category-breakdown.png) {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Downloaders/SABnzbd/scripts/Clean/Clean.py b/docs/Downloaders/SABnzbd/scripts/Clean/Clean.py index 4dd65287c..acdbd9790 100644 --- a/docs/Downloaders/SABnzbd/scripts/Clean/Clean.py +++ b/docs/Downloaders/SABnzbd/scripts/Clean/Clean.py @@ -24,46 +24,55 @@ import re sys.argv = sys.argv[:9] try: # Parse the input variables for SABnzbd version >= 4.2.0 - (scriptname, nzbname, postprocflags, category, script, prio, downloadsize, grouplist) = sys.argv + ( + scriptname, + nzbname, + postprocflags, + category, + script, + prio, + downloadsize, + grouplist, + ) = sys.argv except: - sys.exit(1) # exit with 1 causes SABnzbd to ignore the output of this script + sys.exit(1) # exit with 1 causes SABnzbd to ignore the output of this script fwp = nzbname -fwp = re.sub('(?i)-4P$', '', fwp) -fwp = re.sub('(?i)-4Planet$', '', fwp) -fwp = re.sub('(?i)-AlternativeToRequested$', '', fwp) -fwp = re.sub('(?i)-AlteZachen$', '', fwp) -fwp = re.sub('(?i)-AsRequested$', '', fwp) -fwp = re.sub('(?i)-AsRequested-xpost$', '', fwp) -fwp = re.sub('(?i)-BUYMORE$', '', fwp) -fwp = re.sub('(?i)-Chamele0n$', '', fwp) -fwp = re.sub('(?i)-GEROV$', '', fwp) -fwp = re.sub('(?i)-iNC0GNiTO$', '', fwp) -fwp = re.sub('(?i)-NZBGeek$', '', fwp) -fwp = re.sub('(?i)-Obfuscated$', '', fwp) -fwp = re.sub('(?i)-Obfuscation$', '', fwp) -fwp = re.sub('(?i)-postbot$', '', fwp) -fwp = re.sub('(?i)-Rakuv[a-z0-9]*$', '', fwp) -fwp = re.sub('(?i)-RePACKPOST$', '', fwp) -fwp = re.sub('(?i)-Scrambled$', '', fwp) -fwp = re.sub('(?i)-WhiteRev$', '', fwp) -fwp = re.sub('(?i)-WRTEAM$', '', fwp) -fwp = re.sub('(?i)-CAPTCHA$', '', fwp) -fwp = re.sub('(?i)-Z0iDS3N$', '', fwp) -fwp = re.sub('(?i)\[eztv([ ._-]re)?\]$', '', fwp) -fwp = re.sub('(?i)\[TGx\]$', '', fwp) -fwp = re.sub('(?i)\[ettv\]$', '', fwp) -fwp = re.sub('(?i)\[TGx\]-xpost$', '', fwp) -fwp = re.sub('(?i).mkv-xpost$', '', fwp) -fwp = re.sub('(?i)-xpost$', '', fwp) -fwp = re.sub(r'(?i)(-D-Z0N3|\-[^-.\n]*)(\-.{4})?$', r'\1', fwp) +fwp = re.sub("(?i)-4P$", "", fwp) +fwp = re.sub("(?i)-4Planet$", "", fwp) +fwp = re.sub("(?i)-AlternativeToRequested$", "", fwp) +fwp = re.sub("(?i)-AlteZachen$", "", fwp) +fwp = re.sub("(?i)-AsRequested$", "", fwp) +fwp = re.sub("(?i)-AsRequested-xpost$", "", fwp) +fwp = re.sub("(?i)-BUYMORE$", "", fwp) +fwp = re.sub("(?i)-Chamele0n$", "", fwp) +fwp = re.sub("(?i)-GEROV$", "", fwp) +fwp = re.sub("(?i)-iNC0GNiTO$", "", fwp) +fwp = re.sub("(?i)-NZBGeek$", "", fwp) +fwp = re.sub("(?i)-Obfuscated$", "", fwp) +fwp = re.sub("(?i)-Obfuscation$", "", fwp) +fwp = re.sub("(?i)-postbot$", "", fwp) +fwp = re.sub("(?i)-Rakuv[a-z0-9]*$", "", fwp) +fwp = re.sub("(?i)-RePACKPOST$", "", fwp) +fwp = re.sub("(?i)-Scrambled$", "", fwp) +fwp = re.sub("(?i)-WhiteRev$", "", fwp) +fwp = re.sub("(?i)-WRTEAM$", "", fwp) +fwp = re.sub("(?i)-CAPTCHA$", "", fwp) +fwp = re.sub("(?i)-Z0iDS3N$", "", fwp) +fwp = re.sub("(?i)\[eztv([ ._-]re)?\]$", "", fwp) +fwp = re.sub("(?i)\[TGx\]$", "", fwp) +fwp = re.sub("(?i)\[ettv\]$", "", fwp) +fwp = re.sub("(?i)\[TGx\]-xpost$", "", fwp) +fwp = re.sub("(?i).mkv-xpost$", "", fwp) +fwp = re.sub("(?i)-xpost$", "", fwp) +fwp = re.sub(r"(?i)(-D-Z0N3|\-[^-.\n]*)(\-.{4})?$", r"\1", fwp) -print("1") # Accept +print("1") # Accept print(fwp) print() print() print() -print() +print() print() # 0 means OK sys.exit(0) diff --git a/docs/Downloaders/SABnzbd/scripts/index.md b/docs/Downloaders/SABnzbd/scripts/index.md index ad98bed08..6e08c163e 100644 --- a/docs/Downloaders/SABnzbd/scripts/index.md +++ b/docs/Downloaders/SABnzbd/scripts/index.md @@ -14,10 +14,10 @@ Install Instructions: - 1. Copy script to sabnzbd's script folder - 1. run: `sudo chmod +x Clean.py` - 1. in SABnzbd go to `Settings` => `Switches` - 1. Change Pre-queue user script and select: `Clean.py` + 1. Copy script to sabnzbd's script folder + 1. run: `sudo chmod +x Clean.py` + 1. in SABnzbd go to `Settings` => `Switches` + 1. Change Pre-queue user script and select: `Clean.py` ![!Enable Clean.py](/Downloaders/SABnzbd/images/sabnzbd-switches-queue-clean.png) @@ -38,10 +38,10 @@ Install Instructions: - 1. Copy script to sabnzbd's script folder - 1. run: `sudo chmod +x replace_for.py` - 1. in SABnzbd go to `Settings` => `Categories` - 1. Change script for required categories and select: `replace_for.py` + 1. Copy script to sabnzbd's script folder + 1. run: `sudo chmod +x replace_for.py` + 1. in SABnzbd go to `Settings` => `Categories` + 1. Change script for required categories and select: `replace_for.py` ![!Enable replace_for.py](/Downloaders/SABnzbd/images/sabnzbd-categories-replace_for.png) diff --git a/docs/Downloaders/SABnzbd/scripts/replace_for/replace_for.py b/docs/Downloaders/SABnzbd/scripts/replace_for/replace_for.py index d347394cf..92c4a26ec 100644 --- a/docs/Downloaders/SABnzbd/scripts/replace_for/replace_for.py +++ b/docs/Downloaders/SABnzbd/scripts/replace_for/replace_for.py @@ -20,23 +20,32 @@ import os import os.path try: - (scriptname, directory, orgnzbname, jobname, reportnumber, category, group, postprocstatus, url) = sys.argv + ( + scriptname, + directory, + orgnzbname, + jobname, + reportnumber, + category, + group, + postprocstatus, + url, + ) = sys.argv except: print("No commandline parameters found") - sys.exit(1) # exit with 1 causes SABnzbd to ignore the output of this script + sys.exit(1) # exit with 1 causes SABnzbd to ignore the output of this script files = os.listdir(directory) for src in files: - if src.find("_") !=-1: - dst = src.replace('_', '.') - os.rename (os.path.join(directory,src),os.path.join(directory,dst) ) - print(src, "renamed to ",dst) + if src.find("_") != -1: + dst = src.replace("_", ".") + os.rename(os.path.join(directory, src), os.path.join(directory, dst)) + print(src, "renamed to ", dst) print() print() -print() +print() print() # 0 means OK sys.exit(0) - diff --git a/docs/Downloaders/qBittorrent/.pages b/docs/Downloaders/qBittorrent/.pages index 560d08e77..dc4348e50 100644 --- a/docs/Downloaders/qBittorrent/.pages +++ b/docs/Downloaders/qBittorrent/.pages @@ -1,7 +1,7 @@ nav: - - Basic-Setup: Basic-Setup.md - - Paths: Paths.md - - How to add Categories: How-to-add-categories.md - - Port forwarding: Port-forwarding.md - - 3rd Party tools: 3rd-party-tools.md - - Tips + - Basic-Setup: Basic-Setup.md + - Paths: Paths.md + - How to add Categories: How-to-add-categories.md + - Port forwarding: Port-forwarding.md + - 3rd Party tools: 3rd-party-tools.md + - Tips diff --git a/docs/Downloaders/qBittorrent/3rd-party-tools.md b/docs/Downloaders/qBittorrent/3rd-party-tools.md index 05dcf1d17..a365ea30d 100644 --- a/docs/Downloaders/qBittorrent/3rd-party-tools.md +++ b/docs/Downloaders/qBittorrent/3rd-party-tools.md @@ -9,7 +9,7 @@ This is a program used to manage your qBittorrent instance such as: - Tag torrents based on tracker URL and set seed goals/limit upload speed by tag (only tag torrents that have no tags) - Update categories based on save directory - Remove unregistered torrents (delete data & torrent if it is not being cross-seeded, otherwise it will just remove the torrent) -- Automatically add cross-seed torrents in paused state. *Note: cross-seed now allows for torrent injections directly to qBit, making this feature obsolete.* +- Automatically add cross-seed torrents in paused state. _Note: cross-seed now allows for torrent injections directly to qBit, making this feature obsolete._ - Recheck paused torrents sorted by lowest size and resume if completed - Remove orphaned files from your root directory that are not referenced by qBittorrent - Tag any torrents that have no hard links and allows optional cleanup to delete these torrents and contents based on maximum ratio and/or time seeded @@ -17,9 +17,9 @@ This is a program used to manage your qBittorrent instance such as: - Built-in scheduler to run the script every x minutes. (Can use --run command to run without the scheduler) - Webhook notifications with Notifiarr and Apprise API integration. -[qBit Manage](https://github.com/StuffAnThings/qbit_manage){:target="_blank" rel="noopener noreferrer"} +[qBit Manage](https://github.com/StuffAnThings/qbit_manage){:target="\_blank" rel="noopener noreferrer"} ------- +--- ## qBitrr @@ -29,14 +29,14 @@ Features - Monitor qBit for Stalled/bad entries and delete them then blacklist them on Arrs (Option to also trigger a re-search action). - Monitor qBit for completed entries and tell the appropriate Arr instance to import it: - - `qbitrr DownloadedMoviesScan` for Radarr - - `qbitrr DownloadedEpisodesScan` for Sonarr + - `qbitrr DownloadedMoviesScan` for Radarr + - `qbitrr DownloadedEpisodesScan` for Sonarr - Skip files in qBit entries by extension, folder or regex. - Monitor completed folder and clean it up. -- Usage of [ffprobe](https://github.com/FFmpeg/FFmpeg){:target="_blank" rel="noopener noreferrer"} to ensure downloaded entries are valid media. +- Usage of [ffprobe](https://github.com/FFmpeg/FFmpeg){:target="\_blank" rel="noopener noreferrer"} to ensure downloaded entries are valid media. - Trigger periodic Rss Syncs on the appropriate Arr instances. - Trigger Queue update on appropriate Arr instances. -- Search requests from [Overseerr](https://github.com/sct/overseerr){:target="_blank" rel="noopener noreferrer"} or [Ombi](https://github.com/Ombi-app/Ombi){:target="_blank" rel="noopener noreferrer"}. +- Search requests from [Overseerr](https://github.com/sct/overseerr){:target="\_blank" rel="noopener noreferrer"} or [Ombi](https://github.com/Ombi-app/Ombi){:target="\_blank" rel="noopener noreferrer"}. - Auto add/remove trackers - Set per tracker values - **Sonarr v4 support** @@ -47,9 +47,9 @@ Features - Optionally searches year by year is ascending or descending order (config option available) - Search for CF Score unmet and cancel torrents base on CF Score or Quality unmet search -[qBitrr](https://github.com/Feramance/qBitrr){:target="_blank" rel="noopener noreferrer"} +[qBitrr](https://github.com/Feramance/qBitrr){:target="\_blank" rel="noopener noreferrer"} ------- +--- ## qbittorrent-cli @@ -60,17 +60,17 @@ A cli to manage qBittorrent. Add torrents, reannounce and import from other clie - Set limits on how many simultaneously active downloads are allowed - Import torrents with state from Deluge and rTorrent -[qbittorrent-cli](https://github.com/ludviglundgren/qbittorrent-cli){:target="_blank" rel="noopener noreferrer"} +[qbittorrent-cli](https://github.com/ludviglundgren/qbittorrent-cli){:target="\_blank" rel="noopener noreferrer"} ------- +--- ## qbittools qbittools is a feature rich CLI for the management of torrents in qBittorrent. -[qbittools](https://gitlab.com/AlexKM/qbittools){:target="_blank" rel="noopener noreferrer"} +[qbittools](https://gitlab.com/AlexKM/qbittools){:target="\_blank" rel="noopener noreferrer"} ------- +--- ## A Dark but not black qBittorrent WebUI @@ -82,9 +82,9 @@ A darker theme for qBittorrent WebUI (made with the help of the Walkerservers co ![!Example](https://raw.githubusercontent.com/brettpetch/nightwalker/main/preview.png) -[Nightwalker](https://github.com/brettpetch/nightwalker){:target="_blank" rel="noopener noreferrer"} +[Nightwalker](https://github.com/brettpetch/nightwalker){:target="\_blank" rel="noopener noreferrer"} ------- +--- ## cross-seed @@ -95,11 +95,10 @@ Run cross-seed 24/7 to: - Search for cross-seeds as soon as new torrents are finished downloading - Race starting at 100% before the uploader even joins. -[![Discord Support](https://img.shields.io/discord/880949701845872672?style=flat-square&color=4051B5&logo=discord)](https://discord.gg/jpbUFzS5Wb){:target="_blank" rel="noopener noreferrer"} -[![Github](https://img.shields.io/github/v/release/mmgoodnow/cross-seed?color=4051B5&display_name=tag&label=Version&logo=github)](https://github.com/mmgoodnow/cross-seed){:target="_blank" rel="noopener noreferrer"} -[![Website](https://img.shields.io/website?label=Website&url=https%3A%2F%2Fwww.cross-seed.org%2F)](https://www.cross-seed.org/){:target="_blank" rel="noopener noreferrer"} +[![Discord Support](https://img.shields.io/discord/880949701845872672?style=flat-square&color=4051B5&logo=discord)](https://discord.gg/jpbUFzS5Wb){:target="\_blank" rel="noopener noreferrer"} +[![Github](https://img.shields.io/github/v/release/mmgoodnow/cross-seed?color=4051B5&display_name=tag&label=Version&logo=github)](https://github.com/mmgoodnow/cross-seed){:target="\_blank" rel="noopener noreferrer"} +[![Website](https://img.shields.io/website?label=Website&url=https%3A%2F%2Fwww.cross-seed.org%2F)](https://www.cross-seed.org/){:target="\_blank" rel="noopener noreferrer"} ------- +--- {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Downloaders/qBittorrent/Basic-Setup.md b/docs/Downloaders/qBittorrent/Basic-Setup.md index d2b8fc33e..c8f05ada8 100644 --- a/docs/Downloaders/qBittorrent/Basic-Setup.md +++ b/docs/Downloaders/qBittorrent/Basic-Setup.md @@ -1,14 +1,14 @@ # qBittorrent - Basic Setup {! include-markdown "../../../includes/downloaders/basic-setup.md" !} - ------- +--- !!! Note + Settings that aren't covered means you can change them to your own liking or just leave them on default. ------- +--- ## Downloads @@ -21,16 +21,19 @@ 1. For consistency with other torrents I recommend leaving this on `Original`. !!! success "" + **Suggested: `Original`** 1. Delete the .torrent file after it has been added to qBittorrent. !!! success "" + **Suggested: `Personal preference`** 1. Pre-allocated disk space for the added torrents, this limits fragmentation and also makes sure if you use a cache drive or a feeder disk that the space is available. !!! success "" + **Suggested: `Enabled`** !!! warning @@ -44,34 +47,38 @@ 1. Make sure this is set to `Automatic`. Your downloads will not go into the category folder otherwise. !!! success "" + **Suggested: `Automatic`** 1. This helps you to manage your file location based on categories. !!! success "" + **Suggested: `Enabled`** 1. Same as `Step 2` !!! success "" + **Suggested: `Enabled`** 1. Your download root path (Download folder/location). !!! success "" + **Read the `ATTENTION` block below** 1. If you enable this, your incomplete downloads will be placed in this directory until completed. This could be useful if you want your downloads to use a separate SSD/Feeder disk[^1], but this also results in extra unnecessary moves or in worse cases a slower and more I/O intensive copy + delete. !!! success "" + **Suggested: `Personal preference`** #### ATTENTION {! include-markdown "../../../includes/downloaders/warning-path-location.md" !} - ------- +--- ## Connection @@ -82,21 +89,25 @@ 1. Set this to TCP for the best performance !!! success "" + **Suggested: `TCP`** 1. Your port used for incoming connections, this is the port you opened in your router/firewall or port forwarded at your VPN provider to make sure you're connectable. !!! success "" + **Suggested: `The port you opened in your router/firewall or port forwarded at your VPN provider`** 1. This should be disabled in your router for several security reasons. !!! success "" + **Suggested: `Disabled`** 1. Make sure this is disabled so you don't mess up the forwarded port. !!! success "" + **Suggested: `Disabled`** ### Connections Limits @@ -106,6 +117,7 @@ The best settings for this depends on many factors so I won't be covering this. !!! success "" + **Suggested: `personal preference based on your setup and connection.`** ### Proxy Server @@ -115,9 +127,10 @@ The best settings for this depends on many factors so I won't be covering this. This is where you would add for example your SOCKS5 settings from your VPN provider. !!! success "" + **Suggested: `I personally don't recommend this unsecure option being it's un-encrypted and only spoofs your IP.`** ------- +--- ## Speed @@ -134,6 +147,7 @@ The best settings depends on many factors. - Bandwidth needed by other services in your home network. !!! success "" + **Suggested: `For a home connection that you use with others it's best practice to set the upload/download rate to about 70-80% of your maximum upload/download speed.`** ### Alternative Rate Limits @@ -148,6 +162,7 @@ Examples: - If you have an internet connection that's limited during specific hours (unlimited bandwidth during the night, but limited during the day) !!! success "" + **Suggested: `Personal preference`** ### Rate Limits Settings @@ -159,19 +174,22 @@ Not going to cover the technical part of what it does, but the following setting 1. Prevents you from being flooded if the uTP protocol is used for any reason. !!! success "" + **Suggested: `Enabled`** 1. Apply rate limit to transport overhead !!! success "" + **Suggested: `Disabled`** 1. Apply rate limit to peers on LAN !!! success "" + **Suggested: `Enabled`** ------- +--- ## Bittorrent @@ -182,16 +200,19 @@ Not going to cover the technical part of what it does, but the following setting 1. These settings are mainly used for public trackers (and should be enabled for them) and not for private trackers, decent private trackers use a private flag where they ignore these settings. !!! success "" + **Suggested: `Personal preference`** 1. Recommended setting `Allow encryption` rather than enforcing it allows more peers to connect and is recommended on underpowered systems as it will allow for lower overhead. !!! success "" + **Suggested: `Allow encryption`** 1. Anonymous mode hides clients (qBittorrent) fingerprint from the peer-ID, sets the ‘User-Agent’ to Null and it doesn’t share your IP-address directly with trackers (though peers will still see your IP address). If using private trackers, it's recommended to `disable` this. I also got reports from people who are using this that they had worse speeds. !!! success "" + **Suggested: `Disabled`** ### Torrent Queueing @@ -201,6 +222,7 @@ Not going to cover the technical part of what it does, but the following setting These options allow you to control the number of active torrents being downloaded and uploaded. !!! success "" + **Suggested: `personal preference based on your setup and connection.`** ### Seeding Limits @@ -210,32 +232,38 @@ These options allow you to control the number of active torrents being downloade 1. Your maximum seeding ratio preference. (When both ratio and seeding time are enabled it will trigger the action on whatever happens first.) !!! success "" + **Suggested: `Disabled`** 1. Your maximum seeding time preference (When both ratio and seeding time are enabled it will trigger the action on whatever happens first.) !!! success "" + **Suggested: `Disabled`** 1. What to do when ratio or seeding time is reached. !!! success "" + **Suggested: `Paused and Disabled`** !!! tip - Personally, I recommend using the seeding goals in your Starr Apps indexer settings (enable advanced), or use [qBit Manage](/Downloaders/qBittorrent/3rd-party-tools/#qbit-manage){:target="_blank" rel="noopener noreferrer"} + + Personally, I recommend using the seeding goals in your Starr Apps indexer settings (enable advanced), or use [qBit Manage](/Downloaders/qBittorrent/3rd-party-tools/#qbit-manage){:target="\_blank" rel="noopener noreferrer"} ### Automatically add these trackers to new downloads ![!Automatically add these trackers to new downloads](images/qb-options-bittorrent-automatically-add-these-trackers.png) !!! success "" + **Recommendation: `Disabled`** !!! WARNING + :bangbang: **NEVER USE THIS OPTION ON (Semi-)PRIVATE TRACKERS** :bangbang: ------- +--- ## Web UI @@ -254,10 +282,11 @@ These options allow you to control the number of active torrents being downloade 1. In some cases when this is enabled it could result in issues. !!! success "" + **Suggested: `Disabled`** {! include-markdown "../../../includes/support.md" !} - [^1]: + If you use unRaid then you don't need this since you can make use of the default cache drive option. diff --git a/docs/Downloaders/qBittorrent/How-to-add-categories.md b/docs/Downloaders/qBittorrent/How-to-add-categories.md index 881fdfb0a..be8155911 100644 --- a/docs/Downloaders/qBittorrent/How-to-add-categories.md +++ b/docs/Downloaders/qBittorrent/How-to-add-categories.md @@ -3,6 +3,7 @@ This basic example is based on the use of docker images !!! tip "" + Keep in mind the path are setup so it works with hardlinks and instant moves. More info [HERE](/Hardlinks/Hardlinks-and-Instant-Moves/){:target="_blank" rel="noopener noreferrer"} @@ -44,4 +45,3 @@ You don't need to add the full path under `Save Path`, it will use the root down ![!qBittorrent - Default Torrent Management Mode](images/qb-saving-management.png) {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Downloaders/qBittorrent/Paths.md b/docs/Downloaders/qBittorrent/Paths.md index cc4a62fc4..81216409f 100644 --- a/docs/Downloaders/qBittorrent/Paths.md +++ b/docs/Downloaders/qBittorrent/Paths.md @@ -1,7 +1,6 @@ # qBittorrent - Paths {! include-markdown "../../../includes/downloaders/path.md" !} - --- diff --git a/docs/Downloaders/qBittorrent/Port-forwarding.md b/docs/Downloaders/qBittorrent/Port-forwarding.md index aac951bd9..505dd6651 100644 --- a/docs/Downloaders/qBittorrent/Port-forwarding.md +++ b/docs/Downloaders/qBittorrent/Port-forwarding.md @@ -1,7 +1,8 @@ # qBittorrent - Port forwarding !!! info "" - You've followed the [Setup TorGuard for port forwarding](/Misc/How-to-setup-Torguard-for-port-forwarding/){:target="_blank" rel="noopener noreferrer"} and want to know where in your download client you should add the port you've port forwarded. + + You've followed the [Setup TorGuard for port forwarding](/Misc/How-to-setup-Torguard-for-port-forwarding/){:target="\_blank" rel="noopener noreferrer"} and want to know where in your download client you should add the port you've port forwarded. `Tools` => `Options` => `Connection` diff --git a/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md b/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md index b35ff6a39..fbb3fef95 100644 --- a/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md +++ b/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md @@ -23,23 +23,20 @@ Using the following instructions will allow you to move the files with the use o Download the following standalone Python script. -- [Script (mover.py)](https://raw.githubusercontent.com/StuffAnThings/qbit_manage/master/scripts/mover.py){:target="_blank" rel="noopener noreferrer"} +- [Script (mover.py)](https://raw.githubusercontent.com/StuffAnThings/qbit_manage/master/scripts/mover.py){:target="\_blank" rel="noopener noreferrer"} -Big Thnx to [bobokun](https://github.com/bobokun){:target="_blank" rel="noopener noreferrer"} Developer of [qBit Manage](https://github.com/StuffAnThings/qbit_manage){:target="_blank" rel="noopener noreferrer"} +Big Thnx to [bobokun](https://github.com/bobokun){:target="\_blank" rel="noopener noreferrer"} Developer of [qBit Manage](https://github.com/StuffAnThings/qbit_manage){:target="\_blank" rel="noopener noreferrer"} ### Plugins Install the following Plugins. - User Scripts -- NerdTools - - python3 (*1*) - - python-setuptools (*1*) - - python-pip (*1*) +- NerdTools - python3 (_1_) - python-setuptools (_1_) - python-pip (_1_) -!!! info "(*1*) These need to be installed from NerdTools." +!!! info "(_1_) These need to be installed from NerdTools." ------- +--- ## Setup @@ -52,6 +49,7 @@ The script needs the qbittorrent-api module to work, so we need to make sure it' You can choose one of the following 3 options (select a tab) to install `qbittorrent-api`. === "User scripts" + With this option, we're going to install the `qbittorrent-api` module when the Array is started the first time. In your unRAID Dashboard, go to your `Settings` tab and select `User Scripts` in the `User Utilities` section at the bottom. @@ -90,6 +88,7 @@ You can choose one of the following 3 options (select a tab) to install `qbittor ![!RUN IN BACKGROUND](images/Unraid-settings-user-scripts-qbit-api-run-background.png) === "Python venv" + With this option, we're going to create a [Python virtual environment](https://docs.python.org/3/library/venv.html) on our disk. We will use this to run and store dependencies (`qbittorrent-api`) for this specific environment. By doing this, we will **only need to configure this once** and it will be persistent after reboots *(this differs from the previous steps)*. @@ -97,6 +96,7 @@ You can choose one of the following 3 options (select a tab) to install `qbittor First, you need to choose a location to start a new Python environment. !!! info + In the next steps, you will be asked to choose a [location to store the script](#copy-the-script-to-your-preferred-location), try to be consistent. Suggestions: @@ -119,8 +119,11 @@ You can choose one of the following 3 options (select a tab) to install `qbittor ``` !!! info + Replace `/mnt/user/data/scripts/.venv` with the path you have chosen. + === "Go File" + With this option, we're going to install the `qbittorrent` module when the unRAID server is started. On your USB stick/key go to `/boot/config` and open the `go` file with your text editor ([VSCode](https://code.visualstudio.com/){:target="_blank" rel="noopener noreferrer"}/[Notepad++](https://notepad-plus-plus.org/downloads/){:target="_blank" rel="noopener noreferrer"}). @@ -133,7 +136,7 @@ You can choose one of the following 3 options (select a tab) to install `qbittor Restart your unRAID Server or run the above command from the terminal. ------- +--- ### Script @@ -194,6 +197,7 @@ Choose your method (select a tab) and copy/paste the script in the new window th ``` !!! info + Replace `/mnt/user/data/scripts/` in the script with the path you have chosen for the Python script. - `days_from` => Set Number of Days to stop torrents **from** for the move. diff --git a/docs/Downloaders/qBittorrent/Tips/Themes.md b/docs/Downloaders/qBittorrent/Tips/Themes.md index 3985689a7..191206a57 100644 --- a/docs/Downloaders/qBittorrent/Tips/Themes.md +++ b/docs/Downloaders/qBittorrent/Tips/Themes.md @@ -2,10 +2,10 @@ A list of known working qBittorrent themes. -| Theme | Style | Compatibility | -| ------------------------------------------------------------------------------------------------------------------------------ | ----- | --------------- | -| [Honeywell](https://github.com/stacksmash76/qbt-honeywell){:target="_blank" rel="noopener noreferrer"} | Dark | v4.3.1 - v4.4.5 | -| [Nightwalker Theme (CallMeBruce fork)](https://github.com/CallMeBruce/nightwalker){:target="_blank" rel="noopener noreferrer"} | Dark | v4.5 | -| [World of Quinoa](https://github.com/gl0ryus/woq){:target="_blank" rel="noopener noreferrer"} | Dark | v4.3.9, v4.4.5 | +| Theme | Style | Compatibility | +| ------------------------------------------------------------------------------------------------------------------------------- | ----- | --------------- | +| [Honeywell](https://github.com/stacksmash76/qbt-honeywell){:target="\_blank" rel="noopener noreferrer"} | Dark | v4.3.1 - v4.4.5 | +| [Nightwalker Theme (CallMeBruce fork)](https://github.com/CallMeBruce/nightwalker){:target="\_blank" rel="noopener noreferrer"} | Dark | v4.5 | +| [World of Quinoa](https://github.com/gl0ryus/woq){:target="\_blank" rel="noopener noreferrer"} | Dark | v4.3.9, v4.4.5 | --8<-- "includes/support.md" diff --git a/docs/Downloaders/ruTorrent/ruTorrent-Basic-Setup.md b/docs/Downloaders/ruTorrent/ruTorrent-Basic-Setup.md index 58239077b..32f73add7 100644 --- a/docs/Downloaders/ruTorrent/ruTorrent-Basic-Setup.md +++ b/docs/Downloaders/ruTorrent/ruTorrent-Basic-Setup.md @@ -1,13 +1,11 @@ # ruTorrent - Basic Setup {! include-markdown "../../../includes/downloaders/basic-setup.md" !} - ------- +--- ## Soon I've asked several people that used this download client for some help/feedback, but most of them just switched to qBittorrent. {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Guide-Sync/.pages b/docs/Guide-Sync/.pages index 8340a7049..c6a0b2b5c 100644 --- a/docs/Guide-Sync/.pages +++ b/docs/Guide-Sync/.pages @@ -1,2 +1,2 @@ nav: - - Home: index.md + - Home: index.md diff --git a/docs/Guide-Sync/index.md b/docs/Guide-Sync/index.md index 00768dc5f..79bfec30c 100644 --- a/docs/Guide-Sync/index.md +++ b/docs/Guide-Sync/index.md @@ -23,11 +23,11 @@ These are 3rd party applications to sync several sections of the guide with your | Sonarr v3/v4 Naming Scheme | v | v | | Sonarr v3/v4 Quality Profiles | | v | ------- +--- ## Notifiarr -It's possible with [Notifiarr](https://notifiarr.com){:target="_blank" rel="noopener noreferrer"} ([Patron feature](https://notifiarr.wiki/FAQ#patron){:target="_blank" rel="noopener noreferrer"}) +It's possible with [Notifiarr](https://notifiarr.com){:target="\_blank" rel="noopener noreferrer"} ([Patron feature](https://notifiarr.wiki/FAQ#patron){:target="\_blank" rel="noopener noreferrer"}) Notifiarr is a service much bigger in scope than just custom format syncing. @@ -52,7 +52,7 @@ Just enable the Custom Formats/Release Profiles you want. Sonarr Release Profile (Multiple Instances possible) ![!Notifiarr Sonarr](images/sync/notifiarr-sonarr.png) -[Instructions](https://notifiarr.wiki/en/Website/Integrations/Trash){:target="_blank" rel="noopener noreferrer"} +[Instructions](https://notifiarr.wiki/en/Website/Integrations/Trash){:target="\_blank" rel="noopener noreferrer"} ### Video Tutorial @@ -64,11 +64,11 @@ Just enable the Custom Formats/Release Profiles you want. Also check out other videos from IBRACORP [HERE](https://www.youtube.com/c/IBRACORP/videos){:target="_blank" rel="noopener noreferrer"} ------- +--- ## Recyclarr -[Info](/Recyclarr/){:target="_blank" rel="noopener noreferrer"} // [Documentation](https://recyclarr.dev/wiki/){:target="_blank" rel="noopener noreferrer"} +[Info](/Recyclarr/){:target="\_blank" rel="noopener noreferrer"} // [Documentation](https://recyclarr.dev/wiki/){:target="\_blank" rel="noopener noreferrer"} Recyclarr is a command line application utilizing configuration files to sync the guides to Radarr & Sonarr. diff --git a/docs/Hardlinks/.pages b/docs/Hardlinks/.pages index a01a3c03d..60d28d24c 100644 --- a/docs/Hardlinks/.pages +++ b/docs/Hardlinks/.pages @@ -1,6 +1,6 @@ nav: - - Hardlinks - Atomic Moves: Hardlinks-and-Instant-Moves.md - - How-to-setup-for - - Examples: Examples.md - - Check if hardlinks are working: Check-if-hardlinks-are-working.md - - Replace copies with hardlinks: Replace-copies-with-hardlinks.md + - Hardlinks - Atomic Moves: Hardlinks-and-Instant-Moves.md + - How-to-setup-for + - Examples: Examples.md + - Check if hardlinks are working: Check-if-hardlinks-are-working.md + - Replace copies with hardlinks: Replace-copies-with-hardlinks.md diff --git a/docs/Hardlinks/Check-if-hardlinks-are-working.md b/docs/Hardlinks/Check-if-hardlinks-are-working.md index 97f53313f..130e5e5bb 100644 --- a/docs/Hardlinks/Check-if-hardlinks-are-working.md +++ b/docs/Hardlinks/Check-if-hardlinks-are-working.md @@ -4,9 +4,10 @@ You've followed the guide step by step but still want to check if hardlinks are You can use 3 options to check if you got working hardlinks. -*All methods require you to login to your terminal with PuTTY or similar software.* +_All methods require you to login to your terminal with PuTTY or similar software._ !!! warning + You can't create hard links for directories :bangbang: You can't cross file systems :bangbang: @@ -44,7 +45,6 @@ You will get a listing of all your files and on the left side you will see a cou This way requires a bit more work. - In the terminal type: `stat /path/to/your/download/location/file.mkv` - - In the terminal type: `stat /path/to/your/media/location/file.mkv` You will get 2 results you can use to compare several things. @@ -65,6 +65,7 @@ This will reveal the inode of your file on the left side of the file. - In your terminal type: `find /mnt/user/data/ -inum ###` or `find . -inum ###` if you're in your root folder. !!! note "" + `###` = Your inode number on the left of the file you found. ![!hardlinks inode](images/hardlinks-inode.png) diff --git a/docs/Hardlinks/Examples.md b/docs/Hardlinks/Examples.md index bebbe020f..55c2dc1e3 100644 --- a/docs/Hardlinks/Examples.md +++ b/docs/Hardlinks/Examples.md @@ -123,6 +123,6 @@ ![rtorrent-settings-autotools](images/rtorrent-settings-autotools.png) ------- +--- -Big Thanks to [fryfrog](https://github.com/fryfrog){:target="_blank" rel="noopener noreferrer"} for his [Docker Guide](https://wiki.servarr.com/docker-guide){:target="_blank" rel="noopener noreferrer"} that I used as basis for this guide. +Big Thanks to [fryfrog](https://github.com/fryfrog){:target="\_blank" rel="noopener noreferrer"} for his [Docker Guide](https://wiki.servarr.com/docker-guide){:target="\_blank" rel="noopener noreferrer"} that I used as basis for this guide. diff --git a/docs/Hardlinks/Hardlinks-and-Instant-Moves.md b/docs/Hardlinks/Hardlinks-and-Instant-Moves.md index aa33dda6c..a2d18d3ba 100644 --- a/docs/Hardlinks/Hardlinks-and-Instant-Moves.md +++ b/docs/Hardlinks/Hardlinks-and-Instant-Moves.md @@ -36,19 +36,20 @@ Then Continue to [How to setup for](/Hardlinks/How-to-setup-for/) your installat This means: - - You can delete any "copy" w/o impacting the others. + - You can delete any "copy" w/o impacting the others. - Your download client can remove it's "copy" w/o impacting the library "copy". The library "copy" can be removed by Plex or Sonarr/Radarr or yourself w/o impacting the download client "copy". + Your download client can remove it's "copy" w/o impacting the library "copy". The library "copy" can be removed by Plex or Sonarr/Radarr or yourself w/o impacting the download client "copy". - - Space is only regained when all "copies" are deleted. + - Space is only regained when all "copies" are deleted. - - Modifying the file will impact all "copies". + - Modifying the file will impact all "copies". - For example, modifying the id3 tags of a .mp3 download after import would modify the download client "copy", resulting in breaking the torrent. + For example, modifying the id3 tags of a .mp3 download after import would modify the download client "copy", resulting in breaking the torrent. [More info from Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Hard_link){:target="_blank" rel="noopener noreferrer"} !!! warning + You can't create hard links for directories :bangbang: You can't cross file systems :bangbang: diff --git a/docs/Hardlinks/How-to-setup-for/Docker.md b/docs/Hardlinks/How-to-setup-for/Docker.md index 7bbd0f61a..1935a38c8 100644 --- a/docs/Hardlinks/How-to-setup-for/Docker.md +++ b/docs/Hardlinks/How-to-setup-for/Docker.md @@ -21,20 +21,17 @@ For example `//data`, or even `/data`. {! include-markdown "../../../includes/hardlinks/folder-structure.md" !} - {! include-markdown "../../../includes/hardlinks/bad-path-suggestion.md" !} - {! include-markdown "../../../includes/hardlinks/breakdown-folder-structure-docker.md" !} - {! include-markdown "../../../includes/hardlinks/permissions.md" !} - ## Docker-compose Example !!! example "" + This is a docker-compose example based on a default Ubuntu install. The storage location used for the host is actually the same as in the container to make it easier to understand in this case `/data`. @@ -48,7 +45,5 @@ ``` {! include-markdown "../../../includes/hardlinks/docker-compose-commands.md" !} - {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Hardlinks/How-to-setup-for/Dockstarter.md b/docs/Hardlinks/How-to-setup-for/Dockstarter.md index 13089d51c..df9aa8f0e 100644 --- a/docs/Hardlinks/How-to-setup-for/Dockstarter.md +++ b/docs/Hardlinks/How-to-setup-for/Dockstarter.md @@ -18,22 +18,22 @@ storage │ │ ├── books │ │ └── tv │ └── usenet -│ ├── movies -│ ├── music -│ ├── books -│ └── tv +│ ├── movies +│ ├── music +│ ├── books +│ └── tv └── medialibrary - ├── movies - ├── music - ├── books - └── tv + ├── movies + ├── music + ├── books + └── tv ``` ## Changes to the .env To accomplish this we need to change first a few paths in your `.env` (Usually `~/.docker/compose/.env`) -``` yaml +```yaml # Global Settings COMPOSE_HTTP_TIMEOUT=60 DOCKERCONFDIR=~/.config/appdata @@ -57,7 +57,7 @@ When that's all set then you will need to change the paths you're going to use i `/books` => `/storage/medialibrary/books` -`/comics` => `/storage/medialibrary/comics` +`/comics` => `/storage/medialibrary/comics` `/movies` => `/storage/medialibrary/movies` @@ -172,4 +172,3 @@ When that's all set then you will need to change the paths you're going to use i ![ds-rtorrent-settings-autotools](images/ds-rtorrent-settings-autotools.png) {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Hardlinks/How-to-setup-for/Native.md b/docs/Hardlinks/How-to-setup-for/Native.md index a88900779..da687e70a 100644 --- a/docs/Hardlinks/How-to-setup-for/Native.md +++ b/docs/Hardlinks/How-to-setup-for/Native.md @@ -7,13 +7,9 @@ --- {! include-markdown "../../../includes/hardlinks/folder-structure.md" !} - {! include-markdown "../../../includes/hardlinks/breakdown-folder-structure.md" !} - {! include-markdown "../../../includes/hardlinks/permissions.md" !} - {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Hardlinks/How-to-setup-for/Synology.md b/docs/Hardlinks/How-to-setup-for/Synology.md index 99704e6d1..e44b6fe98 100644 --- a/docs/Hardlinks/How-to-setup-for/Synology.md +++ b/docs/Hardlinks/How-to-setup-for/Synology.md @@ -16,7 +16,7 @@ This page will provide you with guidance on how to install several Docker images ## Summary -1. We will create ***one*** share that will hold all your data. This ensures hardlinking and/or instant moves are possible. +1. We will create **_one_** share that will hold all your data. This ensures hardlinking and/or instant moves are possible. 1. Create one user which will be assigned to the docker images as the user they run as out of security reasons. 1. Create a folder structure on the `data` and `docker` share with a few commands (or manually). 1. Download and edit the `docker-compose.yml` and `.env` files to your system settings. @@ -28,6 +28,7 @@ This page will provide you with guidance on how to install several Docker images ??? example "Automated script (**:bangbang:Use this script at your own risk:bangbang:**) - [Click to show/hide]" !!! Warning + Though, we offer a short way out. This is intended as a quick way to do everything that is written on this page within one script. And is only for initial setup. After that, you need to manage it yourself. Rerunning the script can or will reset all personal changes made in the compose/env. The script is only tested on Synology DSM7 and higher. @@ -111,7 +112,7 @@ To enable terminal access, you need to enable SSH in the Synology Settings. ![!synology-control-panel](images/synology-ssh.png) -Then use a program like [Putty](https://www.putty.org/){:target="_blank" rel="noopener noreferrer"} or Powershell/Terminal to SSH into your Synology. +Then use a program like [Putty](https://www.putty.org/){:target="\_blank" rel="noopener noreferrer"} or Powershell/Terminal to SSH into your Synology. Enter the login information of a Synology user account that has admin priveliges, as only members of the 'administrators' user group are able to use SSH. @@ -134,12 +135,11 @@ Save these values for later use. Let's create a good folder structure on the shares we use (`docker` and `data`). This will be done with a few commands. The structure will look like this. You can of course edit this, but do this when you know what you are doing. -*We are using lowercases on all folders on purpose, being Linux is case sensitive.* +_We are using lowercases on all folders on purpose, being Linux is case sensitive._ {! include-markdown "../../../includes/hardlinks/docker-tree-full.md" !} {! include-markdown "../../../includes/hardlinks/bad-path-suggestion.md" !} - To create the folder structure for your media library and also for your preferred download client, run one or both of the following commands: @@ -155,7 +155,7 @@ mkdir -p /volume1/data/{usenet/{incomplete,complete}/{tv,movies,music},media/{tv mkdir -p /volume1/data/{torrents/{tv,movies,music},media/{tv,movies,music}} ``` ------- +--- ### Appdata @@ -183,7 +183,7 @@ docker └── (other applications) ``` ------- +--- ## Needed files @@ -196,7 +196,7 @@ For this, we need two files: We will start with downloading the `docker-compose.yml` file -Download this [docker-compose.yml](https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/docker-compose.yml){:target="_blank" rel="noopener noreferrer"} to your `/volume1/docker/appdata` location so you got your important stuff together. Or use the command below: +Download this [docker-compose.yml](https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/docker-compose.yml){:target="\_blank" rel="noopener noreferrer"} to your `/volume1/docker/appdata` location so you got your important stuff together. Or use the command below: ```bash wget https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/docker-compose.yml -P /volume1/docker/appdata/ @@ -216,40 +216,43 @@ This docker-compose file will have the following docker containers included. What's not included (and where are the download clients?). -We didn't add a download client to it, because it depends on what you prefer (usenet/torrent) and which client you prefer. We have a repository [Repository](https://github.com/TRaSH-/Guides-Synology-Templates/tree/main/templates){:target="_blank" rel="noopener noreferrer"} on Github where we provide and maintain some templates that are ready to use with the main `docker-compose.yml`. +We didn't add a download client to it, because it depends on what you prefer (usenet/torrent) and which client you prefer. We have a repository [Repository](https://github.com/TRaSH-/Guides-Synology-Templates/tree/main/templates){:target="\_blank" rel="noopener noreferrer"} on Github where we provide and maintain some templates that are ready to use with the main `docker-compose.yml`. The only thing you need to do is copy & paste what's inside the template file into to the main `docker-compose.yml` on the bottom, the templates also have a command what you need to use to create the [appdata](#appdata) folder that we explained earlier. Without the appdata folder for the application, the creation of the container will fail because of the missing folder. Second we will download the `.env` file -Download this [.env](https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/.env){:target="_blank" rel="noopener noreferrer"} to your `/volume1/docker/appdata` location next to the `docker-compose.yml`. Or use this command: +Download this [.env](https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/.env){:target="\_blank" rel="noopener noreferrer"} to your `/volume1/docker/appdata` location next to the `docker-compose.yml`. Or use this command: ```bash wget https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/.env -P /volume1/docker/appdata/ ``` !!! warning - :bangbang: MAKE SURE THE FILE KEEPS THE ORIGINAL NAME `.env` WITH THE DOT BEFORE IT :bangbang: ------- + :bangbang: MAKE SURE THE FILE KEEPS THE ORIGINAL NAME `.env` WITH THE DOT BEFORE IT :bangbang: + +--- ### Changes and preparations !!! tip - If you need to edit docker-compose.yml or the .env file we advise to use [Notepad++](https://notepad-plus-plus.org/){:target="_blank" rel="noopener noreferrer"} or [Visual Studio Code](https://code.visualstudio.com/){:target="_blank" rel="noopener noreferrer"} + + If you need to edit docker-compose.yml or the .env file we advise to use [Notepad++](https://notepad-plus-plus.org/){:target="\_blank" rel="noopener noreferrer"} or [Visual Studio Code](https://code.visualstudio.com/){:target="\_blank" rel="noopener noreferrer"} The `.env` file we downloaded holds the variables/information you need to change in order for everything to work. I added explanations in the `.env` file. 1. DOCKERCONFDIR (only change this if you know what you're doing and decide to use another path than this guide used) 1. DOCKERDATADIR (only change this if you know what you're doing and decide to use another path than this guide used) 1. PUID/PGID (this info you got earlier from [HERE](#puid-and-pgid)) -1. TZ (Change to your timezone, can be found [HERE](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones){:target="_blank" rel="noopener noreferrer"}) +1. TZ (Change to your timezone, can be found [HERE](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones){:target="\_blank" rel="noopener noreferrer"}) 1. Install and Create a task scheduler for Pullio, so your containers stay up to date. !!! info "" + The `.env` holds more variables/information for other containers you don't need to remove those variables and will be only used when you install the other containers. ------- +--- #### Pullio - Auto update docker-compose the correct way @@ -258,11 +261,11 @@ Pullio allows you to automatically update your containers. And send you a notifi First you need to download Pullio ```bash - sudo curl -fsSL "https://raw.githubusercontent.com/hotio/pullio/master/pullio.sh" -o /usr/local/bin/pullio + sudo curl -fsSL "https://raw.githubusercontent.com/hotio/pullio/master/pullio.sh" -o /usr/local/bin/pullio ``` ```bash - sudo chmod +x /usr/local/bin/pullio + sudo chmod +x /usr/local/bin/pullio ``` For Pullio to do it's job, you will need to create a Scheduled Task in your Task Scheduler that runs for example at 4am at night with **root** privileges. @@ -281,9 +284,9 @@ At `Task Settings` tab, add the following line in the Run Command section: It can be frustrating to test the script if no docker image updates are available, for that you can run command `sudo pullio --debug` and the script will behave as if an update is available. If you have set to receive notifications, you should receive them. -More info about Pullio [HERE](https://hotio.dev/scripts/pullio/){:target="_blank" rel="noopener noreferrer"} +More info about Pullio [HERE](https://hotio.dev/scripts/pullio/){:target="\_blank" rel="noopener noreferrer"} ------- +--- ### Permissions @@ -292,6 +295,7 @@ Now we need to make sure that the newly created files and folders have the corre If you have an existing library, it is advised to move these to the new `data` share prior to running the commands below. !!! note + If you're using a different user than `docker` (the user generated in the beginning), then you need to change the `docker:users` part in the command below!!! ```bash @@ -303,13 +307,15 @@ sudo chmod -R a=,a+rX,u+w,g+w /volume1/data /volume1/docker ``` !!! note + If you move files from a different library into the newly created library afterwards, you need to rerun these commands. !!! ------- +--- ## Run the Docker Compose !!! tip + make sure you delete/remove all your existing dockers from the Docker GUI and also remove your native installs (in Package Center) of these applications !!! If you had previous installed apps, make a backup of their config folders or backup through the webui of the app. @@ -323,27 +329,25 @@ cd /volume1/docker/appdata sudo docker-compose up -d ``` -You will notice that all the images will be downloaded, after that the containers will be started. If you get a error then read what error says and try to fix it (missing folders, permissions errors, etc). If you can't figure out the solution to your errors, join the guides-discord [here](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"} and create a support ticket. +You will notice that all the images will be downloaded, after that the containers will be started. If you get a error then read what error says and try to fix it (missing folders, permissions errors, etc). If you can't figure out the solution to your errors, join the guides-discord [here](https://trash-guides.info/discord){:target="\_blank" rel="noopener noreferrer"} and create a support ticket. ------- +--- **If you need help setting up the applications, look at the [Examples](/Hardlinks/Examples/) how to setup the paths inside your applications.** !!! warning - If you need to do any changes, only edit the `docker-compose.yml` file. To activate the changes, [run the commands from here](#run-the-docker-compose)) again. + If you need to do any changes, only edit the `docker-compose.yml` file. To activate the changes, [run the commands from here](#run-the-docker-compose) again. Any changes you do/did in the GUI will be reverted when you run the docker-compose command. Just don't use the GUI, only for information purposes !!! {! include-markdown "../../../includes/hardlinks/docker-compose-commands.md" !} - {! include-markdown "../../../includes/support.md" !} - ------- +--- ## Additional Synology Info diff --git a/docs/Hardlinks/How-to-setup-for/TrueNAS-Core.md b/docs/Hardlinks/How-to-setup-for/TrueNAS-Core.md index 83171d646..6d1d02d13 100644 --- a/docs/Hardlinks/How-to-setup-for/TrueNAS-Core.md +++ b/docs/Hardlinks/How-to-setup-for/TrueNAS-Core.md @@ -10,7 +10,7 @@ Additionally, since SMB does not support hardlinks we will only be covering the creation and use of NFS shares. ------- +--- ## Create the main dataset @@ -32,7 +32,7 @@ Click `Submit` (mine shows `Save` since this is an existing dataset) once comple ![truenas-dataset](images/truenas-dataset-options.png) ------- +--- ## Create a shared group @@ -44,7 +44,7 @@ You'll arrive at a simple configuration screen like the one shown below. Set you ![truenas-group](images/truenas-group-options.png) ------- +--- ## Create your user(s) @@ -62,7 +62,7 @@ You'll need to uncheck `New Primary Group` so you can manually populate `Primary If you're using a single, shared user and group setup (1000:1000 is the common one) you can leave New Primary Group checked. Assuming there's not a group that already exists with GID 1000 it will create that group automatically with the same name as the user. ------- +--- ## Dataset permissions @@ -76,7 +76,7 @@ Check the boxes for `Apply User`, `Apply Group`, and `Apply Permissions Recursiv ![truenas-dataset-permissions](images/truenas-dataset-permissions.png) ------- +--- ## Create your NFS share(s) @@ -96,7 +96,7 @@ Click `Submit` once complete. ![truenas-nfs-share-options](images/truenas-nfs-share-options.png) ------- +--- ## Configure and enable NFS service @@ -114,7 +114,7 @@ Make sure to check `Start Automatically` and click the slider under `Running` to ![truenas-nfs-service-options](images/truenas-nfs-service-options.png) ------- +--- ## Mount your shares @@ -122,7 +122,7 @@ Follow standard mounting procedures for your operating system/device. In Ubuntu Regardless of method, make sure that the device ends up with a `data` mount point. The mount point is important since it will allow us to follow the usual guide for folder structure. If you've followed the guide, from a NFS share standpoint the owner and group of the `/mnt/data` directory will be the user and group that were previously configured in the Dataset Permissions section. If this is improperly configured you can end up with `nobody` as the owner or group, or have permission errors. ------- +--- ## Folder Structure @@ -133,4 +133,3 @@ Now that you have a `data` folder, you can follow the normal folder structure re These subfolders you need to create yourself using your preferred method. Set your permissions accordingly as well. If you use ACLs on the datasets you can replicate the usual 775/664 (UMASK 002) or 755/644 (UMASK 022) recommendation, but this guide only covers the use of basic permissions for mounting and expects the end user to fine-tune permissions via chmod, chown, and uid/gid/umask settings on the applications that will be utilizing the share. {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Hardlinks/How-to-setup-for/Unraid.md b/docs/Hardlinks/How-to-setup-for/Unraid.md index a697ec9ab..4c7ad997e 100644 --- a/docs/Hardlinks/How-to-setup-for/Unraid.md +++ b/docs/Hardlinks/How-to-setup-for/Unraid.md @@ -1,9 +1,10 @@ # unRAID !!! warning "**DO NOT** use the template paths from unRAID or the suggested paths from SpaceInvader One" + SpaceInvader One YouTube guides are great for learning how to start with unRAID or how to set up certain applications - and yes I did and still do use them.

The main reason why he's probably using those paths is because they are predefined in the templates. ------- +--- ## Preparation @@ -11,6 +12,7 @@ Make sure `Tunable (support Hard Links)` is enabled in your `Settings` => `Globa === "unRAID 6.12" ![Enable Hardlink support (New)](images/unraid-enable-hardlinks_612.png) + === "unRAID 6.11" ![Enable Hardlink support](images/unraid-enable-hardlinks.png) @@ -24,8 +26,10 @@ Go to your dashboard and select `Shares` on the navigation bar, then choose `Add === "unRAID 6.12 (No Cache)" ![!unraid-main-share-array-6-12](images/unraid_main_share_array_612.png) + === "unRAID 6.12 (Cache)" ![!unraid-main-share-cache-6-12](images/unraid_main_share_cache_612.png) + === "unRAID 6.11" ![!unraid-main-share](images/unraid-main-share.png) @@ -34,12 +38,15 @@ Go to your dashboard and select `Shares` on the navigation bar, then choose `Add === "unRAID 6.12 (No Cache)" Select the `Primary storage` as `Array` (shown in the `No Cache` tab above). + === "unRAID 6.12 (Cache)" 1. Select the `Primary storage` as `Cache` (shown in the `Cache` tab above). 1. Select the `Secondary storage` as `Array` 1. Make sure `Mover action` is set to `Cache -> Array` + === "unRAID 6.11" Choose `Yes` on step (2) (unRAID 6.11 tab above). If not using a cache drive, keep this option disabled. + !!! info "Hardlinks will stay intact if you're using a cache" 1. Click on `ADD SHARE` @@ -52,7 +59,7 @@ Go to your dashboard and select `Shares` on the navigation bar, then choose `Add With Usenet, you won't have any issues. ------- +--- ## Folder Structure @@ -60,7 +67,7 @@ On the host (unRAID) you will need to add `/mnt/user` before it. **So `/mnt/user {! include-markdown "../../../includes/hardlinks/docker-tree-full.md" !} -*I'm using lower-case on all folders on purpose, being Linux is case-sensitive.* +_I'm using lower-case on all folders on purpose, being Linux is case-sensitive._ The `data` folder has sub-folders for `torrents` and `usenet`, and each of these has sub-folders for `tv`, `movie` and `music` downloads to keep things organized. The `media` folder has nicely named `TV`, `Movies` and `Music` sub-folders, this is where your library resides, and what you’d pass to Plex, Emby or JellyFin. @@ -68,7 +75,7 @@ You will need to create these subfolders yourself. You can do this in any way yo ### Fastest way to create the needed subfolders -The fastest way to create all the necessary subfolders would be to use the terminal, use a program like [PuTTy](https://www.putty.org/){:target="_blank" rel="noopener noreferrer"} or use the terminal from the dashboard. +The fastest way to create all the necessary subfolders would be to use the terminal, use a program like [PuTTy](https://www.putty.org/){:target="\_blank" rel="noopener noreferrer"} or use the terminal from the dashboard. These options will automatically create the required subfolders for your media library as well as your preferred download client(s). If you use both torrents and usenet, use both commands. @@ -84,12 +91,11 @@ mkdir -p /mnt/user/data/{usenet/{incomplete,complete}/{tv,movies,music},media/{t mkdir -p /mnt/user/data/{torrents/{tv,movies,music},media/{tv,movies,music}} ``` ------- +--- ### Breakdown of the Folder Structure {! include-markdown "../../../includes/hardlinks/bad-path-suggestion.md" !} - ## Setting up the containers @@ -103,7 +109,7 @@ unRAID makes it pretty clear which is the Host Path and Container Path. `Host Path:` => The actual/absolute path used on your unRAID Server (The Host). ------- +--- ### Torrent clients @@ -121,7 +127,7 @@ qBittorrent, Deluge, ruTorrent {! include-markdown "../../../includes/hardlinks/docker-tree-torrents.md" !} ------- +--- ### Usenet clients @@ -139,7 +145,7 @@ NZBGet or SABnzbd {! include-markdown "../../../includes/hardlinks/docker-tree-usenet.md" !} ------- +--- ### The Starr Apps @@ -157,7 +163,7 @@ Sonarr, Radarr and Lidarr {! include-markdown "../../../includes/hardlinks/docker-tree-full.md" !} ------- +--- ### Media Server @@ -175,7 +181,7 @@ Plex, Emby, JellyFin and Bazarr {! include-markdown "../../../includes/hardlinks/docker-tree-media.md" !} ------- +--- ## Final Result diff --git a/docs/Hardlinks/Replace-copies-with-hardlinks.md b/docs/Hardlinks/Replace-copies-with-hardlinks.md index 58724299f..90c69d0a2 100644 --- a/docs/Hardlinks/Replace-copies-with-hardlinks.md +++ b/docs/Hardlinks/Replace-copies-with-hardlinks.md @@ -9,11 +9,13 @@ If your Operating System supports it you could make use of [Jdupes](https://code ## Usage !!! info "" + I won't cover every command :bangbang: If you want to know what else [Jdupes](https://codeberg.org/jbruchon/jdupes) can do please read the manual. !!! tip + This process can take a long time and a pretty big hit on your resources depending on how big your library is, I did notice the first time it takes longer then the second time. Not sure if this is a cache thing or something else. - That's why I suggest to do it based on categories (Movies, TV, Music etc). @@ -36,10 +38,11 @@ jdupes -rLX onlyext:mp4,mkv,avi "/data/torrents/movies/" "/data/media/movies" ``` !!! bug "" + Windows allows a maximum of 1023 hard links per file !!! Warning + The `-Q` or `--quick` option only reads each file once, hashes it, and performs comparisons based solely on the hashes. There is a small but significant risk of a hash collision which is the purpose of the failsafe byte-for-byte comparison that this option explicitly bypasses. Do not use it on ANY data set for which any amount of data loss is unacceptable. You have been warned! {! include-markdown "../../includes/support.md" !} - diff --git a/docs/Misc/.pages b/docs/Misc/.pages index d3c1fbd82..7471e150d 100644 --- a/docs/Misc/.pages +++ b/docs/Misc/.pages @@ -1,5 +1,5 @@ nav: - - Home: index.md - - How to provide a docker compose: how-to-provide-a-docker-compose.md - - Setup TorGuard for port forwarding: How-to-setup-Torguard-for-port-forwarding.md - - x265-4k and Golden Rule: x265-4k.md + - Home: index.md + - How to provide a docker compose: how-to-provide-a-docker-compose.md + - Setup TorGuard for port forwarding: How-to-setup-Torguard-for-port-forwarding.md + - x265-4k and Golden Rule: x265-4k.md diff --git a/docs/Misc/How-to-setup-Torguard-for-port-forwarding.md b/docs/Misc/How-to-setup-Torguard-for-port-forwarding.md index 46e6812c0..8fb8b2a83 100644 --- a/docs/Misc/How-to-setup-Torguard-for-port-forwarding.md +++ b/docs/Misc/How-to-setup-Torguard-for-port-forwarding.md @@ -1,6 +1,7 @@ # Setup TorGuard for port forwarding !!! note + These settings are a recommendation if you want to choose other settings be my guest. If you want to support me, please use this [referral link](https://torguard.net/aff.php?aff=5575){:target="_blank" rel="noopener noreferrer"} and enter the following discount code: @@ -14,6 +15,7 @@ [![torguard-FreeTrial-270x90](images/torguard/torguard-FreeTrial-728x90.gif)](https://torguard.net/aff.php?aff=5575){:target="_blank" rel="noopener noreferrer"} !!! bug "" + As of 13 March Torguard Settles Piracy Lawsuit and has agreed to use commercially reasonable efforts to block BitTorrent traffic on its servers in the US using firewall technology. :bangbang: I Talked to several people and they are still able to use Torguard for Torrents, Perhaps because the connection is encrypted. And others just selected a server in another country. @@ -24,23 +26,25 @@ [Source Torrentfreak](https://torrentfreak.com/torguard-settles-piracy-lawsuit-and-agrees-to-block-torrent-traffic-on-u-s-servers-220314/){:target="_blank" rel="noopener noreferrer"}. ------- +--- ## Login to your Client area -Login to your [Client Area](https://torguard.net/clientarea.php){:target="_blank" rel="noopener noreferrer"}. +Login to your [Client Area](https://torguard.net/clientarea.php){:target="\_blank" rel="noopener noreferrer"}. ??? success "Example - [Click to show/hide]" + ![!Client Area Login](images/torguard/client-area-login.png) ### Create a user account -First we're going to create a [User Account](https://torguard.net/clientarea.php?action=changepw){:target="_blank" rel="noopener noreferrer"} for your VPN so we won't need to use your main account that you use to login to your account on the Torguard site. +First we're going to create a [User Account](https://torguard.net/clientarea.php?action=changepw){:target="\_blank" rel="noopener noreferrer"} for your VPN so we won't need to use your main account that you use to login to your account on the Torguard site. This account will be used for authentication with your VPN Torrent client. `Services` > `My Services` > `Manage` > `Manage Credentials` ??? success "Example - [Click to show/hide]" + ![!Services > My Services](images/torguard/services-my-services.png) ![!Client Area Manage Credentials](images/torguard/client-area-manage-credentials.png) @@ -48,17 +52,19 @@ This account will be used for authentication with your VPN Torrent client. Create a new username and choose a secure password or create a random username and password. ??? success "Example - [Click to show/hide]" + ![!Create User Account](images/torguard/create_user_account.png) ------- +--- ## How to get the IP of your VPN server -Now it's time to get the IP of your VPN server you're going to use from the [Global VPN Network](https://torguard.net/network/){:target="_blank" rel="noopener noreferrer"}, From your Client Area. +Now it's time to get the IP of your VPN server you're going to use from the [Global VPN Network](https://torguard.net/network/){:target="\_blank" rel="noopener noreferrer"}, From your Client Area. `Servers` > `Global VPN Network` ??? success "Example - [Click to show/hide]" + ![!Servers > Global VPN Network](images/torguard/servers-globalvpnnetwork.png) ### Global VPN Network @@ -68,6 +74,7 @@ Then we're going to select which server we're going to use, For the best speed it's recommended to choose the one nearest to your location. !!! tip "" + Sometimes you get better speeds if you use one of your neighboring countries. !!! warning "If the US server doesn't work for you use another country" @@ -77,6 +84,7 @@ Let's use for this example: `USA Miami` and copy/paste the Hostname `us-fl.torgu ![!Torguard Global VPN Network](images/torguard/globalvpnnetwork-list.png) !!! tip + Also check if your chosen server supports OpenVPN or Wireguard depending what you want to use. ### Get your VPN IP @@ -91,24 +99,27 @@ You will then get the IP of the server. Remember that for later use. ??? success "Example - [Click to show/hide]" + ![!ping](images/torguard/cmd-ping.png) ------- +--- ## How to setup Port forwarding !!! note + This section will consist of 2 parts depending if you want to use OVPN or WireGuard so make sure you choose your preferred VPN Tunnel type. ### Port Forward Request -From your Client Area go to your [My Services](https://torguard.net/clientarea.php?action=products){:target="_blank" rel="noopener noreferrer"}. +From your Client Area go to your [My Services](https://torguard.net/clientarea.php?action=products){:target="\_blank" rel="noopener noreferrer"}. Then click on `Manage` and select `Port Forward Request`. `Services` > `My Services` > `Manage` > `Port Forward Request` ??? success "Example - [Click to show/hide]" + ![!Port Forward Request](images/torguard/req_port_fwd.png) ### VPN Tunnel Type @@ -137,6 +148,7 @@ Choose your preferred VPN Tunnel type. You will also receive a e-mail with the ports you forwarded. !!! Note + Normally it doesn't take more then a few seconds/minutes to get the ports approved if it takes longer or you get `PENDING` I suggest to ping the server again (or choose another sever) and you often get a new IP and retry it again with the new IP. #### WireGuard Request Port Forward @@ -155,6 +167,7 @@ Choose your preferred VPN Tunnel type. 1. Then click on `Submit Request`. !!! warning "WARNING" + :bangbang: DON'T CHANGE OPTION 2 `UDP` to `TCP` :bangbang: If everything went according to plan you will see something like this. @@ -164,20 +177,23 @@ Choose your preferred VPN Tunnel type. You will also receive a e-mail with the ports you forwarded. !!! Note + Normally it doesn't take more then a few seconds/minutes to get the ports approved if it takes longer or you get `PENDING` I suggest to ping the server again (or choose another sever) and you often get a new IP and retry it again with the new IP. ------- +--- ## How to create the config file !!! note + This section will consist of 2 parts depending if you want to use OVPN or WireGuard so make sure you choose your preferred VPN Tunnel type. -From your Client Area go to your [Config Generator](https://torguard.net/tgconf.php?action=vpn-openvpnconfig){:target="_blank" rel="noopener noreferrer"}. +From your Client Area go to your [Config Generator](https://torguard.net/tgconf.php?action=vpn-openvpnconfig){:target="\_blank" rel="noopener noreferrer"}. `Tools` > `Config Generator` ??? success "Example Select Tools > Config Generator - [Click to show/hide]" + ![!Tools - Config Generator](images/torguard/tools-config-generator.png) ### Config Generator @@ -220,11 +236,10 @@ Choose your preferred VPN Tunnel type. Rename the file from `*.conf` to `wg0.conf` and copy it to your wireguard folder of your VPN torrent client. ------- +--- Thanks: A big Thanks to [mrhotio](https://github.com/mrhotio) for his excellent instructions on how to setup WireGuard for TorGuard. {! include-markdown "../../includes/support.md" !} - diff --git a/docs/Misc/how-to-provide-a-docker-compose.md b/docs/Misc/how-to-provide-a-docker-compose.md index f138e0584..c76216816 100644 --- a/docs/Misc/how-to-provide-a-docker-compose.md +++ b/docs/Misc/how-to-provide-a-docker-compose.md @@ -9,6 +9,7 @@ If you need to provide this info always remember to provide it from all your Sta If you're using a system with a GUI (Synology, unRAID, OMV, etc.) it's not always easy to provide a docker compose but it's possible. !!! warning + Please don't use screenshots to provide the info as they aren't always revealing all the needed info Use one of the following commands in the terminal of your choice (e.g. puTTY) to generate the docker compose, with or without the use of `sudo`. Note that you can pass in multiple container names. @@ -24,14 +25,15 @@ sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/red5d/ ``` !!! warning + Please not share the output directly to Discord, reddit, forums, etc. Copy and paste the results on one of the following sites. -- [Notifiarr.com Privatebin](https://logs.notifiarr.com/){:target="_blank" rel="noopener noreferrer"} (Recommended) -- [Github Gist](https://gist.github.com){:target="_blank" rel="noopener noreferrer"} (Alternative) -- [hastebin.com](https://hastebin.com){:target="_blank" rel="noopener noreferrer"} -- [privatebin.net](https://privatebin.net/){:target="_blank" rel="noopener noreferrer"} -- [bpaste](https://bpa.st/){:target="_blank" rel="noopener noreferrer"} +- [Notifiarr.com Privatebin](https://logs.notifiarr.com/){:target="\_blank" rel="noopener noreferrer"} (Recommended) +- [Github Gist](https://gist.github.com){:target="\_blank" rel="noopener noreferrer"} (Alternative) +- [hastebin.com](https://hastebin.com){:target="\_blank" rel="noopener noreferrer"} +- [privatebin.net](https://privatebin.net/){:target="\_blank" rel="noopener noreferrer"} +- [bpaste](https://bpa.st/){:target="\_blank" rel="noopener noreferrer"} -If you use docker run command to create your docker containers, paste your run command in to [composerize](https://www.composerize.com/){:target="_blank" rel="noopener noreferrer"} +If you use docker run command to create your docker containers, paste your run command in to [composerize](https://www.composerize.com/){:target="\_blank" rel="noopener noreferrer"} diff --git a/docs/Misc/x265-4k.md b/docs/Misc/x265-4k.md index d1acd4e1e..23a2700eb 100644 --- a/docs/Misc/x265-4k.md +++ b/docs/Misc/x265-4k.md @@ -3,16 +3,15 @@ ## x265 {! include-markdown "../../includes/docker/x265.md" !} - ### How to accomplish the Golden Rule -- For Sonarr check [HERE](/Sonarr/sonarr-collection-of-custom-formats/#golden-rule){:target="_blank" rel="noopener noreferrer"} -- For Radarr check [HERE](/Radarr/Radarr-collection-of-custom-formats/#x265-hd){:target="_blank" rel="noopener noreferrer"} +- For Sonarr check [HERE](/Sonarr/sonarr-collection-of-custom-formats/#golden-rule){:target="\_blank" rel="noopener noreferrer"} +- For Radarr check [HERE](/Radarr/Radarr-collection-of-custom-formats/#x265-hd){:target="\_blank" rel="noopener noreferrer"} ## Some extra info about 4K/X265 -[4k, transcoding, and you - aka the rules of 4k - a FAQ](https://forums.plex.tv/t/plex-4k-transcoding-and-you-aka-the-rules-of-4k-a-faq/378203){:target="_blank" rel="noopener noreferrer"} - Plex.tv +[4k, transcoding, and you - aka the rules of 4k - a FAQ](https://forums.plex.tv/t/plex-4k-transcoding-and-you-aka-the-rules-of-4k-a-faq/378203){:target="\_blank" rel="noopener noreferrer"} - Plex.tv 1. Don’t bother transcoding 4k 1. If you cannot direct play 4k, then perhaps you should not even be collecting 4k. diff --git a/docs/Plex/.pages b/docs/Plex/.pages index 162f823d8..2b6d9c4da 100644 --- a/docs/Plex/.pages +++ b/docs/Plex/.pages @@ -1,7 +1,7 @@ nav: - - Home: index.md - - Suggested Plex Media Server Settings: /Plex/Tips/Plex-media-server/ - - Optimal Plex Client Settings: /Plex/Tips/Optimal-plex-client-settings/ - - What does my media player support: what-does-my-media-player-support.md - - Stop 4k Video Transcoding: /Plex/Tips/4k-transcoding/ - - Profiles: /Plex/profiles/ + - Home: index.md + - Suggested Plex Media Server Settings: /Plex/Tips/Plex-media-server/ + - Optimal Plex Client Settings: /Plex/Tips/Optimal-plex-client-settings/ + - What does my media player support: what-does-my-media-player-support.md + - Stop 4k Video Transcoding: /Plex/Tips/4k-transcoding/ + - Profiles: /Plex/profiles/ diff --git a/docs/Plex/Tips/4k-transcoding.md b/docs/Plex/Tips/4k-transcoding.md index 17e25f576..364ee833b 100644 --- a/docs/Plex/Tips/4k-transcoding.md +++ b/docs/Plex/Tips/4k-transcoding.md @@ -2,7 +2,7 @@ ## Introduction -The bane of Plex admins existence... 4K Transcodes. According to Plex's forum post [*The Rules of 4K*](https://forums.plex.tv/t/info-plex-4k-transcoding-and-you-aka-the-rules-of-4k/378203) the first three rules of collecting 4k content is don’t bother transcoding 4k. +The bane of Plex admins existence... 4K Transcodes. According to Plex's forum post [_The Rules of 4K_](https://forums.plex.tv/t/info-plex-4k-transcoding-and-you-aka-the-rules-of-4k/378203) the first three rules of collecting 4k content is don’t bother transcoding 4k. This guide will walk you through getting started with Tautulli and JBOPS. By the end of this guide you'll be able to stop all 4K video transcodes on your server. Note that this does require a [Plex Pass](https://www.plex.tv/plex-pass/) to work. diff --git a/docs/Plex/Tips/Optimal-plex-client-settings.md b/docs/Plex/Tips/Optimal-plex-client-settings.md index 06beb78ea..65f84faca 100644 --- a/docs/Plex/Tips/Optimal-plex-client-settings.md +++ b/docs/Plex/Tips/Optimal-plex-client-settings.md @@ -5,11 +5,11 @@ So, what are the best Plex Client settings? I was considering to start fresh on this, but then why reinvent the wheel when someone else already done the research on it? !!! danger "" + Here i will add links to 3rd party sites that will provide Optimal settings for all the possible clients that can be used to stream content. While these settings won't be optimal for everyone's setup, they will be for the majority of you. ## External Links -[The Media Clients Wiki](https://mediaclients.wiki/Plex){:target="_blank" rel="noopener noreferrer"} +[The Media Clients Wiki](https://mediaclients.wiki/Plex){:target="\_blank" rel="noopener noreferrer"} {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Plex/Tips/Plex-media-server.md b/docs/Plex/Tips/Plex-media-server.md index 354f72254..fb2b26f64 100644 --- a/docs/Plex/Tips/Plex-media-server.md +++ b/docs/Plex/Tips/Plex-media-server.md @@ -5,9 +5,11 @@ So, what are the best Plex Media Server settings? This is something that can't really be answered because it depends on the use case and your personal preference. !!! danger "" + Here I will provide some suggestions and try to explain why I recommend these settings. Adjust it to your own liking and keep in mind that it is only a suggestion. I'm not a Plex Pro in anyway :bangbang: !!! warning + Some settings are only visible for Plex Pass holders. All changes need to be done on your Plex Media Server. @@ -15,7 +17,8 @@ All changes need to be done on your Plex Media Server. ![!Plex App](images/plex-settings-icon.png) !!! info "Why didn't you cover option .... ?" - I will only cover settings that I think might be interesting or are personal preference, if you would like me to cover some other settings, please contact me on [![Discord chat](https://img.shields.io/discord/492590071455940612?style=for-the-badge&color=4051B5&logo=discord)](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"} + + I will only cover settings that I think might be interesting or are personal preference, if you would like me to cover some other settings, please contact me on [![Discord chat](https://img.shields.io/discord/492590071455940612?style=for-the-badge&color=4051B5&logo=discord)](https://trash-guides.info/discord){:target="\_blank" rel="noopener noreferrer"} ## Settings @@ -31,11 +34,11 @@ All changes need to be done on your Plex Media Server. 1. Public IP **If you need to provide a screenshot always mask this IP :bangbang:** 1. Manually specify public port if you run Docker or want a fixed port. 1. Enter the Plex port you want to use. (default: `32400`) -1. Click on `Apply` and when everything is setup correctly, your Plex Media Server should be fully accessible outside of your network, so you can connect to your Plex server from outside. You may also need to configure port forwarding on your router. Detailed instructions are available [HERE](https://support.plex.tv/articles/200931138-troubleshooting-remote-access/){:target="_blank" rel="noopener noreferrer"}. +1. Click on `Apply` and when everything is setup correctly, your Plex Media Server should be fully accessible outside of your network, so you can connect to your Plex server from outside. You may also need to configure port forwarding on your router. Detailed instructions are available [HERE](https://support.plex.tv/articles/200931138-troubleshooting-remote-access/){:target="\_blank" rel="noopener noreferrer"}. 1. Enter your internet upload speed here and Plex can ensure it operates within this boundary. 1. Set the maximum bitrate of a remote stream from this server. ------- +--- ### Agents @@ -43,7 +46,7 @@ This can be ignored if you use the new Plex agents, The new agent settings are now managed “per library”. ------- +--- ### Library @@ -54,6 +57,7 @@ The new agent settings are now managed “per library”. When a change is detected in the source location for a library’s content, the appropriate library will be scanned. This function relies on the computer’s operating system providing the “something changed” trigger. Some operating systems don’t provide this trigger and content mounted via a network will also typically not work. If your library doesn’t automatically scan, you may have to set a periodical scan or do it manually. !!! success "" + **Suggested: `Enabled`** ??? tip "TIP - Autoscan - [Click to show/hide]" @@ -71,6 +75,7 @@ When a change is detected in the source location for a library’s content, the When changes to library folders are detected, only scan the folder which changed rather than scanning the entire content location. This works together with the normal Update my library automatically setting (and requires that setting to be enabled). !!! success "" + **Suggested: `Enabled`** #### Include music libraries in automatic updates @@ -86,6 +91,7 @@ I don't do music, so this choice is up to you, and I won't be covering it. Turning this on will cause your Plex Media Server to run scans on your libraries using the designated interval. !!! success "" + **Suggested: `Disabled`** *Do you need a extra scan for your library to recognize new media?* @@ -97,6 +103,7 @@ Turning this on will cause your Plex Media Server to run scans on your libraries With this option enabled, when an item’s file is deleted from the drive, it will be removed from the Plex library on the next scan. Disabling this option keeps the item in the library with an overlay over the item’s poster when the item is removed. !!! success "" + **Suggested: `Enabled`** #### Allow media deletion @@ -106,6 +113,7 @@ With this option enabled, when an item’s file is deleted from the drive, it wi The owner of the server will be allowed to delete media files from disk. !!! success "" + **Suggested: `Disabled`** *In my opinion Plex shouldn't touch your media files. Use Sonarr/Radarr to manage your media library. (For extra security I've setup Plex with Read Only access to the media library)* @@ -117,6 +125,7 @@ The owner of the server will be allowed to delete media files from disk. On low-powered systems (e.g. ARM-based NAS devices), it can be beneficial to run scanner tasks at a lower priority than other tasks. This can help ensure they do not interfere with regular streaming. !!! success "" + **Suggested: `Enabled`** *Makes sure it uses less resources and ensure they do not interfere with regular streaming.* @@ -128,11 +137,13 @@ On low-powered systems (e.g. ARM-based NAS devices), it can be beneficial to run This option creates a series of preview thumbnails from a media item when it is analyzed. These images are used by some Plex apps when you move back and forward in an app with the timeline scrubber. They’ll also be displayed in Now Playing when someone is streaming from you so that you can see where they are in the video. !!! success "" + **Suggested: `Never`** *Besides that, it uses a lot of disk space and high I/O, No one in my family uses FastForward/Rewind but they use the skip forward/backward.* !!! danger "ATTENTION" + Creating these images can - Take a considerable amount of time @@ -148,6 +159,7 @@ This option creates a series of preview thumbnails from a media item when it is You can choose to have TV episodes analyzed to try and detect when the “intro” occurs during playback. When detected, apps will then offer a `Skip Intro` button, allowing you to quickly jump over the intro. !!! success "" + **Suggested: `as a scheduled task`** *or* @@ -161,13 +173,14 @@ You can choose to have TV episodes analyzed to try and detect when the “intro Chapter thumbnails provide images in the chapter view on supported apps. They can take a little time to generate and consume very minor additional disk space. !!! success "" + **Suggested: `as a scheduled task`** *or* **Suggested: `as a scheduled task and when media is added`** ------- +--- ### Network @@ -178,6 +191,7 @@ Chapter thumbnails provide images in the chapter view on supported apps. They ca Enable IPv6 support. !!! success "" + **Suggested: `Disabled`** *If you're not sure your network 100% works with ip6 don't Enable it.* @@ -189,6 +203,7 @@ Enable IPv6 support. Choose how your Plex Media Server handles secure connections. !!! success "" + **Suggested: `Preferred`** *Accept and prefer secure connections when they’re available for a Plex app, but allow regular HTTP connections if the app doesn’t support secure connections or if one can’t be established* @@ -200,9 +215,11 @@ Choose how your Plex Media Server handles secure connections. For users with multiple network cards or systems such as NAS or Docker where there is always another network interface which Plex client applications may try to use to connect to the Plex Media Server, with this option you can ensure that your local Plex clients would only try that interface. !!! warning + If you have enabled Remote Access enabled and are having Plex automatically map the port (as opposed to specifying a port manually), then Plex Media Server has no control over which network interface is used for an automatically-mapped port. Thus, it’s possible that Remote Access connections could come through an interface other than the one specified here. !!! success "" + **Suggested: `Whatever suits your setup`** #### Strict TLS configuration @@ -212,15 +229,17 @@ For users with multiple network cards or systems such as NAS or Docker where the If this setting is enabled, it prevents Plex Media Server from using or accepting the deprecated TLSv1.0 and v1.1 protocols, as well as legacy weak ciphers. May prevent older clients from connecting. The vast majority of users will have no reason to enable this option (and receive no benefit from doing so). !!! success "" + **Suggested: `Disabled`** #### Enable local network discovery (GDM) -![!Settings - Network - Enable local network discovery (GDM)](images/settings-network-enable-local-network-discovery-(gdm).png) +![!Settings - Network - Enable local network discovery (GDM)]() Enable “G’Day Mate” discovery. This is used to allows Plex apps and servers to find each other automatically on a local network. !!! success "" + **Suggested: `Enabled`** #### Remote streams allowed per user @@ -230,6 +249,7 @@ Enable “G’Day Mate” discovery. This is used to allows Plex apps and server You can set the maximum number of simultaneous streams each remote user is allowed to have. !!! success "" + **Suggested: `Whatever suits your setup`** #### LAN Networks @@ -239,6 +259,7 @@ You can set the maximum number of simultaneous streams each remote user is allow It lets you specify which IP addresses or networks will be considered to be “local” to you. !!! success "" + **Suggested: `Your local IP/netmasks`** *If your local devices are seen as remote devices, then this could solve your issue. (Do not include spaces or tabs.)* @@ -250,6 +271,7 @@ It lets you specify which IP addresses or networks will be considered to be “l Allows incoming requests from this network’s WAN IP address to be treated as LAN requests in terms of bandwidth. This often occurs when DNS rebinding protection is in place and clients on the LAN cannot contact the server directly but instead have to go through the WAN IP address. !!! success "" + **Suggested: `Enabled`** #### Enable Relay @@ -259,6 +281,7 @@ Allows incoming requests from this network’s WAN IP address to be treated as L The Relay allows connections to the server through a proxy relay when the server is not accessible otherwise. Relay connections are bandwidth limited. !!! success "" + **Suggested: `Disabled`** *I've seen several reports where people that had this Enabled had playback issues because it seems to be limited at 2 Mbps.* @@ -270,6 +293,7 @@ The Relay allows connections to the server through a proxy relay when the server A comma-separated list of URLs (either HTTP or HTTPS), which will be published to plex.tv for server discovery. This can be very useful in a few cases: if you’re using a reverse proxy in front of the media server, or if your networking configuration is otherwise unique. For instance, if you have your own custom domain with subdomain. !!! success "" + **Suggested: `Depending on your setup`** *Example: `https://plex.mycustomdomain.com:32400`* @@ -278,9 +302,9 @@ A comma-separated list of URLs (either HTTP or HTTPS), which will be published t ![!Settings - Network - Webhooks](images/settings-network-webhooks.png) -This feature can be enabled to allow your server to send events to external services. For example [Notifiarr](https://notifiarr.com/){:target="_blank" rel="noopener noreferrer"} +This feature can be enabled to allow your server to send events to external services. For example [Notifiarr](https://notifiarr.com/){:target="\_blank" rel="noopener noreferrer"} ------- +--- ### Transcoders @@ -291,6 +315,7 @@ This feature can be enabled to allow your server to send events to external serv This will influence the quality used when transcoding media. !!! success "" + **Suggested: `Automatic`** *Most users should leave it set to Automatic. Hardware-Accelerated Streaming is not affected by this setting.* @@ -302,6 +327,7 @@ This will influence the quality used when transcoding media. Directory to use when transcoding temporary files for streaming. !!! success "" + **Suggested: `Depending on your setup, if possible, your RAM (disk)`** *Speeds up transcoding and less I/O, transcode data is temporary and doesn't need to be writing to a disk.* @@ -311,6 +337,7 @@ Directory to use when transcoding temporary files for streaming. *Default Linux only allocates a max of 50% of total system RAM to any ram directories (ie. /tmp, /dev/shm, etc.)* !!! danger "WARNING" + :bangbang: **YOU SHOULD NOT SPECIFY A LOCATION THAT RESIDES ON A NETWORK SHARE/DISK.** :bangbang: #### Enable HDR tone mapping @@ -320,11 +347,13 @@ Directory to use when transcoding temporary files for streaming. This feature allows Plex Media Server to maintain high visual fidelity of content, by applying tone mapping to convert it to SDR when transcoding HDR content. !!! success "" + **Suggested: `Depending on your setup`** *Most HDR content will be in 4K resolution. If your platform has to use software transcoding to perform the tone mapping, then it may well struggle convert 4K content in real-time, unless you’re running on a very powerful system.* !!! note + Plex’s tone mapping support should generally be able to produce good color mapping and help avoid the “washed out” colors that occur when converting HDR content without tone mapping. #### Use hardware acceleration when available @@ -334,6 +363,7 @@ This feature allows Plex Media Server to maintain high visual fidelity of conten To use Hardware-Accelerated Streaming in Plex Media Server. !!! success "" + **Suggested: `Enabled`** #### Use hardware-accelerated video encoding @@ -343,9 +373,10 @@ To use Hardware-Accelerated Streaming in Plex Media Server. To use Hardware-Accelerated Encoding in Plex Media Server. !!! success "" + **Suggested: `Enabled`** ------- +--- ## Manage @@ -377,6 +408,7 @@ Here you will find your libraries you've added to your Plex Media Server. 1. The new version of the Plex Movie agent/scanner !!! success "" + **Suggested: `Plex Movie`** *Besides being much faster at scanning and getting metadata, one of the benefits of the new agent is that all agent settings are set at the library level, so that different libraries using the same agent can have different agent settings.* @@ -386,6 +418,7 @@ Here you will find your libraries you've added to your Plex Media Server. 1. When scanning this library, use local posters and artwork if present. (Local subtitles files will be used whether this is enabled or not) !!! success "" + **Suggested: `Enabled`** *I had this enabled because I thought it was needed for local subtitles (.srt), but after research it seems it isn't needed. @@ -394,6 +427,7 @@ Here you will find your libraries you've added to your Plex Media Server. 1. When scanning this library, prefer embedded tags and local files if present. !!! success "" + **Suggested: `Disabled`** *If enabled you could end up with weird movie naming you don't want, happens especially from releases from `RARBG`* @@ -403,6 +437,7 @@ Here you will find your libraries you've added to your Plex Media Server. 1. Automatically create collections when there are more than the selected number of items for an available collection. !!! success "" + **Suggested: `2`** *Only show collections when you have more than one item in your library* @@ -412,9 +447,11 @@ Here you will find your libraries you've added to your Plex Media Server. 1. This option creates a series of preview thumbnails from a media item when it is analyzed. These images are used by some Plex apps when you move back and forward in an app with the timeline scrubber. They’ll also be displayed in Now Playing when someone is streaming from you so that you can see where they are in the video. !!! danger "ATTENTION" + Creating these images can take a considerable amount of time, CPU resources, and increase the storage space used. The images are stored in your Plex database so be careful you don’t fill the drive :bangbang: !!! success "" + **Suggested: `Disabled`** *Besides that, it uses a lot of disk space and high I/O, No one in my family uses FastForward/Rewind but they use the skip forward/backward.* @@ -423,6 +460,7 @@ Here you will find your libraries you've added to your Plex Media Server. 1. If you want to show your Collection in your library !!! success "" + **Suggested: `Disabled`** *When Disabled your movies will show up normally when you use library view, This doesn't mean it will disable the collection view.* @@ -434,6 +472,7 @@ Here you will find your libraries you've added to your Plex Media Server. 1. The new version of the Plex Movie agent/scanner !!! success "" + **Suggested: `Plex TV Series`** *Besides being much faster at scanning and getting metadata, one of the benefits of the new agent is that all agent settings are set at the library level, so that different libraries using the same agent can have different agent settings.* @@ -445,6 +484,7 @@ Here you will find your libraries you've added to your Plex Media Server. 1. When scanning this library, use local posters and artwork if present. (Local subtitles files will be used whether this is enabled or not) !!! success "" + **Suggested: `Enabled`** *I had this enabled because I thought it was needed for local subtitles (.srt), but after research it seems it isn't needed. @@ -455,6 +495,7 @@ Here you will find your libraries you've added to your Plex Media Server. 1. When scanning this library, prefer embedded tags and local files if present. !!! success "" + **Suggested: `Disabled`** *If enabled you could end up with weird movie naming you don't want, happens especially from releases from `RARBG`* @@ -464,9 +505,11 @@ Here you will find your libraries you've added to your Plex Media Server. 1. This option creates a series of preview thumbnails from a media item when it is analyzed. These images are used by some Plex apps when you move back and forward in an app with the timeline scrubber. They’ll also be displayed in Now Playing when someone is streaming from you so that you can see where they are in the video. !!! danger "ATTENTION" + Creating these images can take a considerable amount of time, CPU resources, and increase the storage space used. The images are stored in your Plex database so be careful you don’t fill the drive :bangbang: !!! success "" + **Suggested: `Disabled`** *Besides that, it uses a lot of disk space and high I/O, No one in my family uses FastForward/Rewind but they use the skip forward/backward.* @@ -475,6 +518,7 @@ Here you will find your libraries you've added to your Plex Media Server. 1. If you want to show your Collection in your library !!! success "" + **Suggested: `Disabled`** *When Disabled your tv show will show up normally when you use library view, This doesn't mean it will disable the collection view.* @@ -482,18 +526,18 @@ Here you will find your libraries you've added to your Plex Media Server. 1. Generate intro detection for items in this library when enabled in server settings. !!! success "" + **Suggested: `Enabled`** *Ever watch a TV show and it starts playing that same minute and a half credits intro that you've already watched multiple times? Well, you can have your Plex Media Server analyze the TV shows to try and detect those introductions and then let you skip through them with a single click!* ------- +--- For the information of this guide, I made use of the following sources - Information I gathered from Several Discord servers -- [Plex Support Articles](https://support.plex.tv/articles/){:target="_blank" rel="noopener noreferrer"} +- [Plex Support Articles](https://support.plex.tv/articles/){:target="\_blank" rel="noopener noreferrer"} - Extra Information gathered from a Plex employee - Own experience {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Plex/profiles/Android-SHIELD/Android-SHIELD-Android-TV.xml b/docs/Plex/profiles/Android-SHIELD/Android-SHIELD-Android-TV.xml index d85b27909..672082447 100644 --- a/docs/Plex/profiles/Android-SHIELD/Android-SHIELD-Android-TV.xml +++ b/docs/Plex/profiles/Android-SHIELD/Android-SHIELD-Android-TV.xml @@ -9,21 +9,30 @@ - - - - - - - - - + + + + + + + + + - - + + diff --git a/docs/Plex/profiles/Chromecast/Chromecast.xml b/docs/Plex/profiles/Chromecast/Chromecast.xml index 186cbd8f8..230ec5346 100644 --- a/docs/Plex/profiles/Chromecast/Chromecast.xml +++ b/docs/Plex/profiles/Chromecast/Chromecast.xml @@ -2,35 +2,38 @@ - + - - + + - - - - - + + + + + - + - - - + + + - - - - + + + + diff --git a/docs/Plex/profiles/index.md b/docs/Plex/profiles/index.md index 0e88f00bf..2b51ae08a 100644 --- a/docs/Plex/profiles/index.md +++ b/docs/Plex/profiles/index.md @@ -1,6 +1,7 @@ # Plex Profiles !!! info + Here you will find a collection of profiles you only should use if Plex has issues direct playing your media on your devices, these profiles could help but results might vary. !!! danger "The profiles aren't tested on the Shield 2019 or newer Chromecast models :warning:" @@ -13,12 +14,13 @@ To make use of the profiles you need to add it in your your plex folder Example paths: -* Hotio's container: `/appdata/plex/Profiles` -* LSIO container: `/appdata/plex/database/Library/Application Support/Plex Media Server/Profiles` or `/appdata/plex/Library/Application Support/Plex Media Server/Profiles` +- Hotio's container: `/appdata/plex/Profiles` +- LSIO container: `/appdata/plex/database/Library/Application Support/Plex Media Server/Profiles` or `/appdata/plex/Library/Application Support/Plex Media Server/Profiles` ## Profiles !!! tip + If you got some to share, pls make a PR so we can collect them at one place ### Android Shield @@ -50,4 +52,3 @@ Example paths: ``` {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Prowlarr/.pages b/docs/Prowlarr/.pages index 3853877e0..ab94b2479 100644 --- a/docs/Prowlarr/.pages +++ b/docs/Prowlarr/.pages @@ -1,5 +1,5 @@ nav: - - Home: index.md - - How to setup proxy for certain indexers: prowlarr-setup-proxy.md - - How to setup FlareSolverr: prowlarr-setup-flaresolverr.md - - How to setup indexers with limited API: prowlarr-setup-limited-api.md + - Home: index.md + - How to setup proxy for certain indexers: prowlarr-setup-proxy.md + - How to setup FlareSolverr: prowlarr-setup-flaresolverr.md + - How to setup indexers with limited API: prowlarr-setup-limited-api.md diff --git a/docs/Prowlarr/index.md b/docs/Prowlarr/index.md index 5a7aa41b0..d1c6f7c6a 100644 --- a/docs/Prowlarr/index.md +++ b/docs/Prowlarr/index.md @@ -4,7 +4,7 @@ Here you will find a collection of tips for Prowlarr. !!! info "Prowlarr is an indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports management of both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Lidarr, Mylar3, Radarr, Readarr, and Sonarr offering complete management of your indexers with no per app Indexer setup required (we do it all)." -For Installation and Quick Start Guide please check the official [WikiArr](https://wiki.servarr.com/en/prowlarr){:target="_blank" rel="noopener noreferrer"} +For Installation and Quick Start Guide please check the official [WikiArr](https://wiki.servarr.com/en/prowlarr){:target="\_blank" rel="noopener noreferrer"} ## Master @@ -28,7 +28,7 @@ For Installation and Quick Start Guide please check the official [WikiArr](https (Alpha/Unstable): This is the bleeding edge. It is released as soon as code is committed and passes all automated tests. This build may have not been used by us or other users yet. There is no guarantee that it will even run in some cases. This branch is only recommended for advanced users. Issues and self investigation are expected in this branch. -***Use this branch only if you know what you are doing and are willing to get your hands dirty to recover a failed update.*** +**_Use this branch only if you know what you are doing and are willing to get your hands dirty to recover a failed update._** This version is updated immediately. @@ -36,4 +36,4 @@ This version is updated immediately. ### How do I update Prowlarr -External link to the official [WikiArr](https://wiki.servarr.com/en/prowlarr/faq#how-do-i-update-prowlarr){:target="_blank" rel="noopener noreferrer"}. +External link to the official [WikiArr](https://wiki.servarr.com/en/prowlarr/faq#how-do-i-update-prowlarr){:target="\_blank" rel="noopener noreferrer"}. diff --git a/docs/Prowlarr/prowlarr-setup-flaresolverr.md b/docs/Prowlarr/prowlarr-setup-flaresolverr.md index cfea9a9fc..dd4bf0bb9 100644 --- a/docs/Prowlarr/prowlarr-setup-flaresolverr.md +++ b/docs/Prowlarr/prowlarr-setup-flaresolverr.md @@ -1,6 +1,6 @@ # How to setup FlareSolverr -[FlareSolverr](https://github.com/FlareSolverr/FlareSolverr){:target="_blank" rel="noopener noreferrer"} is a proxy server to bypass Cloudflare and DDoS-GUARD protection. +[FlareSolverr](https://github.com/FlareSolverr/FlareSolverr){:target="\_blank" rel="noopener noreferrer"} is a proxy server to bypass Cloudflare and DDoS-GUARD protection. !!! info @@ -10,7 +10,7 @@ ## Install FlareSolverr -Please follow the installation instruction from [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr#installation){:target="_blank" rel="noopener noreferrer"} +Please follow the installation instruction from [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr#installation){:target="\_blank" rel="noopener noreferrer"} ## Add FlareSolverr to Prowlarr @@ -29,7 +29,7 @@ Add the following info 1. Name of the Proxy in Prowlarr. 1. The tags for this proxy. 1. The full host path (include http and the port) to your FlareSolverr instance. -1. The [FlareSolver Request maxTimeout value](https://github.com/FlareSolverr/FlareSolverr#-requestget){:target="_blank" rel="noopener noreferrer"} Prowlarr should use for FlareSolverr requests. Must be between `1` second and `180` seconds (Default: `60` seconds). +1. The [FlareSolver Request maxTimeout value](https://github.com/FlareSolverr/FlareSolverr#-requestget){:target="\_blank" rel="noopener noreferrer"} Prowlarr should use for FlareSolverr requests. Must be between `1` second and `180` seconds (Default: `60` seconds). 1. Test if your connection works. 1. If it works click on `Save`. diff --git a/docs/Prowlarr/prowlarr-setup-limited-api.md b/docs/Prowlarr/prowlarr-setup-limited-api.md index 011c0488a..b7ae904fd 100644 --- a/docs/Prowlarr/prowlarr-setup-limited-api.md +++ b/docs/Prowlarr/prowlarr-setup-limited-api.md @@ -68,7 +68,7 @@ For this example we're going to use `Automatic Search`. #### Setup API Limits -In Prowlarr, edit the indexer of your choice and under `Query Limit` (*API hits*) and `Grab Limit` (*Downloads*) you set your indexers API limits, these can be found in several places depending on the indexer, this could be in your profile or when you go to a page where you can select which package you want to buy. +In Prowlarr, edit the indexer of your choice and under `Query Limit` (_API hits_) and `Grab Limit` (_Downloads_) you set your indexers API limits, these can be found in several places depending on the indexer, this could be in your profile or when you go to a page where you can select which package you want to buy. !!! warning "We're adding this to prevent any abuse/hammering to the indexer
Ignoring this can sometimes result in a (potentially lifetime) ban." diff --git a/docs/Prowlarr/prowlarr-setup-proxy.md b/docs/Prowlarr/prowlarr-setup-proxy.md index 0a8f624f5..7a4518e26 100644 --- a/docs/Prowlarr/prowlarr-setup-proxy.md +++ b/docs/Prowlarr/prowlarr-setup-proxy.md @@ -1,12 +1,13 @@ # Setup proxy for certain indexers -It's not recommended to run the Starr apps through a VPN, what can happen is that the Starr apps doesn't update the posters or metadata or you can't add new movies/tv shows, it doesn't need to happen right away. but sooner or later it can and probably will happen. +It's not recommended to run the Starr apps through a VPN, what can happen is that the Starr apps doesn't update the posters or metadata or you can't add new movies/tv shows, it doesn't need to happen right away. but sooner or later it can and probably will happen. !!! danger "To be clear it is not a matter if VPNs will cause issues with the Starr Apps, but when: image providers will block you and cloudflare is in front of most of Starr servers (updates, metadata, etc.) and liable to block you too" Just run VPN on the apps that actually need it, like your torrent client, and perhaps in some cases certain indexers because of region/ISP restriction. !!! warning + Please check the indexers rules if you're allowed to use a VPN/Proxy to access their site, being that VPN services often use shared IP it could be recognized as account sharing. This isn't the same as the tracker, the API/Website scraping happens on the actual site and some indexers don't allow VPN usage on their site. diff --git a/docs/Radarr/.pages b/docs/Radarr/.pages index 986e2fffd..aaea86db3 100644 --- a/docs/Radarr/.pages +++ b/docs/Radarr/.pages @@ -1,12 +1,12 @@ nav: - - Home: index.md - - Quality Settings (File Size): Radarr-Quality-Settings-File-Size.md - - Recommended naming scheme: Radarr-recommended-naming-scheme.md - - How to import Custom Formats: Radarr-import-custom-formats.md - - How to Update Custom Formats: Radarr-how-to-update-custom-formats.md - - How to setup Quality Profiles: radarr-setup-quality-profiles.md - - How to setup Quality Profiles (Anime): radarr-setup-quality-profiles-anime.md - - How to setup Quality Profiles (French): radarr-setup-quality-profiles-french-en.md - - Collection of Custom Formats: Radarr-collection-of-custom-formats.md - - Remote Path Mappings explained: Radarr-remote-path-mapping.md - - Tips + - Home: index.md + - Quality Settings (File Size): Radarr-Quality-Settings-File-Size.md + - Recommended naming scheme: Radarr-recommended-naming-scheme.md + - How to import Custom Formats: Radarr-import-custom-formats.md + - How to Update Custom Formats: Radarr-how-to-update-custom-formats.md + - How to setup Quality Profiles: radarr-setup-quality-profiles.md + - How to setup Quality Profiles (Anime): radarr-setup-quality-profiles-anime.md + - How to setup Quality Profiles (French): radarr-setup-quality-profiles-french-en.md + - Collection of Custom Formats: Radarr-collection-of-custom-formats.md + - Remote Path Mappings explained: Radarr-remote-path-mapping.md + - Tips diff --git a/docs/Radarr/Radarr-Quality-Settings-File-Size.md b/docs/Radarr/Radarr-Quality-Settings-File-Size.md index fde4de995..1ea12203c 100644 --- a/docs/Radarr/Radarr-Quality-Settings-File-Size.md +++ b/docs/Radarr/Radarr-Quality-Settings-File-Size.md @@ -6,6 +6,7 @@ Well, it's actually personal preference so I will show you my recommendations. But before you continue to read, as with all my guides: !!! danger "" + **If you don't care about quality then stop reading and see if the other tutorials are helpful for you.** These Quality Settings have been created and tested with info I got from others, and release comparisons from different sources. @@ -35,7 +36,7 @@ These Quality Settings have been created and tested with info I got from others, - I won't accept changes for micro sized releases. - Documentaries and cartoons are often much smaller so I probably won't edit those either. ------- +--- ## Radarr Quality Definitions @@ -59,6 +60,7 @@ These Quality Settings have been created and tested with info I got from others, | {{ radarr['quality-size']['movie']['qualities'][13]['quality'] }} | {{ radarr['quality-size']['movie']['qualities'][13]['min'] }} | {{ radarr['quality-size']['movie']['qualities'][13]['max'] }} | !!! note + The reason why you don't see the `Preferred` score in the table above is because we want max quality anyway. So set it as high as possible. The highest preferred quality you can manually enter is 1 less than the Maximum quality. If you use the slider, the preferred quality can be up to 5 lesser than the Maximum quality. @@ -66,4 +68,3 @@ These Quality Settings have been created and tested with info I got from others, Make sure you have enabled 'Show Advanced' in Radarr, if you don't see a provision to enter the scores, under the Quality settings. {! include-markdown "../../includes/support.md" !} - diff --git a/docs/Radarr/Radarr-collection-of-custom-formats.md b/docs/Radarr/Radarr-collection-of-custom-formats.md index 2e97b9b1d..b68ad4b8d 100644 --- a/docs/Radarr/Radarr-collection-of-custom-formats.md +++ b/docs/Radarr/Radarr-collection-of-custom-formats.md @@ -11,9 +11,9 @@ After requesting with Team Radarr, we now have the option to import/export the C We've made 3 guides related to this. -- [How to import Custom Formats](/Radarr/Radarr-import-custom-formats){:target="_blank" rel="noopener noreferrer"} - Explains how to import the Custom Formats. -- [How to upgrade Custom Formats](/Radarr/Radarr-how-to-update-custom-formats){:target="_blank" rel="noopener noreferrer"} - Explains how to upgrade your existing Custom Formats. -- [How to set up Quality Profiles](/Radarr/radarr-setup-quality-profiles){:target="_blank" rel="noopener noreferrer"} - Explains how to make the most use of Custom Formats and shows some specifics of my configuration. You can use these examples to get an idea of how to set up your preferences. +- [How to import Custom Formats](/Radarr/Radarr-import-custom-formats){:target="\_blank" rel="noopener noreferrer"} - Explains how to import the Custom Formats. +- [How to upgrade Custom Formats](/Radarr/Radarr-how-to-update-custom-formats){:target="\_blank" rel="noopener noreferrer"} - Explains how to upgrade your existing Custom Formats. +- [How to set up Quality Profiles](/Radarr/radarr-setup-quality-profiles){:target="\_blank" rel="noopener noreferrer"} - Explains how to make the most use of Custom Formats and shows some specifics of my configuration. You can use these examples to get an idea of how to set up your preferences. !!! tip @@ -141,7 +141,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/truehd-atmos.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -157,7 +157,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/dts-x.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -173,7 +173,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/atmos-undefined.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -189,7 +189,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/ddplus-atmos.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -205,7 +205,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/truehd.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -221,7 +221,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/dts-hd-ma.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -237,7 +237,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/flac.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -253,7 +253,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/pcm.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -269,7 +269,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/dts-hd-hra.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -287,7 +287,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/ddplus.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -303,7 +303,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/dts-es.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -321,7 +321,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/dts.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -337,7 +337,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/aac.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -355,7 +355,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/dd.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -371,7 +371,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/mp3.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -387,7 +387,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/opus.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -403,7 +403,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/10-mono.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -415,7 +415,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/20-stereo.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -427,7 +427,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/30-sound.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -439,7 +439,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/40-sound.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -451,7 +451,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/51-surround.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -463,7 +463,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/61-surround.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -475,7 +475,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/71-surround.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -498,7 +498,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/dv-hdr10plus.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -516,7 +516,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/dv-hdr10.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -536,7 +536,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/dv.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -554,7 +554,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/dv-hlg.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -572,7 +572,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/dv-sdr.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -590,7 +590,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/hdr10plus.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -608,7 +608,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/hdr10.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -626,7 +626,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/hdr.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -642,7 +642,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/hdr-undefined.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -660,7 +660,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/pq.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -678,7 +678,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/hlg.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -698,7 +698,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/hybrid.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -714,10 +714,10 @@ We've made 3 guides related to this. ??? example "JSON - [Click to show/hide]" ```json - [[% filter indent(width=4) %]][[% include 'json/radarr/cf/remaster.json' %]][[% endfilter %]] + [[% filter indent(width=4) %]][[% include 'json/radarr/cf/remaster.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -737,7 +737,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/4k-remaster.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -753,7 +753,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/criterion-collection.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -769,7 +769,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/masters-of-cinema.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -785,7 +785,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/vinegar-syndrome.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -801,7 +801,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/theatrical-cut.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -820,7 +820,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/special-edition.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -838,7 +838,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/imax.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -870,7 +870,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/imax-enhanced.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -886,7 +886,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/open-matte.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -918,7 +918,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/br-disk.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -937,7 +937,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/lq.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -955,7 +955,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/lq-release-title.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -973,7 +973,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/3d.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -988,6 +988,7 @@ We've made 3 guides related to this. In your quality profile use the following score for this Custom Format: `{{ radarr['cf']['x265-hd']['trash_scores']['default'] }}` !!! failure "" + --8<-- "includes/docker/x265.md" !!! Danger "Don't use this together with [{{ radarr['cf']['x265-no-hdrdv']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#x265-no-hdrdv), Only ever include one of them :warning:" @@ -998,7 +999,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/x265-hd.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1014,7 +1015,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/upscaled.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1030,7 +1031,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/extras.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1041,6 +1042,7 @@ We've made 3 guides related to this. ### Bad Dual Groups ??? question "Bad dual groups - [Click to show/hide]" + These groups take the original release and add their own language (ex. Portuguese) as the main audio track (AAC 2.0), What results after renaming and FFprobe is that the media file will be recognized as Portuguese AAC audio. It's a common rule that you add the best audio as the first track. Also they often even translate/rename the release name to Portuguese. @@ -1050,7 +1052,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/bad-dual-groups.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1059,6 +1061,7 @@ We've made 3 guides related to this. DV = DoVi = Dolby Vision ??? question "DV (WEBDL) - [Click to show/hide]" + This is a special Custom Format that blocks WEBDLs **with** Dolby Vision but **without** HDR10 fallback. You will need to add the following as a new Custom Format, and when created adjust the scoring in your Quality Profile (`Setting` => `Profiles`) to `-10000`. @@ -1075,7 +1078,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/dv-webdl.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1093,7 +1096,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/evo-no-webdl.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1109,7 +1112,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/hdr10plus-boost.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1125,7 +1128,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/dv-hdr10plus-boost.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1146,7 +1149,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/no-rlsgroup.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1162,7 +1165,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/obfuscated.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1178,7 +1181,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/retags.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1194,7 +1197,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/scene.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1218,7 +1221,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/x265-no-hdrdv.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1237,7 +1240,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/av1.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1256,7 +1259,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/vp9.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1273,7 +1276,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/internal.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1289,7 +1292,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/sdr.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1305,7 +1308,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/sdr-no-webdl.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1321,7 +1324,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/dv-disk.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1339,7 +1342,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/line-mic-dubbed.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1355,7 +1358,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/hfr.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1371,7 +1374,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/repack-proper.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1383,7 +1386,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/repack2.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1401,7 +1404,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/x264.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1414,6 +1417,7 @@ We've made 3 guides related to this. This applies to all x265/HEVC releases that are not Remux. !!! failure "" + Please don't forget to read the following [Microsized & Wrong Source](#microsized-wrong-source) ??? example "JSON - [Click to show/hide]" @@ -1422,7 +1426,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/x265.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1440,7 +1444,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/x266.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1451,6 +1455,7 @@ We've made 3 guides related to this. Sometimes, torrent sites set a torrent to be freeleech. This means, that the download of this torrent will not count towards your download quota or ratio. This is really useful, if you do not have the best ratio yet. !!! warning + Keep in mind not all trackers support this option. ??? example "JSON - [Click to show/hide]" @@ -1459,7 +1464,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/freeleech.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1475,7 +1480,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/dutch-groups.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1487,7 +1492,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/mpeg2.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1499,7 +1504,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/multi.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1523,7 +1528,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/remux-tier-01.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1543,7 +1548,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/remux-tier-02.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1566,7 +1571,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/remux-tier-03.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1588,7 +1593,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/uhd-bluray-tier-01.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1609,7 +1614,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/uhd-bluray-tier-02.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1631,7 +1636,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/uhd-bluray-tier-03.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1652,7 +1657,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/hd-bluray-tier-01.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1671,7 +1676,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/hd-bluray-tier-02.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1691,7 +1696,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/hd-bluray-tier-03.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1711,7 +1716,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/web-tier-01.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1730,7 +1735,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/web-tier-02.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1749,7 +1754,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/web-tier-03.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1773,7 +1778,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/amzn.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1791,7 +1796,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/atvp.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1809,7 +1814,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/bcore.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1827,7 +1832,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/crit.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1845,7 +1850,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/dsnp.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1863,7 +1868,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/hbo.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1881,7 +1886,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/hmax.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1899,7 +1904,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/hulu.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1917,7 +1922,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/max.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1935,7 +1940,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/ma.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1953,7 +1958,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/nf.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1971,7 +1976,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/pcok.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1989,7 +1994,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/pmtp.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2007,7 +2012,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/stan.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2029,7 +2034,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/fod.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2047,7 +2052,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/htsr.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2065,7 +2070,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/tver.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2083,7 +2088,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/tving.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2101,7 +2106,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/u-next.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2119,7 +2124,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/viu.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2141,7 +2146,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/pathe.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2159,7 +2164,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/vdl.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2181,7 +2186,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/ip.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2199,7 +2204,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/itvx.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2217,7 +2222,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/now.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2239,7 +2244,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/crav.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2257,7 +2262,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/ovid.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2275,7 +2280,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/strp.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2295,7 +2300,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/vrv.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2306,6 +2311,7 @@ We've made 3 guides related to this. ### Anime BD Tier 01 (Top SeaDex Muxers) ??? question "Anime BD Tier 01 (Top SeaDex Muxers) - [Click to show/hide]" + Groups that do the best releases as per SeaDex. They are more consistent and trump others ??? example "JSON - [Click to show/hide]" @@ -2314,13 +2320,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/anime-bd-tier-01-top-seadex-muxers.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime BD Tier 02 (SeaDex Muxers) ??? question "Anime BD Tier 02 (SeaDex Muxers) - [Click to show/hide]" + Groups that do the best releases as per SeaDex. They are more consistent and trump others ??? example "JSON - [Click to show/hide]" @@ -2329,13 +2336,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/anime-bd-tier-02-seadex-muxers.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime BD Tier 03 (SeaDex Muxers) ??? question "Anime BD Tier 03 (SeaDex Muxers) - [Click to show/hide]" + Groups that do the best releases as per SeaDex. They are more consistent and trump others ??? example "JSON - [Click to show/hide]" @@ -2344,13 +2352,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/anime-bd-tier-03-seadex-muxers.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime BD Tier 04 (SeaDex Muxers) ??? question "Anime BD Tier 04 (SeaDex Muxers) - [Click to show/hide]" + Groups that do the best releases as per SeaDex. They are more consistent and trump others ??? example "JSON - [Click to show/hide]" @@ -2359,13 +2368,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/anime-bd-tier-04-seadex-muxers.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime BD Tier 05 (Remuxes) ??? question "Anime BD Tier 05 (Remuxes) - [Click to show/hide]" + Groups that are consistent and do Remuxes ??? example "JSON - [Click to show/hide]" @@ -2374,13 +2384,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/anime-bd-tier-05-remuxes.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime BD Tier 06 (FanSubs) ??? question "Anime BD Tier 06 (FanSubs) - [Click to show/hide]" + FanSub groups that are consistent ??? example "JSON - [Click to show/hide]" @@ -2389,13 +2400,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/anime-bd-tier-06-fansubs.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime BD Tier 07 (P2P/Scene) ??? question "Anime BD Tier 07 (P2P/Scene) - [Click to show/hide]" + Known P2P and Scene Anime groups ??? example "JSON - [Click to show/hide]" @@ -2404,13 +2416,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/anime-bd-tier-07-p2pscene.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime BD Tier 08 (Mini Encodes) ??? question "Anime BD Tier 08 (Mini Encodes) - [Click to show/hide]" + Know groups that do mini encodes ??? example "JSON - [Click to show/hide]" @@ -2419,13 +2432,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/anime-bd-tier-08-mini-encodes.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime Web Tier 01 (Muxers) ??? question "Anime Web Tier 01 (Muxers) - [Click to show/hide]" + Groups that do the best releases as per SeaDex. They are more consistent and trump others ??? example "JSON - [Click to show/hide]" @@ -2434,13 +2448,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/anime-web-tier-01-muxers.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime Web Tier 02 (Top FanSubs) ??? question "Anime Web Tier 02 (Top FanSubs) - [Click to show/hide]" + Groups that do the best releases as per SeaDex. They are more consistent and trump others ??? example "JSON - [Click to show/hide]" @@ -2449,13 +2464,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/anime-web-tier-02-top-fansubs.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime Web Tier 03 (Official Subs) ??? question "Anime Web Tier 03 Official Subs) - [Click to show/hide]" + Official sub groups that tend to be more consistent and release fast ??? example "JSON - [Click to show/hide]" @@ -2464,13 +2480,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/anime-web-tier-03-official-subs.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime Web Tier 04 (Official Subs) ??? question "Anime Web Tier 04 (Official Subs) - [Click to show/hide]" + Official sub groups ??? example "JSON - [Click to show/hide]" @@ -2479,13 +2496,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/anime-web-tier-04-official-subs.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime Web Tier 05 (FanSubs) ??? question "Anime Web Tier 05 (FanSubs) - [Click to show/hide]" + FanSub groups that are consistent ??? example "JSON - [Click to show/hide]" @@ -2494,13 +2512,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/anime-web-tier-05-fansubs.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime Web Tier 06 (FanSubs) ??? question "Anime Web Tier 06 (FanSubs) - [Click to show/hide]" + FanSub groups that are consistent ??? example "JSON - [Click to show/hide]" @@ -2509,13 +2528,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/anime-web-tier-06-fansubs.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime Raws ??? question "Anime Raws - [Click to show/hide]" + A collection of know groups that release raws ??? example "JSON - [Click to show/hide]" @@ -2524,13 +2544,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/anime-raws.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime LQ Groups ??? question "Anime LQ Groups - [Click to show/hide]" + A collection of known Low Quality groups. ??? example "JSON - [Click to show/hide]" @@ -2539,13 +2560,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/anime-lq-groups.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Uncensored ??? question "Uncensored - [Click to show/hide]" + This CF covers releases that are uncensored ??? example "JSON - [Click to show/hide]" @@ -2554,13 +2576,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/uncensored.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### v0 ??? question "v0 - [Click to show/hide]" + CF to cover releases named with v0 which we don't want ??? example "JSON - [Click to show/hide]" @@ -2569,13 +2592,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/v0.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### v1 ??? question "v1 - [Click to show/hide]" + CF to cover v1 releases ??? example "JSON - [Click to show/hide]" @@ -2584,13 +2608,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/v1.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### v2 ??? question "v2 - [Click to show/hide]" + CF to cover v2 releases ??? example "JSON - [Click to show/hide]" @@ -2599,13 +2624,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/v2.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### v3 ??? question "v3 - [Click to show/hide]" + CF to cover v3 releases ??? example "JSON - [Click to show/hide]" @@ -2614,13 +2640,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/v3.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### v4 ??? question "v4 - [Click to show/hide]" + CF to cover v4 releases ??? example "JSON - [Click to show/hide]" @@ -2629,13 +2656,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/v4.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### 10bit ??? question "10bit - [Click to show/hide]" + This CF covers releases that are 10bit ??? example "JSON - [Click to show/hide]" @@ -2644,13 +2672,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/10bit.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime Dual Audio ??? question "Anime Dual Audio - [Click to show/hide]" + This CF covers releases that have Dual Audio ??? example "JSON - [Click to show/hide]" @@ -2659,13 +2688,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/anime-dual-audio.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Dubs Only ??? question "Dubs Only - [Click to show/hide]" + This CF covers releases that only have Dubs ??? example "JSON - [Click to show/hide]" @@ -2674,7 +2704,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/dubs-only.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2694,7 +2724,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/multi-french.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2710,7 +2740,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/multi-audio.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2726,7 +2756,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-audio.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2742,7 +2772,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-vff.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2758,7 +2788,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-vof.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2774,7 +2804,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-vfi.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2790,7 +2820,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-vf2.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2806,7 +2836,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-vfq.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2822,7 +2852,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-voq.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2838,7 +2868,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-vq.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2854,7 +2884,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-vfb.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2870,7 +2900,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-vostfr.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2886,7 +2916,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/fansub.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2902,7 +2932,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/fastsub.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2924,7 +2954,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-remux-tier-01.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2945,7 +2975,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-remux-tier-02.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2965,7 +2995,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-uhd-bluray-tier-01.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2987,7 +3017,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-uhd-bluray-tier-02.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -3006,7 +3036,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-hd-bluray-tier-01.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -3026,7 +3056,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-hd-bluray-tier-02.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -3044,7 +3074,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-web-tier-01.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -3063,7 +3093,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-web-tier-02.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -3079,7 +3109,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-scene.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -3104,4 +3134,4 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/radarr/cf/french-lq.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) diff --git a/docs/Radarr/Radarr-how-to-update-custom-formats.md b/docs/Radarr/Radarr-how-to-update-custom-formats.md index 5796ce85f..202a0df27 100644 --- a/docs/Radarr/Radarr-how-to-update-custom-formats.md +++ b/docs/Radarr/Radarr-how-to-update-custom-formats.md @@ -6,7 +6,7 @@ Here I will try to explain how you can manually update Custom Formats for Radarr ## How to Copy/Paste the JSON -The manual way is almost the same as the Import Custom Format way found [HERE](/Radarr/Radarr-import-custom-formats/){:target="_blank" rel="noopener noreferrer"} +The manual way is almost the same as the Import Custom Format way found [HERE](/Radarr/Radarr-import-custom-formats/){:target="\_blank" rel="noopener noreferrer"} ### In Radarr @@ -20,7 +20,7 @@ The manual way is almost the same as the Import Custom Format way found [HERE](/ ### Paste the Custom Format -In the empty `Custom Format JSON` box (1) you just paste the `JSON` that you got from the [Custom Format Collection](/Radarr/Radarr-collection-of-custom-formats/){:target="_blank" rel="noopener noreferrer"} or provided to you from other sources followed by the `Import` button (2). +In the empty `Custom Format JSON` box (1) you just paste the `JSON` that you got from the [Custom Format Collection](/Radarr/Radarr-collection-of-custom-formats/){:target="\_blank" rel="noopener noreferrer"} or provided to you from other sources followed by the `Import` button (2). ![cf-import-cf](images/cf-import-cf.png) @@ -36,6 +36,6 @@ After selecting the `Import` button you will get a screen that has all the Custo This can be done also automatically with one of the TRaSH Sync Applications, -more info can be found [Here](/Guide-Sync/){:target="_blank" rel="noopener noreferrer"} +more info can be found [Here](/Guide-Sync/){:target="\_blank" rel="noopener noreferrer"} --8<-- "includes/support.md" diff --git a/docs/Radarr/Radarr-import-custom-formats.md b/docs/Radarr/Radarr-import-custom-formats.md index a3914066d..fa72605f5 100644 --- a/docs/Radarr/Radarr-import-custom-formats.md +++ b/docs/Radarr/Radarr-import-custom-formats.md @@ -6,9 +6,9 @@ Here I will try to explain how you can manually import Custom Formats for Radarr ## How to Copy/Paste the JSON from the site -In this example I will use the [{{ radarr['cf']['br-disk']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#br-disk){:target="_blank" rel="noopener noreferrer"} Custom Format, the one most people don't want to download anyway. And if you do, then you probably don't use any of the Starr apps or Plex, being both don't support it. +In this example I will use the [{{ radarr['cf']['br-disk']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#br-disk){:target="\_blank" rel="noopener noreferrer"} Custom Format, the one most people don't want to download anyway. And if you do, then you probably don't use any of the Starr apps or Plex, being both don't support it. -Visit the [Collection of Custom Formats](/Radarr/Radarr-collection-of-custom-formats/){:target="_blank" rel="noopener noreferrer"} and select [{{ radarr['cf']['br-disk']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#br-disk){:target="_blank" rel="noopener noreferrer"} from the table. +Visit the [Collection of Custom Formats](/Radarr/Radarr-collection-of-custom-formats/){:target="\_blank" rel="noopener noreferrer"} and select [{{ radarr['cf']['br-disk']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#br-disk){:target="\_blank" rel="noopener noreferrer"} from the table. ![cf-table-select-brdisk](images/cf-table-select-brdisk.png) @@ -40,7 +40,7 @@ Followed by the `Import` in the lower left. ### Paste the Custom Format -Paste the `JSON` in the empty `Custom Format JSON` box (1) that you got from the [Custom Format Collection](/Radarr/Radarr-collection-of-custom-formats/){:target="_blank" rel="noopener noreferrer"} followed by the `Import` button (2). +Paste the `JSON` in the empty `Custom Format JSON` box (1) that you got from the [Custom Format Collection](/Radarr/Radarr-collection-of-custom-formats/){:target="\_blank" rel="noopener noreferrer"} followed by the `Import` button (2). ![cf-import-cf](images/cf-import-cf.png) @@ -54,9 +54,9 @@ all you need to do now is click on the `Save` button and you're done. ### Setup the scores in your Quality Profile After you've added the Custom Formats, You will need to set it up in the Quality Profile you want to use/prefer to make use of the Custom Formats. -How this is done is explained [HERE](/Radarr/radarr-setup-quality-profiles/#basics){:target="_blank" rel="noopener noreferrer"} +How this is done is explained [HERE](/Radarr/radarr-setup-quality-profiles/#basics){:target="\_blank" rel="noopener noreferrer"} ------- +--- ## Start adding other Custom Formats wisely @@ -70,6 +70,6 @@ How this is done is explained [HERE](/Radarr/radarr-setup-quality-profiles/#basi This can be done also automatically with one of the TRaSH Sync Applications, -more info can be found [Here](/Guide-Sync/){:target="_blank" rel="noopener noreferrer"} +more info can be found [Here](/Guide-Sync/){:target="\_blank" rel="noopener noreferrer"} --8<-- "includes/support.md" diff --git a/docs/Radarr/Radarr-recommended-naming-scheme.md b/docs/Radarr/Radarr-recommended-naming-scheme.md index b210e4f12..80c1a1b33 100644 --- a/docs/Radarr/Radarr-recommended-naming-scheme.md +++ b/docs/Radarr/Radarr-recommended-naming-scheme.md @@ -1,6 +1,6 @@ # Recommended naming scheme -On the [Radarr Discord](https://radarr.video/discord){:target="_blank" rel="noopener noreferrer"} people often ask, "What's the recommended/best way to +On the [Radarr Discord](https://radarr.video/discord){:target="\_blank" rel="noopener noreferrer"} people often ask, "What's the recommended/best way to name your files?" First off, it's personal preference, but it's often recommended to add non-recoverable info. Why? @@ -11,7 +11,7 @@ it gets imported correctly and isn't incorrectly matched as HDTV or WEB-DL etc. The Tokens not available in the release won't be used/shown. ------- +--- ## Preparation @@ -29,7 +29,7 @@ Finally, enable `Rename Movies` to reveal the movie renaming options. ## Standard Movie Format -This naming scheme is made to be compatible with the [New Plex Agent](https://forums.plex.tv/t/new-plex-media-server-movie-scanner-and-agent-preview/593269/517){:target="_blank" rel="noopener noreferrer"} that now supports IMDb and TMDb IDs in filenames, if you don't need it or want it just remove `{imdb-{ImdbId}}` +This naming scheme is made to be compatible with the [New Plex Agent](https://forums.plex.tv/t/new-plex-media-server-movie-scanner-and-agent-preview/593269/517){:target="\_blank" rel="noopener noreferrer"} that now supports IMDb and TMDb IDs in filenames, if you don't need it or want it just remove `{imdb-{ImdbId}}` !!! warning "Starting from v4.2.2.6489, Radarr now supports Plex Multiple Edition tags in naming." @@ -99,9 +99,9 @@ This naming scheme is made to be compatible with the [New Plex Agent](https://fo `The Movie Title (2010) [imdbid-tt0066921] - {edition-Ultimate Extended Edition} [Surround Sound x264][Bluray-1080p Proper][3D][DTS 5.1][DE][10bit][AVC]-EVOLVE` ------- +--- -## Original Title vs Original Filename +## Original Title vs Original Filename ### Original Title @@ -117,7 +117,7 @@ The filename can be Obscured where the Release naming isn't, especially when you `{Original Filename}` => `group-karatekid-1080p` or `lchd-tkk1080p` or `t1i0p3s7i8yuti` ------- +--- ## Movie Folder Format @@ -137,9 +137,10 @@ The filename can be Obscured where the Release naming isn't, especially when you RESULT: `The Movie Title (2010)` ------- +--- !!! note + Keep in mind adding anything more after the release year could give issues during a fresh import in to Radarr, but it helps for movies that have the same release name and year. **Radarr supports IMDb ID and TMDb ID in the folder name.** @@ -150,7 +151,7 @@ The filename can be Obscured where the Release naming isn't, especially when you #### Optional Movies Folder Format -This naming scheme is made to be compatible with the new [Plex TV Series Scanner](https://forums.plex.tv/t/beta-new-plex-tv-series-scanner/696242){:target="_blank" rel="noopener noreferrer"} that now support IMDB and TVDB IDs in file names. +This naming scheme is made to be compatible with the new [Plex TV Series Scanner](https://forums.plex.tv/t/beta-new-plex-tv-series-scanner/696242){:target="\_blank" rel="noopener noreferrer"} that now support IMDB and TVDB IDs in file names. ##### Optional Plex @@ -177,9 +178,10 @@ This naming scheme is made to be compatible with the new [Plex TV Series Scanner RESULT: `The Movie Title (2010) [imdbid-tt1520211]` !!! tip + IMDb IDs are going to be very accurate and rarely change, TVDB/TMDB IDs, on the other hand, do change or are removed more frequently. ------- +--- Thanks: diff --git a/docs/Radarr/Radarr-remote-path-mapping.md b/docs/Radarr/Radarr-remote-path-mapping.md index fd48b25b2..39ada0a31 100644 --- a/docs/Radarr/Radarr-remote-path-mapping.md +++ b/docs/Radarr/Radarr-remote-path-mapping.md @@ -11,13 +11,14 @@ Remote Path Mapping acts as a dumb find `Remote Path` and replace with `Local Pa - You run dockers and **DON'T** have consistent and well planned paths. !!! note + If you run dockers it would be smarter to fix the problem at the source of what's causing the actual issue. - [Radarr Wiki Servarr - Docker Guide](https://wiki.servarr.com/docker-guide#consistent-and-well-planned-paths){:target="_blank" rel="noopener noreferrer"} - [TRaSH Guides](/Hardlinks/Hardlinks-and-Instant-Moves/){:target="_blank" rel="noopener noreferrer"} ------- +--- ## How do I recognize that I need remote path mappings @@ -41,7 +42,7 @@ The following error could also mean that you need remote path mappings: So looking at these screenshot it seems you need to make use of remote path mappings. ------- +--- ## How do I setup remote path mappings @@ -105,4 +106,3 @@ The final result will look something like this: After these changes the file should be able to be imported by Radarr. {! include-markdown "../../includes/support.md" !} - diff --git a/docs/Radarr/Tips/How-to-setup-language-custom-formats.md b/docs/Radarr/Tips/How-to-setup-language-custom-formats.md index 024706508..3258253cf 100644 --- a/docs/Radarr/Tips/How-to-setup-language-custom-formats.md +++ b/docs/Radarr/Tips/How-to-setup-language-custom-formats.md @@ -10,7 +10,7 @@ Import the JSON in to your Custom Formats. How ? -Follow the [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="_blank" rel="noopener noreferrer"}. +Follow the [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="\_blank" rel="noopener noreferrer"}. --- diff --git a/docs/Radarr/Tips/Merge-quality.md b/docs/Radarr/Tips/Merge-quality.md index f123cd147..2805bc22d 100644 --- a/docs/Radarr/Tips/Merge-quality.md +++ b/docs/Radarr/Tips/Merge-quality.md @@ -11,10 +11,8 @@ To accomplish this you will need to merge the qualities with each other. Here you will see the current logic so you understand how the possible downloads are compared. {! include-markdown "../../../includes/merge-quality/radarr-current-logic.md" !} - {! include-markdown "../../../includes/merge-quality/sonarr-current-logic.md" !} - ## Merge the Qualities @@ -35,4 +33,3 @@ To merge them you need to click on Edit Groups. When done Sonarr/Radarr upgrades will be handled via Preferred Words / Custom Formats. {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Radarr/Tips/Radarr-rename-your-folders.md b/docs/Radarr/Tips/Radarr-rename-your-folders.md index e72f2e3c6..76c0b5ca2 100644 --- a/docs/Radarr/Tips/Radarr-rename-your-folders.md +++ b/docs/Radarr/Tips/Radarr-rename-your-folders.md @@ -16,7 +16,7 @@ Once you are in "edit" mode, you can select the movie(s) whose folders you want ![!radarr-movie-editor-select](images/radarr-movie-editor-select.png) -1. If you want all your movie's folders to be renamed with the new naming scheme you set [HERE](/Radarr/Radarr-recommended-naming-scheme){:target="_blank" rel="noopener noreferrer"}. +1. If you want all your movie's folders to be renamed with the new naming scheme you set [HERE](/Radarr/Radarr-recommended-naming-scheme){:target="\_blank" rel="noopener noreferrer"}. 1. Select the movie(s) that you want to have the folder(s) renamed. 1. At the bottom select `Edit` @@ -31,6 +31,7 @@ Choose the same (current) root folder for your selected movies, and choose `Appl You will get a warning popup where you will need to choose `Yes, Move the files` !!! warning + If you have a large library, use remote or cloud storage, or your path structure isn't well planned (or doesn't support instant moves) this could take a while. **Make sure you don't interrupt this process.** If it stops before it has been completed, it could result in quite a mess. diff --git a/docs/Radarr/Tips/Radarr-show-unknown-movie-items.md b/docs/Radarr/Tips/Radarr-show-unknown-movie-items.md index e012bd15c..ffb987b86 100644 --- a/docs/Radarr/Tips/Radarr-show-unknown-movie-items.md +++ b/docs/Radarr/Tips/Radarr-show-unknown-movie-items.md @@ -13,4 +13,3 @@ Then on the top right click on `Options` and a new window will popup and enable ![!Enable Show Unknown Movie Items](images/Radarr-show-unknown-movie-item.png) {! include-markdown "../../../includes/support.md" !} - diff --git a/docs/Radarr/Tips/Sync-2-radarr-sonarr.md b/docs/Radarr/Tips/Sync-2-radarr-sonarr.md index cdc106e39..f6a4f76a0 100644 --- a/docs/Radarr/Tips/Sync-2-radarr-sonarr.md +++ b/docs/Radarr/Tips/Sync-2-radarr-sonarr.md @@ -8,14 +8,15 @@ I'm going to show two different options on how you can setup your sync with two - Option 2: This option is best used if you only want to cherry pick which Movies/TV Shows you want as 4K/2160p (UHD). !!! bug "" - I'm not going to explain how to set up two Radarr/Sonarr instances for your system, being it depends on how you have it installed/running. [Radarr Multiple Instance Information](https://wiki.servarr.com/radarr/installation#multiple-instances) and [Sonarr Multiple Instance Information](https://wiki.servarr.com/sonarr/installation#multiple-instances) + + I'm not going to explain how to set up two Radarr/Sonarr instances for your system, being it depends on how you have it installed/running. [Radarr Multiple Instance Information](https://wiki.servarr.com/radarr/installation#multiple-instances) and [Sonarr Multiple Instance Information](https://wiki.servarr.com/sonarr/installation#multiple-instances) ## Preparation For this you need to have prepared the following: - Two Radarr/Sonarr instances fully setup (Indexers, Custom Formats, Downloaders, etc). -- One download client (*Two if you prefer Usenet and Torrents*). +- One download client (_Two if you prefer Usenet and Torrents_). - Your download client has two separate categories (movies-hd, movies-uhd, tv-hd, tv-uhd, etc) !!! warning @@ -24,11 +25,12 @@ For this you need to have prepared the following: Make sure you use two separate root folders in Radarr/Sonarr (movies-hd, movies-uhd, tv-hd, tv-uhd, etc) ------- +--- ### Option 1 !!! info "" + In this example I'm going to use two Radarr instances (The basics is the same for Sonarr). - `Radarr 1` = My main 4K/2160p (UHD) Radarr. @@ -66,7 +68,7 @@ Then you get a screen with the following options: #### Radarr Download client setup - You don't need a separate download client for your two Radarr instances, this all can be done with one download client (*Two if you prefer Usenet and Torrents*). +You don't need a separate download client for your two Radarr instances, this all can be done with one download client (_Two if you prefer Usenet and Torrents_). `Settings` => `Download Clients` @@ -86,11 +88,12 @@ The only thing you need to change/create is a separate `Category` that you're go You now only need to make use of `Radarr 1`. All movies you add to `Radarr 1` will be synced to `Radarr 2` at a scheduled time. ------- +--- ### Option 2 !!! info "" + In this example I'm going to use two Sonarr instances (The basics is the same for Radarr). - `Sonarr 1` = My main 1080p WEB-DL Sonarr. @@ -137,7 +140,7 @@ Then you get a screen with the following options: #### Sonarr Download client setup - You don't need a separate download client for your two Sonarr/Radarr instances, this can all be done with one download client (*Two if you prefer Usenet and Torrents*). +You don't need a separate download client for your two Sonarr/Radarr instances, this can all be done with one download client (_Two if you prefer Usenet and Torrents_). `Settings` => `Download Clients` @@ -157,7 +160,7 @@ Only thing you need to change/create is a separate `Category` that you're going You now only need to make use of `Sonarr 1`. When you got a TV show (or a movie if you use this option with Radarr) that you also want as 4K/2160p (UHD) then you make sure you make use of the Cloned Quality Profile. And it will sync at a scheduled time. ------- +--- [^1]: diff --git a/docs/Radarr/index.md b/docs/Radarr/index.md index f4693c96a..5348a167e 100644 --- a/docs/Radarr/index.md +++ b/docs/Radarr/index.md @@ -4,7 +4,7 @@ Here you will find a collection of Radarr Guides I made. !!! info "Radarr is a movie collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new movies and will interface with clients and indexers to grab, sort, and rename them. It can also be configured to automatically upgrade the quality of existing files in the library when a better quality format becomes available." -For Installation and Quick Start Guide please check the official [WikiArr](https://wiki.servarr.com/en/radarr){:target="_blank" rel="noopener noreferrer"} +For Installation and Quick Start Guide please check the official [WikiArr](https://wiki.servarr.com/en/radarr){:target="\_blank" rel="noopener noreferrer"} ## Master @@ -26,7 +26,7 @@ For Installation and Quick Start Guide please check the official [WikiArr](https (Alpha/Unstable) : This is the bleeding edge. It is released as soon as code is committed and passes all automated tests. This build may have not been used by us or other users yet. There is no guarantee that it will even run in some cases. This branch is only recommended for advanced users. Issues and self investigation are expected in this branch. -***Use this branch only if you know what you are doing and are willing to get your hands dirty to recover a failed update.*** +**_Use this branch only if you know what you are doing and are willing to get your hands dirty to recover a failed update._** This version is updated immediately. @@ -34,4 +34,4 @@ This version is updated immediately. ### How do I update Radarr -External link to the official [WikiArr](https://wiki.servarr.com/en/radarr/faq#how-do-i-update-radarr){:target="_blank" rel="noopener noreferrer"}. +External link to the official [WikiArr](https://wiki.servarr.com/en/radarr/faq#how-do-i-update-radarr){:target="\_blank" rel="noopener noreferrer"}. diff --git a/docs/Radarr/radarr-setup-quality-profiles-anime.md b/docs/Radarr/radarr-setup-quality-profiles-anime.md index 23af7bae2..6293d75b8 100644 --- a/docs/Radarr/radarr-setup-quality-profiles-anime.md +++ b/docs/Radarr/radarr-setup-quality-profiles-anime.md @@ -1,16 +1,18 @@ # How to setup Quality Profiles Anime -*aka How to setup Custom Formats (Anime)*

+_aka How to setup Custom Formats (Anime)_

!!! note + This guide is created and maintained by [FonduemangVI](https://github.com/FonduemangVI) and [rg9400](https://github.com/rg9400) It's recommended to run two Radarr instances. One for Anime Movies and one for Normal Movies, or you can make use of Quality Profiles and score different Custom Formats (CFs) as required. -The aim of this guide is to grab the best release overall (as per [SeaDex](https://releases.moe/){:target="_blank" rel="noopener noreferrer"}) and not necessarily just dual audio. -The vast majority of releases can be found on [Nyaa](https://nyaa.si/){:target="_blank" rel="noopener noreferrer"} or [AB](https://animebytes.tv/){:target="_blank" rel="noopener noreferrer"} +The aim of this guide is to grab the best release overall (as per [SeaDex](https://releases.moe/){:target="\_blank" rel="noopener noreferrer"}) and not necessarily just dual audio. +The vast majority of releases can be found on [Nyaa](https://nyaa.si/){:target="\_blank" rel="noopener noreferrer"} or [AB](https://animebytes.tv/){:target="\_blank" rel="noopener noreferrer"} !!! info "" + Nyaa is a public tracker while AB is an invite only tracker. --- @@ -19,19 +21,19 @@ The vast majority of releases can be found on [Nyaa](https://nyaa.si/){:target=" ### Recommended naming scheme -For naming please refer to [Recommended naming scheme](/Radarr/Radarr-recommended-naming-scheme/){:target="_blank" rel="noopener noreferrer"} +For naming please refer to [Recommended naming scheme](/Radarr/Radarr-recommended-naming-scheme/){:target="\_blank" rel="noopener noreferrer"} --- ## Quality Settings -For quality settings please refer to [Radarr Quality Definitions](/Radarr/Radarr-Quality-Settings-File-Size/#radarr-quality-definitions){:target="_blank" rel="noopener noreferrer"} +For quality settings please refer to [Radarr Quality Definitions](/Radarr/Radarr-Quality-Settings-File-Size/#radarr-quality-definitions){:target="\_blank" rel="noopener noreferrer"} --- ## Quality Profile -We need to create a new profile called `Remux-1080p - Anime` due to the way anime can be named we will need to merge a few qualities together see [here](/Radarr/Tips/Merge-quality/){:target="_blank" rel="noopener noreferrer"} for an example. +We need to create a new profile called `Remux-1080p - Anime` due to the way anime can be named we will need to merge a few qualities together see [here](/Radarr/Tips/Merge-quality/){:target="\_blank" rel="noopener noreferrer"} for an example. We need to add `Bluray-1080p Remux` and `Bluray-1080p` into a group together, `HDTV-1080p` into the same group as `WEBDL-1080p` and `WEBRip-1080p`, and lastly `HDTV-720p` into the same group as `WEBDL-720p` and `WEBRip-720p` so that the scoring will work correctly. @@ -50,10 +52,10 @@ We then need to select and organise the qualities like below. ## Anime CF/Scoring !!! note - We're going to make use of the below custom formats. See [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="_blank" rel="noopener noreferrer"} for how to import them. + + We're going to make use of the below custom formats. See [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="\_blank" rel="noopener noreferrer"} for how to import them. {! include-markdown "../../includes/cf/radarr-anime.md" !} - ### Default Scoring @@ -89,6 +91,7 @@ Below is an example of the scoring set to prefer `Dual Audio` over any tier. ### Uncensored Scoring !!! note + Most BDs are uncensored by default, so most groups do not include that in the name. If you prefer `Uncensored` releases you have a few options depending on your preference. @@ -124,4 +127,3 @@ Most of my information and knowledge came from: - [TRaSH](https://trash-guides.info/) (For allowing me to utilize his website for our guide and general knowledge share.) {! include-markdown "../../includes/support.md" !} - diff --git a/docs/Radarr/radarr-setup-quality-profiles-french-en.md b/docs/Radarr/radarr-setup-quality-profiles-french-en.md index 96263c560..1134524b8 100644 --- a/docs/Radarr/radarr-setup-quality-profiles-french-en.md +++ b/docs/Radarr/radarr-setup-quality-profiles-french-en.md @@ -1,10 +1,10 @@ # How to setup Quality Profiles French -*aka How to setup Custom Formats (French)*

+_aka How to setup Custom Formats (French)_

!!! note "This guide is created and maintained by [Someone said "Nice"?](https://github.com/NiceTSY)" -!!! tip "Cette page est aussi disponible en Français: [Guide en Français](/Radarr/radarr-setup-quality-profiles-french-fr/){:target="_blank" rel="noopener noreferrer"}." +!!! tip "Cette page est aussi disponible en Français: [Guide en Français](/Radarr/radarr-setup-quality-profiles-french-fr/){:target="\_blank" rel="noopener noreferrer"}." So what is the best way to set up the Custom Formats and which one to use with which scores to get French and English Audio? @@ -14,30 +14,32 @@ Regarding quality there isn't a best setup, it depends on your setup (hardware d Some prefer high quality audio (HD Audio), others high quality video. Many prefer both. -TRaSH created a [flowchart](/Radarr/Radarr-setup-custom-formats/#which-quality-profile-should-you-choose){:target="_blank" rel="noopener noreferrer"} to make your decision/choices easier. Remember that this chart does not include any of the following Custom Formats and you will still need to read this guide to get MULTi releases. +TRaSH created a [flowchart](/Radarr/Radarr-setup-custom-formats/#which-quality-profile-should-you-choose){:target="\_blank" rel="noopener noreferrer"} to make your decision/choices easier. Remember that this chart does not include any of the following Custom Formats and you will still need to read this guide to get MULTi releases. ------- +--- ## Basics It is quite important that you follow and understand what is envisioned by Trash's guide: -- Adding Custom Formats, as explained in [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="_blank" rel="noopener noreferrer"}. -- Setting up a quality Profile to make use of the Custom Formats, as explained in [How to setup Quality Profiles | Basics section](/Radarr/radarr-setup-quality-profiles/#basics){:target="_blank" rel="noopener noreferrer"}. +- Adding Custom Formats, as explained in [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="\_blank" rel="noopener noreferrer"}. +- Setting up a quality Profile to make use of the Custom Formats, as explained in [How to setup Quality Profiles | Basics section](/Radarr/radarr-setup-quality-profiles/#basics){:target="\_blank" rel="noopener noreferrer"}. ------- +--- !!! warning "Mandatory" The only change that is needed and **mandatory** for French Custom Formats to work is to set the preferred language profile for your releases to `Any`. ??? success "Screenshot example - [Click to show/hide]" + ![!cf-quality-profile-cf](images/french-cf-profile-language.png) !!! info + We do choose `Any` for the language profile, as otherwise an English movie identified with French audio in Radarr will not be grabbed and vice-versa. ------- +--- ## I am only interested in French subs (VOSTFR) @@ -58,24 +60,25 @@ There is two options: - Ignore any mention of **MULTi Custom Formats**. - Add the [{{ radarr['cf']['french-vostfr']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#vostfr) Custom Format with a score of `{{ radarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}`. ------- +--- ## Usages -There is two ways of using those French Custom Formats, with and without the Guide's original Group tiers (which can be found there: [Collection of Custom Formats](/Radarr/Radarr-collection-of-custom-formats/){:target="_blank" rel="noopener noreferrer"}). +There is two ways of using those French Custom Formats, with and without the Guide's original Group tiers (which can be found there: [Collection of Custom Formats](/Radarr/Radarr-collection-of-custom-formats/){:target="\_blank" rel="noopener noreferrer"}). To illustrate this, you will see an **"Original mix (optional)"** section in each of the examples below. You need to understand that if you add the Custom Formats from this optional section if Radarr do not find a MULTi you will still have a good scoring for single audio. !!! warning "Attention" + If you use the **"Original mix (optional)"**. You need to understand that even if in the beginning the main focus of those French Custom Formats is to work alongside the original ones. You could end up with a single audio release when a MULTi release exists. This is because it was not scored high enough to trump the other scoring. ------- +--- ## Examples of Quality Profile --8<-- "includes/cf/score-attention.md" ------- +--- ### French Audio Versions @@ -85,11 +88,12 @@ Those are all optional and only there to rename your release or to avoid a certa - You only want VOSTFR, in this case you will ignore any mention of **MULTi Custom Formats** and give the [{{ radarr['cf']['french-vostfr']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#vostfr) Custom Format a score of `{{ radarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}`. !!! warning "Attention" + It is not really recommended to put any of the VF Custom Formats (VFF, VFQ, VQ, VFB, VFI, VF2) to a negative score. Instead increase the score of your preferred audio. {! include-markdown "../../includes/french-guide/radarr-french-audio-version-en.md" !} ------- +--- ### Releases you should avoid @@ -97,23 +101,24 @@ This is a must-have for every Quality Profile you use. All these Custom Formats {! include-markdown "../../includes/french-guide/radarr-french-unwanted-en.md" !} ------- +--- ### TRaSH recommendations {! include-markdown "../../includes/cf/radarr-suggest-attention.md" !} !!! tip "Getting the movie name in French in the file and/or folder name" + Following the recommended naming scheme for your library, whether it's Plex, Jellyfin, or Emby, you can add the ISO-2 language code at the end of the movie name tag to display the movie name in the desired language. The tag should look like the following: `{Movie CleanTitle:fr}`. This work in both Folder and File name. ------- +--- #### HD Bluray + WEB If you prefer High Quality HD Encodes (Bluray-720/1080p) -- *Size: 6-15 GB for a Bluray-1080p depending on the running time.* +- _Size: 6-15 GB for a Bluray-1080p depending on the running time._ {! include-markdown "../../includes/french-guide/radarr-french-multi-audio-en.md" !} @@ -145,13 +150,13 @@ The reason why WEB-DL 720p is not selected is because you will hardly find any r - When the Bluray-1080p is released it will upgrade to the Bluray-1080p. - The downloaded media will be upgraded to any of the added Custom Formats until a score of `10000`. ------- +--- #### UHD Bluray + WEB If you prefer High Quality UHD Encodes (Bluray-2160p) -- *Size: 20-60 GB for a Bluray-2160p depending on the running time.* +- _Size: 20-60 GB for a Bluray-2160p depending on the running time._ {! include-markdown "../../includes/french-guide/radarr-french-advanced-audio-information-en.md" !} @@ -187,13 +192,13 @@ Use the following main settings in your profile. - When the Bluray-2160p is released it will upgrade to the Bluray-2160p. - The downloaded media will be upgraded to any of the added Custom Formats until a score of `10000`. ------- +--- #### Remux + WEB 1080p If you prefer 1080p Remuxes (Remux-1080p) -- *Size: 20-40 GB for a Remux-1080p depending on the running time.* +- _Size: 20-40 GB for a Remux-1080p depending on the running time._ {! include-markdown "../../includes/french-guide/radarr-french-advanced-audio-information-en.md" !} @@ -227,13 +232,13 @@ The reason why I didn't select the WEB-DL 720p is because you will hardly find a - When the REMUX-1080p is released it will upgrade to the REMUX-1080p. - The downloaded media will be upgraded to any of the added Custom Formats until a score of `10000`. ------- +--- #### Remux + WEB 2160p If you prefer 2160p Remuxes (Remux-2160p) -- *Size: 40-100 GB for a Remux-2160p depending on the running time.* +- _Size: 40-100 GB for a Remux-2160p depending on the running time._ {! include-markdown "../../includes/french-guide/radarr-french-advanced-audio-information-en.md" !} @@ -267,16 +272,16 @@ Use the following main settings in your profile. - When the REMUX-2160p is released it will upgrade to the REMUX-2160p. - The downloaded media will be upgraded to any of the added Custom Formats until a score of `10000`. ------- +--- ### Advanced Audio and HDR Formats TRaSH provides great guides and explanations about them at the following links: -- [Advanced Audio](/Radarr/radarr-setup-quality-profiles/#advanced-audio){:target="_blank" rel="noopener noreferrer"} -- [HDR Formats](/Radarr/radarr-setup-quality-profiles/#hdr-formats){:target="_blank" rel="noopener noreferrer"} +- [Advanced Audio](/Radarr/radarr-setup-quality-profiles/#advanced-audio){:target="\_blank" rel="noopener noreferrer"} +- [HDR Formats](/Radarr/radarr-setup-quality-profiles/#hdr-formats){:target="\_blank" rel="noopener noreferrer"} ------- +--- ## Acknowledgements diff --git a/docs/Radarr/radarr-setup-quality-profiles-french-fr.md b/docs/Radarr/radarr-setup-quality-profiles-french-fr.md index 4350d79da..76f5c5593 100644 --- a/docs/Radarr/radarr-setup-quality-profiles-french-fr.md +++ b/docs/Radarr/radarr-setup-quality-profiles-french-fr.md @@ -10,30 +10,32 @@ Pour ce qui est de la qualité, il n'y a pas de recette miracle, cela dépend de Certains préfèrent une qualité audio élevée (HD Audio), d'autres une meilleure qualité vidéo. Nombreux sont ceux qui préfèrent les deux. -TRaSH a créé un [schéma](/Radarr/Radarr-setup-custom-formats/#which-quality-profile-should-you-choose){:target="_blank" rel="noopener noreferrer"} pour faciliter votre décision/choix. Notez que ce graphique n'inclut aucun des Formats Personnalisés de ce guide et que vous devrez quand même le lire pour obtenir des releases en MULTi. +TRaSH a créé un [schéma](/Radarr/Radarr-setup-custom-formats/#which-quality-profile-should-you-choose){:target="\_blank" rel="noopener noreferrer"} pour faciliter votre décision/choix. Notez que ce graphique n'inclut aucun des Formats Personnalisés de ce guide et que vous devrez quand même le lire pour obtenir des releases en MULTi. ------- +--- ## Notions de base -Il est impératif que vous respectiez et compreniez ce qui est proposé par le guide de TRaSH (*en anglais uniquement*) : +Il est impératif que vous respectiez et compreniez ce qui est proposé par le guide de TRaSH (_en anglais uniquement_) : -- L'ajout de Formats Personnalisés, comme expliqué dans [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="_blank" rel="noopener noreferrer"}. -- La configuration d'un profil de qualité pour utiliser les formats personnalisés, comme expliqué dans la section [How to setup Quality Profiles | Basics section](/Radarr/Radarr-setup-custom-formats/#basics){:target="_blank" rel="noopener noreferrer"}. +- L'ajout de Formats Personnalisés, comme expliqué dans [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="\_blank" rel="noopener noreferrer"}. +- La configuration d'un profil de qualité pour utiliser les formats personnalisés, comme expliqué dans la section [How to setup Quality Profiles | Basics section](/Radarr/Radarr-setup-custom-formats/#basics){:target="\_blank" rel="noopener noreferrer"}. ------- +--- !!! warning "Impératif" La seule modification nécessaire et **indispensable** pour que les formats personnalisés français fonctionnent est de définir le profil de langue sur `Any`. ??? success "Exemple - [Cliquer pour afficher/masquer]" + ![!cf-quality-profile-cf](images/french-cf-profile-language.png) !!! info + `Any` est choisit sinon un film anglais identifié avec un audio français dans Radarr ne sera pas récupéré et vice-versa. ------- +--- ## Je ne suis intéressé que par des films sous-titrés en français (VOSTFR) @@ -43,8 +45,8 @@ Deux options s'offre à vous : !!! tip "Il s'agit de la méthode à privilégier." -- Configurez Radarr en utilisant : [How to setup Quality Profiles | Which Quality Profile should you choose](/Radarr/radarr-setup-quality-profiles/#which-quality-profile-should-you-choose) (*en anglais*). -- Configurez [Bazarr](../Bazarr/Setup-Guide.md) (*en anglais*). Il permet d'obtenir des sous-titres pour tous les films. +- Configurez Radarr en utilisant : [How to setup Quality Profiles | Which Quality Profile should you choose](/Radarr/radarr-setup-quality-profiles/#which-quality-profile-should-you-choose) (_en anglais_). +- Configurez [Bazarr](../Bazarr/Setup-Guide.md) (_en anglais_). Il permet d'obtenir des sous-titres pour tous les films. - Profitez de vos films avec les sous-titres. - (Facultatif) Ajoutez le Format Personnalisé [{{ radarr['cf']['french-vostfr']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#vostfr) avec un score de `{{ radarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}`. @@ -54,23 +56,24 @@ Deux options s'offre à vous : - Ignorez toute mention des **Formats Personnalisés MULTi**. - Ajoutez le Format Personnalisé [{{ radarr['cf']['french-vostfr']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#vostfr) avec un score de `{{ radarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}`. ------- +--- ## Usages -Il y a deux façons d'aborder les exemples ci-dessous. En utilisant ou non les Formats Personnalisés de Groupes P2P du Guide original (qui peuvent être trouvés ici : [Collection of Custom Formats](/Radarr/Radarr-collection-of-custom-formats/){:target="_blank" rel="noopener noreferrer"}). +Il y a deux façons d'aborder les exemples ci-dessous. En utilisant ou non les Formats Personnalisés de Groupes P2P du Guide original (qui peuvent être trouvés ici : [Collection of Custom Formats](/Radarr/Radarr-collection-of-custom-formats/){:target="\_blank" rel="noopener noreferrer"}). Afin d'illustrer ce principe, vous verrez une section **"Mix original (optionnel)"** dans chacun des exemples ci-dessous. Vous devez comprendre que si vous ajoutez les Formats Personnalisés de cette section optionnelle, si Radarr ne trouve pas de MULTi, vous aurez toujours un bon score pour l'audio anglais. !!! warning "Attention" + Si vous utilisez le **"Mix original (optionnel)"**. Vous devez comprendre que même si l'objectif principal de ces Formats Personnalisés est de travailler en parallèle avec les formats du guide original. Vous pouvez vous retrouver avec un seul audio alors qu'il existe une version MULTi. La raison est que la release n'a pas été notée assez haut pour l'emporter sur les autres scores. ------- +--- ## Exemples de Profil --8<-- "includes/cf/score-attention.md" ------- +--- ### Type de versions françaises @@ -80,11 +83,12 @@ Ces Formats sont optionnels et ne sont là que pour renommer votre fichier ou po - Vous souhaitez seulement du VOSTFR, dans ce ce cas, ignorez toute mention des **Formats Personnalisés MULTi** et donnez un score de `{{ radarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}` au Format Personnalisé [{{ radarr['cf']['french-vostfr']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#vostfr). !!! warning "Attention" + Il n'est pas vraiment recommandé d'attribuer un score négatif à l'un des Formats Personnalisés de VF (VFF, VFQ, VQ, VFB, VFI, VF2). Augmentez plutôt le score de votre format audio préféré. {! include-markdown "../../includes/french-guide/radarr-french-audio-version-fr.md" !} ------- +--- ### Les releases à éviter @@ -92,23 +96,24 @@ Ces Formats sont reconnus comme étant indispensables pour tous les Profils de Q {! include-markdown "../../includes/french-guide/radarr-french-unwanted-fr.md" !} ------- +--- -### TRaSH recommandations (*en anglais*) +### TRaSH recommandations (_en anglais_) {! include-markdown "../../includes/cf/radarr-suggest-attention.md" !} !!! tip "Obtenir le nom du film en français dans le nom du fichier et/ou du dossier" + En suivant le schéma de dénomination recommandé pour votre bibliothèque, qu'il s'agisse de Plex, Jellyfin ou Emby. Vous pouvez ajouter le code de langue ISO-2 à la fin de la balise du nom du film pour afficher le nom du film dans la langue souhaitée. La balise se présentera comme suit : `{Movie CleanTitle:fr}`. Cela fonctionne aussi bien pour les noms de dossiers que pour les noms de fichiers. ------- +--- #### HD Bluray + WEB Si vous préférez les encodages HD de haute qualité (Bluray-720/1080p) -- *Poids : 6 à 15 Go pour un Bluray-1080p selon la durée du média.* +- _Poids : 6 à 15 Go pour un Bluray-1080p selon la durée du média._ {! include-markdown "../../includes/french-guide/radarr-french-multi-audio-fr.md" !} @@ -142,13 +147,13 @@ La raison pour laquelle le WEB-DL 720p n'est pas sélectionné est que vous ne t - Lorsque le Bluray-1080p sortira, il sera mis à niveau vers le Bluray-1080p. - Le média sera mis à niveau en fonction des formats personnalisés ajoutés jusqu'à l'obtention d'un score de `10000`. ------- +--- #### UHD Bluray + WEB Si vous préférez les encodages UHD de haute qualité (Bluray-2160p) -- *Poids : 20 à 60 Go pour un Bluray-2160p selon la durée du média.* +- _Poids : 20 à 60 Go pour un Bluray-2160p selon la durée du média._ {! include-markdown "../../includes/french-guide/radarr-french-advanced-audio-information-fr.md" !} @@ -184,13 +189,13 @@ Utilisez les paramètres suivants dans votre profil. - Lorsque le Bluray-2160p sortira, il sera mis à niveau vers le Bluray-2160p. - Le média sera mis à niveau en fonction des formats personnalisés ajoutés jusqu'à l'obtention d'un score de `10000`. ------- +--- #### Remux + WEB 1080p Si vous préférez les Remuxes en 1080p (Remux-1080p) -- *Poids : 20 à 40 Go pour un Remux-1080p selon la durée du média.* +- _Poids : 20 à 40 Go pour un Remux-1080p selon la durée du média._ {! include-markdown "../../includes/french-guide/radarr-french-advanced-audio-information-fr.md" !} @@ -226,13 +231,13 @@ La raison pour laquelle le WEB-DL 720p n'est pas sélectionné est que vous ne t - Lorsque le REMUX-1080p sortira, il sera mis à niveau vers le REMUX-2160p. - Le média sera mis à niveau en fonction des formats personnalisés ajoutés jusqu'à l'obtention d'un score de `10000`. ------- +--- #### Remux + WEB 2160p Si vous préférez les Remuxes en 2160p (Remux-2160p) -- *Poids : 40 à 100 Go pour un Remux-2160p selon la durée du média.* +- _Poids : 40 à 100 Go pour un Remux-2160p selon la durée du média._ {! include-markdown "../../includes/french-guide/radarr-french-advanced-audio-information-fr.md" !} @@ -266,16 +271,16 @@ Utilisez les paramètres suivants dans votre profil. - Lorsque le REMUX-2160p sortira, il sera mis à niveau vers le REMUX-2160p. - Le média sera mis à niveau en fonction des formats personnalisés ajoutés jusqu'à l'obtention d'un score de `10000`. ------- +--- ### Formats audio avancés et HDR -TRaSH fournit d'excellents guides et explications à leur sujet dans les liens suivants (*en anglais uniquement*) : +TRaSH fournit d'excellents guides et explications à leur sujet dans les liens suivants (_en anglais uniquement_) : -- [Advanced Audio](/Radarr/radarr-setup-quality-profiles/#advanced-audio){:target="_blank" rel="noopener noreferrer"} -- [HDR Formats](/Radarr/radarr-setup-quality-profiles/#hdr-formats){:target="_blank" rel="noopener noreferrer"} +- [Advanced Audio](/Radarr/radarr-setup-quality-profiles/#advanced-audio){:target="\_blank" rel="noopener noreferrer"} +- [HDR Formats](/Radarr/radarr-setup-quality-profiles/#hdr-formats){:target="\_blank" rel="noopener noreferrer"} ------- +--- ## Remerciements diff --git a/docs/Radarr/radarr-setup-quality-profiles.md b/docs/Radarr/radarr-setup-quality-profiles.md index b5dcce2eb..279611bbb 100644 --- a/docs/Radarr/radarr-setup-quality-profiles.md +++ b/docs/Radarr/radarr-setup-quality-profiles.md @@ -1,6 +1,6 @@ # How to set up Quality Profiles -*aka How to set up Custom Formats*

+_aka How to set up Custom Formats_

So what's the best way to set up the Custom Formats and which ones to use with which scores to set up your quality profiles? There isn't a "best" setup, it depends on your media setup (hardware devices) and your personal preferences. @@ -12,11 +12,11 @@ Here we will try to explain how to make the most of Custom Formats to help you s - We've created a [flowchart](#which-quality-profile-should-you-choose) to make your decisions/choices easier. - We've also created an Excel sheet with several tested [media player devices](/Plex/what-does-my-media-player-support){:target="_blank" rel="noopener noreferrer"} to display what formats and capabilities they support, sourced from information provided by our community. We hope this Excel sheet will be a helpful resource for those looking for a reliable media player device and will help you choose the appropriate quality profile. ------- +--- ## Basics -After you've added the Custom Formats, as explained in [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="_blank" rel="noopener noreferrer"}. +After you've added the Custom Formats, as explained in [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="\_blank" rel="noopener noreferrer"}. You will need to set it up in the quality Profile you want to use/prefer to make use of the Custom Formats. `Settings` => `Profiles` @@ -24,6 +24,7 @@ You will need to set it up in the quality Profile you want to use/prefer to make ![!cf-settings-profiles](images/cf-settings-profiles.png) !!! info "Radarr Custom Formats can be set per profile and isn't global" + Select the profile that you want to use/prefer. ![!cf-quality-profiles](images/cf-quality-profiles.png) @@ -40,9 +41,11 @@ Select the profile that you want to use/prefer. At the bottom, in your chosen profile, you will see the added Custom Formats where you can start setting up the scores. ??? success "Screenshot example - [Click to show/hide]" + ![!cf-quality-profile-cf](images/cf-quality-profile-cf.png) !!! warning + These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't always a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add. - Always follow the data described in the guide. @@ -58,11 +61,11 @@ At the bottom, in your chosen profile, you will see the added Custom Formats whe - Custom formats that match with undesirable attributes should be given a negative score to lower their appeal. - Outright rejections should be given a negative score low enough that even if all of the other formats with positive scores were added, the score would still fall below the minimum. ------- +--- {! include-markdown "../../includes/merge-quality/radarr-current-logic.md" !} ------- +--- ## Which Quality Profile should you choose @@ -78,7 +81,7 @@ At the bottom, in your chosen profile, you will see the added Custom Formats whe [![Discord chat](https://img.shields.io/discord/492590071455940612?style=for-the-badge&color=4051B5&logo=discord){ .off-glb }](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"} ------- +--- ## TRaSH Quality Profiles @@ -88,7 +91,7 @@ The following Quality Profiles can be combined into a single Quality Profile if If you prefer High-Quality HD Encodes (Bluray-720p/1080p) -- *Size: 6-15 GB for a Bluray-1080p depending on the running time.* +- _Size: 6-15 GB for a Bluray-1080p depending on the running time._ {! include-markdown "../../includes/cf/radarr-suggest-attention.md" !} @@ -126,13 +129,13 @@ The reason why I didn't select the WEB-DL 720p is that you will hardly find any Because I'm too lazy to calculate the maximum for every Quality Profile I use, and I want it to upgrade to the highest possible score anyway. ------- +--- ### UHD Bluray + WEB If you prefer High-Quality UHD Encodes (Bluray-2160p) -- *Size: 20-60 GB for a Bluray-2160p depending on the running time.* +- _Size: 20-60 GB for a Bluray-2160p depending on the running time._ {! include-markdown "../../includes/cf/radarr-suggest-attention.md" !} @@ -174,13 +177,13 @@ Use the following main settings in your profile. Because I'm too lazy to calculate the maximum for every Quality Profile I use, and I want it to upgrade to the highest possible score anyway. ------- +--- ### Remux + WEB 1080p If you prefer 1080p Remuxes (Remux-1080p) -- *Size: 20-40 GB for a Remux-1080p depending on the running time.* +- _Size: 20-40 GB for a Remux-1080p depending on the running time._ {! include-markdown "../../includes/cf/radarr-suggest-attention.md" !} @@ -218,13 +221,13 @@ The reason why I didn't select the WEB-DL 720p is that you will hardly find any Because I'm too lazy to calculate the maximum for every Quality Profile I use, and I want it to upgrade to the highest possible score anyway. ------- +--- ### Remux + WEB 2160p If you prefer 2160p Remuxes (Remux-2160p) -- *Size: 40-100 GB for a Remux-2160p depending on the running time.* +- _Size: 40-100 GB for a Remux-2160p depending on the running time._ {! include-markdown "../../includes/cf/radarr-suggest-attention.md" !} @@ -264,7 +267,7 @@ Use the following main settings in your profile. Because I'm too lazy to calculate the maximum for every Quality Profile I use, and I want it to be upgraded to the highest possible score anyway. ------- +--- ## Custom Format Groups @@ -280,11 +283,11 @@ The following custom format groups should be combined with the Quality Profiles - You should add **ALL** the Audio formats - don't leave any of them out! - Audio transcoding has a low impact on your server. If your server can't handle audio transcoding, consider choosing another quality profile. -*The reason that I score lossy Atmos higher than lossless DTS-HD MA is that I prefer having the object metadata (Atmos) over lossless audio.* +_The reason that I score lossy Atmos higher than lossless DTS-HD MA is that I prefer having the object metadata (Atmos) over lossless audio._ {! include-markdown "../../includes/cf/radarr-audio.md" !} ------- +--- ### HDR Formats @@ -292,7 +295,7 @@ The following custom format groups should be combined with the Quality Profiles {! include-markdown "../../includes/cf/radarr-all-hdr-formats.md" !} ------- +--- ## FAQ & INFO diff --git a/docs/Recyclarr/.pages b/docs/Recyclarr/.pages index cdddc80e7..144e39f6e 100644 --- a/docs/Recyclarr/.pages +++ b/docs/Recyclarr/.pages @@ -1,3 +1,3 @@ nav: - - Home: index.md - - Collection of configs: recyclarr-configs.md + - Home: index.md + - Collection of configs: recyclarr-configs.md diff --git a/docs/Recyclarr/index.md b/docs/Recyclarr/index.md index aa17617f3..c1b08ccf5 100644 --- a/docs/Recyclarr/index.md +++ b/docs/Recyclarr/index.md @@ -4,7 +4,7 @@ Recyclarr is a command-line application that will automatically synchronize reco !!! info "Automatically mirror TRaSH guides to your Sonarr/Radarr instance based on your setup scheduler." -For Installation and setup Guide please check the official [Recyclarr Wiki](https://recyclarr.dev/wiki/getting-started){:target="_blank" rel="noopener noreferrer"} +For Installation and setup Guide please check the official [Recyclarr Wiki](https://recyclarr.dev/wiki/getting-started){:target="\_blank" rel="noopener noreferrer"} For any questions or support questions please join the discord support channel. @@ -14,4 +14,4 @@ For any questions or support questions please join the discord support channel. ### Collection of configs -- [Recyclarr - collection of configs](/Recyclarr/recyclarr-configs){:target="_blank" rel="noopener noreferrer"} +- [Recyclarr - collection of configs](/Recyclarr/recyclarr-configs){:target="\_blank" rel="noopener noreferrer"} diff --git a/docs/SQP/1-4k.md b/docs/SQP/1-4k.md index e57b40f73..89327402a 100644 --- a/docs/SQP/1-4k.md +++ b/docs/SQP/1-4k.md @@ -1,6 +1,6 @@ --- search: - exclude: true + exclude: true --- # SQP-1 (2160p) Streaming Optimized diff --git a/docs/SQP/1.md b/docs/SQP/1.md index 297a850bf..6c93e40fb 100644 --- a/docs/SQP/1.md +++ b/docs/SQP/1.md @@ -1,6 +1,6 @@ --- search: - exclude: true + exclude: true --- # SQP-1 (1080p) Streaming Optimized diff --git a/docs/SQP/2.md b/docs/SQP/2.md index 13db5f882..bf9e96d02 100644 --- a/docs/SQP/2.md +++ b/docs/SQP/2.md @@ -1,6 +1,6 @@ --- search: - exclude: true + exclude: true --- # UHD Remux|Bluray|IMAX-E (SQP-2) diff --git a/docs/SQP/3.md b/docs/SQP/3.md index 39dfb17aa..baa612c82 100644 --- a/docs/SQP/3.md +++ b/docs/SQP/3.md @@ -1,6 +1,6 @@ --- search: - exclude: true + exclude: true --- # UHD Remux|IMAX-E (SQP-3) diff --git a/docs/SQP/4.md b/docs/SQP/4.md index 118d37b46..6d500c81d 100644 --- a/docs/SQP/4.md +++ b/docs/SQP/4.md @@ -1,6 +1,6 @@ --- search: - exclude: true + exclude: true --- # UHD WEBDL|IMAX-E (SQP-4) diff --git a/docs/SQP/5.md b/docs/SQP/5.md index d08c4cd1b..1994f1e0e 100644 --- a/docs/SQP/5.md +++ b/docs/SQP/5.md @@ -1,6 +1,6 @@ --- search: - exclude: true + exclude: true --- # UHD Bluray|IMAX-E (SQP-5) diff --git a/docs/SQP/index.md b/docs/SQP/index.md index ed5f38fde..bac549367 100644 --- a/docs/SQP/index.md +++ b/docs/SQP/index.md @@ -1,6 +1,6 @@ --- search: - exclude: true + exclude: true --- # Special Quality Profiles @@ -19,32 +19,37 @@ The Special Quality Profiles are Custom made and tested Quality Profile for spec ## The Following SQP are available -- [SQP-1 (1080p) - *Streaming Optimized*](/SQP/1){:target="_blank" rel="noopener noreferrer"} -- [SQP-1 (2160p) - *Streaming Optimized*](/SQP/1-4k){:target="_blank" rel="noopener noreferrer"} -- [SQP-2 (2160p) - *UHD Remux|Bluray|IMAX-E*](/SQP/2){:target="_blank" rel="noopener noreferrer"} -- [SQP-3 (2160p) - *UHD Remux|IMAX-E*](/SQP/3){:target="_blank" rel="noopener noreferrer"} -- [SQP-4 (2160p) - *UHD WEBDL|IMAX-E*](/SQP/4){:target="_blank" rel="noopener noreferrer"} -- [SQP-5 (2160p) - *UHD Bluray|IMAX-E*](/SQP/5){:target="_blank" rel="noopener noreferrer"} +- [SQP-1 (1080p) - _Streaming Optimized_](/SQP/1){:target="\_blank" rel="noopener noreferrer"} +- [SQP-1 (2160p) - _Streaming Optimized_](/SQP/1-4k){:target="\_blank" rel="noopener noreferrer"} +- [SQP-2 (2160p) - _UHD Remux|Bluray|IMAX-E_](/SQP/2){:target="\_blank" rel="noopener noreferrer"} +- [SQP-3 (2160p) - _UHD Remux|IMAX-E_](/SQP/3){:target="\_blank" rel="noopener noreferrer"} +- [SQP-4 (2160p) - _UHD WEBDL|IMAX-E_](/SQP/4){:target="\_blank" rel="noopener noreferrer"} +- [SQP-5 (2160p) - _UHD Bluray|IMAX-E_](/SQP/5){:target="\_blank" rel="noopener noreferrer"} ### FAQ & INFO !!! info + **SQP** = Special Quality Profile **CF** = Custom Formats ??? question "Can I use these SQP with Sonarr? - [Click to show/hide]" + **NO**, SQP are only for Radarr :bangbang:
At the moment their are no specific release groups to create a SQP for Sonarr.
If you're looking for a SQP-1 (xxxxp) then look at the public Sonarr Guide. ??? question "Why don't you add this to the public guide? - [Click to show/hide]" + These SQPs are advanced Quality Profiles tested and created for a specific need, and only interesting for people that are interested in a specific Quality Profile. ??? question "I see CFs that aren't in the main guide - [Click to show/hide]" + Some SQPs have/need specific CFs to work. ??? question "Some CFs in your instructions have a score of 0. Should I follow the scores from the main guide? - [Click to show/hide]" + No, you should always follow the scores of the SQP. !!! TIP @@ -54,4 +59,3 @@ The Special Quality Profiles are Custom made and tested Quality Profile for spec - Follow the setup instructions and don't skip steps. {! include-markdown "../../includes/support.md" !} - diff --git a/docs/Sonarr/.pages b/docs/Sonarr/.pages index edf59f95d..bc599166a 100644 --- a/docs/Sonarr/.pages +++ b/docs/Sonarr/.pages @@ -1,12 +1,12 @@ nav: - - Home: index.md - - Quality Settings (File Size): Sonarr-Quality-Settings-File-Size.md - - Recommended naming scheme: Sonarr-recommended-naming-scheme.md - - How to import Custom Formats: sonarr-import-custom-formats.md - - How to Update Custom Formats: sonarr-how-to-update-custom-formats.md - - How to setup Quality Profiles: sonarr-setup-quality-profiles.md - - How to setup Quality Profiles (Anime): sonarr-setup-quality-profiles-anime.md - - How to setup Quality Profiles (French): sonarr-setup-quality-profiles-french-en.md - - Collection of Custom Formats: sonarr-collection-of-custom-formats.md - - Remote Path Mappings explained: Sonarr-remote-path-mapping.md - - Tips + - Home: index.md + - Quality Settings (File Size): Sonarr-Quality-Settings-File-Size.md + - Recommended naming scheme: Sonarr-recommended-naming-scheme.md + - How to import Custom Formats: sonarr-import-custom-formats.md + - How to Update Custom Formats: sonarr-how-to-update-custom-formats.md + - How to setup Quality Profiles: sonarr-setup-quality-profiles.md + - How to setup Quality Profiles (Anime): sonarr-setup-quality-profiles-anime.md + - How to setup Quality Profiles (French): sonarr-setup-quality-profiles-french-en.md + - Collection of Custom Formats: sonarr-collection-of-custom-formats.md + - Remote Path Mappings explained: Sonarr-remote-path-mapping.md + - Tips diff --git a/docs/Sonarr/Sonarr-Quality-Settings-File-Size.md b/docs/Sonarr/Sonarr-Quality-Settings-File-Size.md index e988c3631..8ae0ba4cd 100644 --- a/docs/Sonarr/Sonarr-Quality-Settings-File-Size.md +++ b/docs/Sonarr/Sonarr-Quality-Settings-File-Size.md @@ -6,6 +6,7 @@ Well, it's actually personal preference so I will show you my recommendations. But before you continue to read, as with all my guides: !!! danger "" + **If you don't care about quality then stop reading and see if the other tutorials are helpful for you.** These Quality Settings have been created and tested with info I got from others, and release comparisons from different sources. @@ -33,7 +34,7 @@ I only do WEB-DL myself for TV shows because in my opinion WEB-DL is the sweet s - I won't accept changes for micro sized releases. - Documentaries and cartoons are often much smaller so I probably won't edit those either. ------- +--- ## Sonarr Quality Definitions @@ -54,7 +55,7 @@ I only do WEB-DL myself for TV shows because in my opinion WEB-DL is the sweet s | {{ sonarr['quality-size']['series']['qualities'][12]['quality'] }} | {{ sonarr['quality-size']['series']['qualities'][12]['min'] }} | {{ sonarr['quality-size']['series']['qualities'][12]['max'] }} | | {{ sonarr['quality-size']['series']['qualities'][13]['quality'] }} | {{ sonarr['quality-size']['series']['qualities'][13]['min'] }} | {{ sonarr['quality-size']['series']['qualities'][13]['max'] }} | ------- +--- ### Sonarr Quality Definitions - Anime @@ -81,6 +82,7 @@ I only do WEB-DL myself for TV shows because in my opinion WEB-DL is the sweet s | {{ sonarr['quality-size']['anime']['qualities'][18]['quality'] }} | {{ sonarr['quality-size']['anime']['qualities'][18]['min'] }} | {{ sonarr['quality-size']['anime']['qualities'][18]['max'] }} | !!! note + The reason why you don't see the `Preferred` score in the table above is because we want max quality anyway. So set it as high as possible. The highest preferred quality you can manually enter is 1 less than the Maximum quality. If you use the slider, the preferred quality can be up to 5 lesser than the Maximum quality. diff --git a/docs/Sonarr/Sonarr-recommended-naming-scheme.md b/docs/Sonarr/Sonarr-recommended-naming-scheme.md index 6c1809059..815cadf9f 100644 --- a/docs/Sonarr/Sonarr-recommended-naming-scheme.md +++ b/docs/Sonarr/Sonarr-recommended-naming-scheme.md @@ -1,6 +1,6 @@ # Recommended naming scheme -On the [Sonarr Discord](https://discord.gg/M6BvZn5){:target="_blank" rel="noopener noreferrer"} people often ask, "What's the recommended/best way to +On the [Sonarr Discord](https://discord.gg/M6BvZn5){:target="\_blank" rel="noopener noreferrer"} people often ask, "What's the recommended/best way to name your files?" First off, it's personal preference, but it's often recommended to add non-recoverable info. Why? @@ -11,7 +11,7 @@ it gets imported correctly and isn't incorrectly matched as HDTV or WEB-DL etc. !!! info "The Tokens not available in the release won't be used/shown." ------- +--- ## Preparation @@ -43,7 +43,7 @@ Finally, enable `Rename Episodes` to reveal the episode renaming options. `The Series Title! (2010) - S01E01-E03 - Episode Title [AMZN WEBDL-1080p Proper][DV HDR10][DTS 5.1][x264]-RlsGrp` ------- +--- ## Daily Episode Format @@ -55,7 +55,7 @@ Finally, enable `Rename Episodes` to reveal the episode renaming options. `The Series Title! (2010) - 2013-10-30 - Episode Title 1 [AMZN WEBDL-1080p Proper][DV HDR10][DTS 5.1][x264]-RlsGrp` ------- +--- ## Anime Episode Format @@ -73,7 +73,7 @@ Finally, enable `Rename Episodes` to reveal the episode renaming options. `The Series Title! (2010) - S01E01-E03 - 001-003 - Episode Title [iNTERNAL HDTV-720p v2][HDR10][10bit][x264][DTS 5.1][JA]-RlsGrp` ------- +--- ### Series Folder Format @@ -85,7 +85,7 @@ Finally, enable `Rename Episodes` to reveal the episode renaming options. #### Optional Series Folder Format -This naming scheme is made to be compatible with the new [Plex TV Series Scanner](https://forums.plex.tv/t/beta-new-plex-tv-series-scanner/696242){:target="_blank" rel="noopener noreferrer"} that now support IMDB and TVDB IDs in file names. +This naming scheme is made to be compatible with the new [Plex TV Series Scanner](https://forums.plex.tv/t/beta-new-plex-tv-series-scanner/696242){:target="\_blank" rel="noopener noreferrer"} that now support IMDB and TVDB IDs in file names. ##### Optional Plex @@ -112,9 +112,10 @@ This naming scheme is made to be compatible with the new [Plex TV Series Scanner RESULT: `The Series Title! (2010) [tvdbid-tt1520211]` !!! tip + IMDb IDs are going to be very accurate and rarely change, TVDB/TMDB IDs, on the other hand, do change or are removed more frequently. ------- +--- ### Season Folder Format @@ -126,7 +127,7 @@ Season {season:00} RESULT: `Season 01` ------- +--- ### Multi-Episode Style @@ -138,9 +139,9 @@ RESULTS: ![results](images/results.png) ------- +--- -## Original Title vs Original Filename +## Original Title vs Original Filename ### Original Title @@ -156,7 +157,7 @@ The filename can be Obscured where the Release naming isn't, especially when you `{Original Filename}` => `show episode 1-1080p` or `lchd-tkk1080p` or `t1i0p3s7i8yuti` ------- +--- Thanks: diff --git a/docs/Sonarr/Sonarr-remote-path-mapping.md b/docs/Sonarr/Sonarr-remote-path-mapping.md index d7f84ab55..d3afa120b 100644 --- a/docs/Sonarr/Sonarr-remote-path-mapping.md +++ b/docs/Sonarr/Sonarr-remote-path-mapping.md @@ -11,13 +11,14 @@ Remote Path Mapping acts as a dumb find `Remote Path` and replace with `Local Pa - You run dockers and **DON'T** have consistent and well planned paths. !!! note + If you run dockers it would be smarter to fix the problem at the source what's causing the actual issue. - [Sonarr Wiki Servarr - Docker Guide](https://wiki.servarr.com/docker-guide#consistent-and-well-planned-paths){:target="_blank" rel="noopener noreferrer"} - [TRaSH Guides](/Hardlinks/Hardlinks-and-Instant-Moves/){:target="_blank" rel="noopener noreferrer"} ------- +--- ## How do I recognize that I need remote path mappings @@ -29,7 +30,7 @@ You will get an error that looks a little bit like the following screenshot. So looking at this screenshot it seems we need to make use of Remote Path Mappings ------- +--- ## How @@ -49,7 +50,7 @@ A screen will pop up with the following options: 1. `Remote Path` => The download path that you've set in your download client. 1. `Local Path` => The path Sonarr needs to access the same path. ------- +--- ??? example "Examples" @@ -83,4 +84,3 @@ A screen will pop up with the following options: ![Qbittorrent final result](images/qbit_final.png) {! include-markdown "../../includes/support.md" !} - diff --git a/docs/Sonarr/Tips/How-to-setup-language-custom-formats.md b/docs/Sonarr/Tips/How-to-setup-language-custom-formats.md index bd9cdb28b..03b98c1a3 100644 --- a/docs/Sonarr/Tips/How-to-setup-language-custom-formats.md +++ b/docs/Sonarr/Tips/How-to-setup-language-custom-formats.md @@ -1,4 +1 @@ -{! - include-markdown '../../Radarr/Tips/How-to-setup-language-custom-formats.md' - rewrite_relative_urls=true -!} +{! include-markdown '../../Radarr/Tips/How-to-setup-language-custom-formats.md' rewrite_relative_urls=true !} diff --git a/docs/Sonarr/Tips/Merge-quality.md b/docs/Sonarr/Tips/Merge-quality.md index 4695d8cb6..195691124 100644 --- a/docs/Sonarr/Tips/Merge-quality.md +++ b/docs/Sonarr/Tips/Merge-quality.md @@ -1,4 +1 @@ -{! - include-markdown '../../Radarr/Tips/Merge-quality.md' - rewrite_relative_urls=true -!} +{! include-markdown '../../Radarr/Tips/Merge-quality.md' rewrite_relative_urls=true !} diff --git a/docs/Sonarr/Tips/Sync-2-radarr-sonarr.md b/docs/Sonarr/Tips/Sync-2-radarr-sonarr.md index 67be1d03e..e0fe5beb2 100644 --- a/docs/Sonarr/Tips/Sync-2-radarr-sonarr.md +++ b/docs/Sonarr/Tips/Sync-2-radarr-sonarr.md @@ -1,4 +1 @@ -{! - include-markdown '../../Radarr/Tips/Sync-2-radarr-sonarr.md' - rewrite_relative_urls=true -!} +{! include-markdown '../../Radarr/Tips/Sync-2-radarr-sonarr.md' rewrite_relative_urls=true !} diff --git a/docs/Sonarr/index.md b/docs/Sonarr/index.md index 4eed0eb36..0a9d6fd6b 100644 --- a/docs/Sonarr/index.md +++ b/docs/Sonarr/index.md @@ -4,7 +4,7 @@ Here you will find a collection of Sonarr guides I made. !!! info "Sonarr is a PVR for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available." -For Installation and Quick Start Guide please check the official [WikiArr](https://wiki.servarr.com/en/sonarr){:target="_blank" rel="noopener noreferrer"} +For Installation and Quick Start Guide please check the official [WikiArr](https://wiki.servarr.com/en/sonarr){:target="\_blank" rel="noopener noreferrer"} ## Master @@ -22,4 +22,4 @@ For Installation and Quick Start Guide please check the official [WikiArr](https ### How do I update Sonarr -External link to the official [WikiArr](https://wiki.servarr.com/en/sonarr/faq#how-do-i-update-sonarr){:target="_blank" rel="noopener noreferrer"}. +External link to the official [WikiArr](https://wiki.servarr.com/en/sonarr/faq#how-do-i-update-sonarr){:target="\_blank" rel="noopener noreferrer"}. diff --git a/docs/Sonarr/sonarr-collection-of-custom-formats.md b/docs/Sonarr/sonarr-collection-of-custom-formats.md index a46705c69..29738e235 100644 --- a/docs/Sonarr/sonarr-collection-of-custom-formats.md +++ b/docs/Sonarr/sonarr-collection-of-custom-formats.md @@ -8,9 +8,9 @@ Special thanks to everyone that has helped in the creation and testing of these Sonarr V4+ introduces Custom Formats. These are much more advanced/powerful than the release profiles, although this also means a Custom Format can require more knowledge to set up or create. We've made 3 guides related to this. -- [How to import Custom Formats](/Sonarr/sonarr-import-custom-formats){:target="_blank" rel="noopener noreferrer"} - Explains how to import the Custom Formats. -- [How to upgrade Custom Formats](/Sonarr/sonarr-how-to-update-custom-formats){:target="_blank" rel="noopener noreferrer"} - Explains how to upgrade your existing Custom Formats. -- [How to setup Quality Profiles](/Sonarr/sonarr-setup-quality-profiles){:target="_blank" rel="noopener noreferrer"} - Explains how to make the most use of Custom Formats and shows some specifics of my configuration. You can use these examples to get an idea of how to set up your preferences. +- [How to import Custom Formats](/Sonarr/sonarr-import-custom-formats){:target="\_blank" rel="noopener noreferrer"} - Explains how to import the Custom Formats. +- [How to upgrade Custom Formats](/Sonarr/sonarr-how-to-update-custom-formats){:target="\_blank" rel="noopener noreferrer"} - Explains how to upgrade your existing Custom Formats. +- [How to setup Quality Profiles](/Sonarr/sonarr-setup-quality-profiles){:target="\_blank" rel="noopener noreferrer"} - Explains how to make the most use of Custom Formats and shows some specifics of my configuration. You can use these examples to get an idea of how to set up your preferences. !!! tip @@ -140,7 +140,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/truehd-atmos.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -156,7 +156,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/dts-x.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -172,7 +172,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/atmos-undefined.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -190,7 +190,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/ddplus-atmos.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -206,7 +206,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/truehd.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -222,7 +222,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/dts-hd-ma.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -238,7 +238,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/flac.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -254,7 +254,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/pcm.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -270,7 +270,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/dts-hd-hra.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -288,7 +288,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/ddplus.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -304,7 +304,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/dts-es.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -322,7 +322,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/dts.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -338,7 +338,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/aac.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -356,7 +356,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/dd.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -372,7 +372,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/mp3.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -388,7 +388,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/opus.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -404,7 +404,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/10-mono.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -416,7 +416,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/20-stereo.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -428,7 +428,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/30-sound.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -440,7 +440,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/40-sound.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -452,7 +452,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/51-surround.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -464,7 +464,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/61-surround.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -476,7 +476,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/71-surround.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -499,7 +499,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/dv-hdr10plus.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -517,7 +517,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/dv-hdr10.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -537,7 +537,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/dv.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -555,7 +555,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/dv-hlg.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -573,7 +573,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/dv-sdr.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -591,7 +591,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/hdr10plus.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -609,7 +609,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/hdr10.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -627,7 +627,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/hdr.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -643,7 +643,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/hdr-undefined.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -661,7 +661,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/pq.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -679,7 +679,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/hlg.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -699,7 +699,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/hybrid.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -715,10 +715,10 @@ We've made 3 guides related to this. ??? example "JSON - [Click to show/hide]" ```json - [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/remaster.json' %]][[% endfilter %]] + [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/remaster.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -751,7 +751,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/br-disk.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -769,7 +769,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/lq.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -787,7 +787,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/lq-release-title.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -803,7 +803,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/upscaled.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -818,6 +818,7 @@ We've made 3 guides related to this. In your quality profile use the following score for this Custom Format: `{{ sonarr['cf']['x265-hd']['trash_scores']['default'] }}` !!! failure "" + --8<-- "includes/docker/x265.md" !!! Danger "Don't use this together with [{{ sonarr['cf']['x265-no-hdrdv']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#x265-no-hdrdv), Only ever include one of them :warning:" @@ -828,7 +829,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/x265-hd.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -844,7 +845,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/extras.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -860,7 +861,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/repack-proper.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -872,7 +873,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/repack-v2.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -884,7 +885,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/repack-v3.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -902,7 +903,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/x264.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -915,6 +916,7 @@ We've made 3 guides related to this. This applies to all x265/HEVC releases that are not Remux. !!! failure "" + Please don't forget to read the following [Microsized & Wrong Source](#microsized-wrong-source) ??? example "JSON - [Click to show/hide]" @@ -923,7 +925,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/x265.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -941,7 +943,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/x266.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -953,7 +955,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/mpeg2.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -965,7 +967,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/multi.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -976,6 +978,7 @@ We've made 3 guides related to this. Torrent sites sometimes set a torrent to be freeleech. This means that the download of this torrent will not count towards your quota or ratio. This can be useful when starting a new account or if you do not have the best ratio yet. !!! warning + Keep in mind not all trackers support this option. ??? example "JSON - [Click to show/hide]" @@ -984,7 +987,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/freeleech.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -995,6 +998,7 @@ We've made 3 guides related to this. ### Bad Dual Groups ??? question "Bad dual groups - [Click to show/hide]" + These groups take the original release and add their own language (ex. Portuguese) as the main audio track (AAC 2.0), What results after renaming and FFprobe is that the media file will be recognized as Portuguese AAC audio. It's a common rule that you add the best audio as the first track. Also they often even translate/rename the release name to Portuguese. @@ -1004,7 +1008,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/bad-dual-groups.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1013,6 +1017,7 @@ We've made 3 guides related to this. DV = DoVi = Dolby Vision ??? question "DV (WEBDL) - [Click to show/hide]" + This is a special Custom Format that blocks WEBDLs **with** Dolby Vision but **without** HDR10 fallback. You will need to add the following as a new Custom Format, and when created adjust the scoring in your Quality Profile (`Setting` => `Profiles`) to `-10000`. @@ -1029,7 +1034,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/dv-webdl.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1045,7 +1050,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/hdr10plus-boost.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1061,7 +1066,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/dv-hdr10plus-boost.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1082,7 +1087,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/no-rlsgroup.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1098,7 +1103,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/obfuscated.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1114,7 +1119,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/retags.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1130,7 +1135,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/scene.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1141,6 +1146,7 @@ We've made 3 guides related to this. - This CF utilizes functionality only available starting in Sonarr v4.0.2.1262. ??? question "Season Pack - [Click to show/hide]" + This Custom Format can be used to prefer or exclude season packs - Give it a score of `10` if you prefer a season pack. @@ -1148,6 +1154,7 @@ We've made 3 guides related to this. - Utilizing the "Release Type" custom format setting added in v4.0.2.1262, Season Pack source status is now persistently stored alongside episodes. !!! info + - This Custom Format could previously result in download loops. The new "Release Type" CF now prevents this undesired behavior. :bangbang: - This will upgrade your already downloaded single episodes :bangbang: @@ -1157,7 +1164,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/season-pack.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1181,7 +1188,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/x265-no-hdrdv.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1200,7 +1207,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/av1.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1219,7 +1226,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/vp9.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1236,7 +1243,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/internal.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1252,7 +1259,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/sdr.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1268,7 +1275,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/sdr-no-webdl.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1284,7 +1291,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/dv-disk.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1300,7 +1307,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/hfr.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1324,7 +1331,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/remux-tier-01.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1347,7 +1354,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/remux-tier-02.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) ### HD Bluray Tier 01 @@ -1365,7 +1372,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/hd-bluray-tier-01.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1384,7 +1391,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/hd-bluray-tier-02.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) ### WEB Tier 01 @@ -1403,7 +1410,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/web-tier-01.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1424,7 +1431,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/web-tier-02.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1445,7 +1452,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/web-tier-03.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1461,7 +1468,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/web-scene.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1487,7 +1494,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/amzn.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1505,7 +1512,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/atvp.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1523,7 +1530,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/cc.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1541,7 +1548,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/dcu.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1559,7 +1566,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/dsnp.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1577,7 +1584,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/hmax.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1595,7 +1602,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/hbo.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1613,7 +1620,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/hulu.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1631,7 +1638,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/it.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1649,7 +1656,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/max.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1667,7 +1674,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/nf.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1685,7 +1692,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/pmtp.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1703,7 +1710,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/pcok.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1721,7 +1728,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/sho.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1739,7 +1746,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/stan.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1761,7 +1768,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-canalplus.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1779,7 +1786,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-rtbf.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1797,7 +1804,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-salto.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1819,7 +1826,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/fod.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1837,7 +1844,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/htsr.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1855,7 +1862,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/tver.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1873,7 +1880,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/tving.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1891,7 +1898,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/u-next.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1909,7 +1916,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/viu.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1931,7 +1938,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/nlz.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1949,7 +1956,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/vdl.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1971,7 +1978,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/4od.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -1989,7 +1996,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/all4.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2007,7 +2014,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/ip.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2025,7 +2032,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/itvx.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2043,7 +2050,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/now.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2065,7 +2072,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/crav.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2083,7 +2090,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/dscp.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2101,7 +2108,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/ovid.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2119,7 +2126,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/strp.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2137,7 +2144,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/red.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2155,7 +2162,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/qibi.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2175,7 +2182,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/bglobal.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2191,7 +2198,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/bilibili.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2209,7 +2216,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/cr.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2227,7 +2234,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/funi.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2243,7 +2250,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/hidive.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2259,13 +2266,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/vrv.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- #### ABEMA ??? question "Abema - [Click to show/hide]" + {! include-markdown "../../includes/cf-descriptions/abema.md" !} ??? example "JSON - [Click to show/hide]" @@ -2274,7 +2282,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/abema.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2292,7 +2300,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-adn.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2310,7 +2318,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-wkn.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2330,7 +2338,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/uhd-streaming-boost.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2346,7 +2354,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/uhd-streaming-cut.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2357,6 +2365,7 @@ We've made 3 guides related to this. ### Anime BD Tier 01 (Top SeaDex Muxers) ??? question "Anime BD Tier 01 (Top SeaDex Muxers) - [Click to show/hide]" + Groups that do the best releases as per SeaDex. They are more consistent and trump others ??? example "JSON - [Click to show/hide]" @@ -2365,13 +2374,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/anime-bd-tier-01-top-seadex-muxers.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime BD Tier 02 (SeaDex Muxers) ??? question "Anime BD Tier 02 (SeaDex Muxers) - [Click to show/hide]" + Groups that do the best releases as per SeaDex. They are more consistent and trump others ??? example "JSON - [Click to show/hide]" @@ -2380,13 +2390,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/anime-bd-tier-02-seadex-muxers.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime BD Tier 03 (SeaDex Muxers) ??? question "Anime BD Tier 03 (SeaDex Muxers) - [Click to show/hide]" + Groups that do the best releases as per SeaDex. They are more consistent and trump others ??? example "JSON - [Click to show/hide]" @@ -2395,13 +2406,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/anime-bd-tier-03-seadex-muxers.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime BD Tier 04 (SeaDex Muxers) ??? question "Anime BD Tier 04 (SeaDex Muxers) - [Click to show/hide]" + Groups that do the best releases as per SeaDex. They are more consistent and trump others ??? example "JSON - [Click to show/hide]" @@ -2410,13 +2422,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/anime-bd-tier-04-seadex-muxers.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime BD Tier 05 (Remuxes) ??? question "Anime BD Tier 05 (Remuxes) - [Click to show/hide]" + Groups that are consistent and do Remuxes ??? example "JSON - [Click to show/hide]" @@ -2425,13 +2438,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/anime-bd-tier-05-remuxes.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime BD Tier 06 (FanSubs) ??? question "Anime BD Tier 06 (FanSubs) - [Click to show/hide]" + FanSub groups that are consistent ??? example "JSON - [Click to show/hide]" @@ -2440,13 +2454,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/anime-bd-tier-06-fansubs.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime BD Tier 07 (P2P/Scene) ??? question "Anime BD Tier 07 (P2P/Scene) - [Click to show/hide]" + Known P2P and Scene Anime groups ??? example "JSON - [Click to show/hide]" @@ -2455,13 +2470,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/anime-bd-tier-07-p2pscene.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime BD Tier 08 (Mini Encodes) ??? question "Anime BD Tier 08 (Mini Encodes) - [Click to show/hide]" + Know groups that do mini encodes ??? example "JSON - [Click to show/hide]" @@ -2470,13 +2486,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/anime-bd-tier-08-mini-encodes.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime Web Tier 01 (Muxers) ??? question "Anime Web Tier 01 (Muxers) - [Click to show/hide]" + Groups that do the best releases as per SeaDex. They are more consistent and trump others ??? example "JSON - [Click to show/hide]" @@ -2485,13 +2502,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/anime-web-tier-01-muxers.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime Web Tier 02 (Top FanSubs) ??? question "Anime Web Tier 02 (Top FanSubs) - [Click to show/hide]" + Groups that do the best releases as per SeaDex. They are more consistent and trump others ??? example "JSON - [Click to show/hide]" @@ -2500,13 +2518,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/anime-web-tier-02-top-fansubs.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime Web Tier 03 (Official Subs) ??? question "Anime Web Tier 03 (Official Subs) - [Click to show/hide]" + Official sub groups that tend to be more consistent and release fast ??? example "JSON - [Click to show/hide]" @@ -2515,13 +2534,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/anime-web-tier-03-official-subs.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime Web Tier 04 (Official Subs) ??? question "Anime Web Tier 04 (Official Subs) - [Click to show/hide]" + Official sub groups ??? example "JSON - [Click to show/hide]" @@ -2530,13 +2550,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/anime-web-tier-04-official-subs.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime Web Tier 05 (FanSubs) ??? question "Anime Web Tier 05 (FanSubs) - [Click to show/hide]" + FanSub groups that are consistent ??? example "JSON - [Click to show/hide]" @@ -2545,13 +2566,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/anime-web-tier-05-fansubs.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime Web Tier 06 (FanSubs) ??? question "Anime Web Tier 06 (FanSubs) - [Click to show/hide]" + FanSub groups that are consistent ??? example "JSON - [Click to show/hide]" @@ -2560,13 +2582,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/anime-web-tier-06-fansubs.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime Raws ??? question "Anime Raws - [Click to show/hide]" + A collection of know groups that release raws ??? example "JSON - [Click to show/hide]" @@ -2575,13 +2598,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/anime-raws.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime LQ Groups ??? question "Anime LQ Groups - [Click to show/hide]" + A collection of known Low Quality groups. ??? example "JSON - [Click to show/hide]" @@ -2590,13 +2614,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/anime-lq-groups.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Uncensored ??? question "Uncensored - [Click to show/hide]" + This CF covers releases that are uncensored ??? example "JSON - [Click to show/hide]" @@ -2605,13 +2630,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/uncensored.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### v0 ??? question "v0 - [Click to show/hide]" + CF to cover releases named with v0 which we don't want ??? example "JSON - [Click to show/hide]" @@ -2620,13 +2646,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/v0.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### v1 ??? question "v1 - [Click to show/hide]" + CF to cover v1 releases ??? example "JSON - [Click to show/hide]" @@ -2635,13 +2662,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/v1.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### v2 ??? question "v2 - [Click to show/hide]" + CF to cover v2 releases ??? example "JSON - [Click to show/hide]" @@ -2650,13 +2678,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/v2.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### v3 ??? question "v3 - [Click to show/hide]" + CF to cover v3 releases ??? example "JSON - [Click to show/hide]" @@ -2665,13 +2694,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/v3.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### v4 ??? question "v4 - [Click to show/hide]" + CF to cover v4 releases ??? example "JSON - [Click to show/hide]" @@ -2680,13 +2710,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/v4.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### 10bit ??? question "10bit - [Click to show/hide]" + This CF covers releases that are 10bit ??? example "JSON - [Click to show/hide]" @@ -2695,13 +2726,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/10bit.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Anime Dual Audio ??? question "Anime Dual Audio - [Click to show/hide]" + This CF covers releases that have Dual Audio ??? example "JSON - [Click to show/hide]" @@ -2710,13 +2742,14 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/anime-dual-audio.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- ### Dubs Only ??? question "Dubs Only - [Click to show/hide]" + This CF covers releases that only have Dubs ??? example "JSON - [Click to show/hide]" @@ -2725,7 +2758,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/dubs-only.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2745,7 +2778,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/multi-french.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2761,7 +2794,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/multi-audio.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2777,7 +2810,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-audio.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2793,7 +2826,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-vff.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2809,7 +2842,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-vof.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2825,7 +2858,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-vfi.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2841,7 +2874,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-vf2.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2857,7 +2890,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-vfq.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2873,7 +2906,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-voq.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2889,7 +2922,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-vq.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2905,7 +2938,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-vfb.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2921,7 +2954,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-vostfr.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2937,7 +2970,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/fansub.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2953,7 +2986,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/fastsub.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2975,7 +3008,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-remux-tier-01.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -2994,7 +3027,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-hd-bluray-tier-01.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -3012,7 +3045,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-web-tier-01.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -3030,7 +3063,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-web-tier-02.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -3048,7 +3081,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-web-tier-03.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -3066,7 +3099,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-anime-tier-01.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -3084,7 +3117,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-anime-tier-02.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -3103,7 +3136,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-anime-tier-03.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -3119,7 +3152,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-anime-fansub.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -3135,7 +3168,7 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-scene.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) --- @@ -3160,4 +3193,4 @@ We've made 3 guides related to this. [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/french-lq.json' %]][[% endfilter %]] ``` -[TOP](#index) +[TOP](#index) diff --git a/docs/Sonarr/sonarr-how-to-update-custom-formats.md b/docs/Sonarr/sonarr-how-to-update-custom-formats.md index 2c61ed434..3959fca45 100644 --- a/docs/Sonarr/sonarr-how-to-update-custom-formats.md +++ b/docs/Sonarr/sonarr-how-to-update-custom-formats.md @@ -6,7 +6,7 @@ Here I will try to explain how you can manually update Custom Formats for Sonarr ## How to Copy/Paste the JSON -The manual way is almost the same as the Import Custom Format way found [HERE](/Sonarr/sonarr-import-custom-formats/){:target="_blank" rel="noopener noreferrer"} +The manual way is almost the same as the Import Custom Format way found [HERE](/Sonarr/sonarr-import-custom-formats/){:target="\_blank" rel="noopener noreferrer"} ### In Sonarr @@ -20,7 +20,7 @@ The manual way is almost the same as the Import Custom Format way found [HERE](/ ### Paste the Custom Format -In the empty `Custom Format JSON` box (1) you just paste the `JSON` that you got from the [Custom Format Collection](/Sonarr/sonarr-collection-of-custom-formats/){:target="_blank" rel="noopener noreferrer"} or provided to you from other sources followed by the `Import` button (2). +In the empty `Custom Format JSON` box (1) you just paste the `JSON` that you got from the [Custom Format Collection](/Sonarr/sonarr-collection-of-custom-formats/){:target="\_blank" rel="noopener noreferrer"} or provided to you from other sources followed by the `Import` button (2). ![cf-import-cf](images/cf-import-cf.png) @@ -36,6 +36,6 @@ After selecting the `Import` button you will get a screen that has all the Custo This can be done also automatically with one of the TRaSH Sync Applications, -more info can be found [Here](/Guide-Sync/){:target="_blank" rel="noopener noreferrer"} +more info can be found [Here](/Guide-Sync/){:target="\_blank" rel="noopener noreferrer"} --8<-- "includes/support.md" diff --git a/docs/Sonarr/sonarr-import-custom-formats.md b/docs/Sonarr/sonarr-import-custom-formats.md index d25e40670..92711436f 100644 --- a/docs/Sonarr/sonarr-import-custom-formats.md +++ b/docs/Sonarr/sonarr-import-custom-formats.md @@ -6,9 +6,9 @@ Here I will try to explain how you can manually import Custom Formats for Sonarr ## How to Copy/Paste the JSON from the site -In this example I will use the [{{ sonarr['cf']['br-disk']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#br-disk){:target="_blank" rel="noopener noreferrer"} Custom Format, the one most people don't want to download anyway. And if you do, then you probably don't use any of the Starr apps or Plex, being both don't support it. +In this example I will use the [{{ sonarr['cf']['br-disk']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#br-disk){:target="\_blank" rel="noopener noreferrer"} Custom Format, the one most people don't want to download anyway. And if you do, then you probably don't use any of the Starr apps or Plex, being both don't support it. -Visit the [Collection of Custom Formats](/Sonarr/sonarr-collection-of-custom-formats/){:target="_blank" rel="noopener noreferrer"} and select [{{ sonarr['cf']['br-disk']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#br-disk){:target="_blank" rel="noopener noreferrer"} from the table. +Visit the [Collection of Custom Formats](/Sonarr/sonarr-collection-of-custom-formats/){:target="\_blank" rel="noopener noreferrer"} and select [{{ sonarr['cf']['br-disk']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#br-disk){:target="\_blank" rel="noopener noreferrer"} from the table. ![cf-table-select-brdisk](images/cf-table-select-brdisk.png) @@ -40,7 +40,7 @@ Followed by the `Import` in the lower left. ### Paste the Custom Format -Paste the `JSON` in the empty `Custom Format JSON` box (1) that you got from the [Custom Format Collection](/Sonarr/sonarr-collection-of-custom-formats/){:target="_blank" rel="noopener noreferrer"} followed by the `Import` button (2). +Paste the `JSON` in the empty `Custom Format JSON` box (1) that you got from the [Custom Format Collection](/Sonarr/sonarr-collection-of-custom-formats/){:target="\_blank" rel="noopener noreferrer"} followed by the `Import` button (2). ![cf-import-cf](images/cf-import-cf.png) @@ -54,9 +54,9 @@ all you need to do now is click on the `Save` button and you're done. ### Setup the scores in your Quality Profile After you've added the Custom Formats, You will need to set it up in the Quality Profile you want to use/prefer to make use of the Custom Formats. -How this is done is explained [HERE](/Sonarr/sonarr-setup-custom-formats/#basics){:target="_blank" rel="noopener noreferrer"} +How this is done is explained [HERE](/Sonarr/sonarr-setup-custom-formats/#basics){:target="\_blank" rel="noopener noreferrer"} ------- +--- ## Start adding other Custom Formats wisely @@ -70,6 +70,6 @@ How this is done is explained [HERE](/Sonarr/sonarr-setup-custom-formats/#basics This can be done also automatically with one of the TRaSH Sync Applications, -more info can be found [Here](/Guide-Sync/){:target="_blank" rel="noopener noreferrer"} +more info can be found [Here](/Guide-Sync/){:target="\_blank" rel="noopener noreferrer"} --8<-- "includes/support.md" diff --git a/docs/Sonarr/sonarr-setup-quality-profiles-anime.md b/docs/Sonarr/sonarr-setup-quality-profiles-anime.md index ae90f0a90..2a5757400 100644 --- a/docs/Sonarr/sonarr-setup-quality-profiles-anime.md +++ b/docs/Sonarr/sonarr-setup-quality-profiles-anime.md @@ -1,21 +1,24 @@ # How to setup Quality Profiles Anime -*aka How to setup Custom Formats (Anime)*

+_aka How to setup Custom Formats (Anime)_

!!! warning + You must be running Sonarr V4 to be able to use this setup. ![V4](https://img.shields.io/badge/dynamic/json?query=%24.version&url=https://raw.githubusercontent.com/hotio/sonarr/nightly/VERSION.json&label=Current%20V4%20Version&style=for-the-badge&color=4051B5){ .off-glb } !!! note + This guide is created and maintained by [FonduemangVI](https://github.com/FonduemangVI) and [rg9400](https://github.com/rg9400) It's recommended to run two Sonarr instances. One for Anime and one for normal TV shows, or you can make use of Quality Profiles and score different Custom Formats (CFs) as required. -The aim of this guide is to grab the best release overall (as per [SeaDex](https://releases.moe/){:target="_blank" rel="noopener noreferrer"}) and not necessarily just dual audio. -The vast majority of releases can be found on [Nyaa](https://nyaa.si/){:target="_blank" rel="noopener noreferrer"} or [AB](https://animebytes.tv/){:target="_blank" rel="noopener noreferrer"} +The aim of this guide is to grab the best release overall (as per [SeaDex](https://releases.moe/){:target="\_blank" rel="noopener noreferrer"}) and not necessarily just dual audio. +The vast majority of releases can be found on [Nyaa](https://nyaa.si/){:target="\_blank" rel="noopener noreferrer"} or [AB](https://animebytes.tv/){:target="\_blank" rel="noopener noreferrer"} !!! info "" + Nyaa is a public tracker while AB is an invite only tracker. --- @@ -27,6 +30,7 @@ The vast majority of releases can be found on [Nyaa](https://nyaa.si/){:target=" When adding a new series make sure you set the series type to Anime ??? success "example - [Click to show/hide]" + ![!cfa-seriestype](images/cfa-seriestype.png) ### Recommended naming scheme @@ -79,15 +83,15 @@ Result: ## Quality Settings -For quality settings please refer to [Sonarr Quality Definitions - Anime](/Sonarr/Sonarr-Quality-Settings-File-Size/#sonarr-quality-definitions-anime){:target="_blank" rel="noopener noreferrer"} +For quality settings please refer to [Sonarr Quality Definitions - Anime](/Sonarr/Sonarr-Quality-Settings-File-Size/#sonarr-quality-definitions-anime){:target="\_blank" rel="noopener noreferrer"} -If you are only running a single instance of Sonarr you can instead use [Sonarr Quality Definitions](/Sonarr/Sonarr-Quality-Settings-File-Size/#sonarr-quality-definitions){:target="_blank" rel="noopener noreferrer"} +If you are only running a single instance of Sonarr you can instead use [Sonarr Quality Definitions](/Sonarr/Sonarr-Quality-Settings-File-Size/#sonarr-quality-definitions){:target="\_blank" rel="noopener noreferrer"} --- ## Quality Profile -We need to create a new profile called `Remux-1080p - Anime` due to the way anime can be named we will need to merge a few qualities together see [here](/Sonarr/Tips/Merge-quality/){:target="_blank" rel="noopener noreferrer"} for an example. +We need to create a new profile called `Remux-1080p - Anime` due to the way anime can be named we will need to merge a few qualities together see [here](/Sonarr/Tips/Merge-quality/){:target="\_blank" rel="noopener noreferrer"} for an example. We need to add `Bluray-1080p Remux` and `Bluray-1080p` into a group together, `HDTV-1080p` into the same group as `WEBDL-1080p` and `WEBRip-1080p`, and lastly `HDTV-720p` into the same group as `WEBDL-720p` and `WEBRip-720p` so that the scoring will work correctly. @@ -106,15 +110,14 @@ We then need to select and organise the qualities like below. ## Anime CF/Scoring !!! note - We're going to make use of the below custom formats. See [How to import Custom Formats](/Sonarr/sonarr-import-custom-formats/){:target="_blank" rel="noopener noreferrer"} for how to import them. + + We're going to make use of the below custom formats. See [How to import Custom Formats](/Sonarr/sonarr-import-custom-formats/){:target="\_blank" rel="noopener noreferrer"} for how to import them. ### Default Scoring {! include-markdown "../../includes/cf/sonarr-anime.md" !} - {! include-markdown "../../includes/cf/sonarr-streaming-services-anime.md" !} - The scoring that has been set is the recommended scoring, however some of the CFs are optional depending on what you prefer. `Anime Dual Audio`, `Uncensored` and `10bit` can be given positive scores if you want to prefer content with these attributes. @@ -148,6 +151,7 @@ Below is an example of the scoring set to prefer `Dual Audio` over any tier. ### Uncensored Scoring !!! note + Most BDs are uncensored by default, so most groups do not include that in the name. If you prefer `Uncensored` releases you have a few options depending on your preference. diff --git a/docs/Sonarr/sonarr-setup-quality-profiles-french-en.md b/docs/Sonarr/sonarr-setup-quality-profiles-french-en.md index b5302472a..99cb8bf59 100644 --- a/docs/Sonarr/sonarr-setup-quality-profiles-french-en.md +++ b/docs/Sonarr/sonarr-setup-quality-profiles-french-en.md @@ -2,7 +2,7 @@ !!! note "This guide is created and maintained by [Someone said "Nice"?](https://github.com/NiceTSY)" -!!! tip "Cette page est aussi disponible en Français: [Guide en Français](/Sonarr/sonarr-setup-quality-profiles-french-fr/){:target="_blank" rel="noopener noreferrer"}." +!!! tip "Cette page est aussi disponible en Français: [Guide en Français](/Sonarr/sonarr-setup-quality-profiles-french-fr/){:target="\_blank" rel="noopener noreferrer"}." So what is the best way to set up the Custom Formats and which one to use with which scores to get French and English Audio? @@ -12,18 +12,18 @@ Regarding quality there isn't a best setup, it depends on your setup (hardware d Some prefer high quality audio (HD Audio), others high quality video. Many prefer both. -TRaSH created a [flowchart](/Sonarr/sonarr-setup-quality-profiles/#which-quality-profile-should-you-choose){:target="_blank" rel="noopener noreferrer"} to make your decision/choices easier. Remember that this chart does not include any of the following Custom Formats and you will still need to read this guide to get MULTi releases. +TRaSH created a [flowchart](/Sonarr/sonarr-setup-quality-profiles/#which-quality-profile-should-you-choose){:target="\_blank" rel="noopener noreferrer"} to make your decision/choices easier. Remember that this chart does not include any of the following Custom Formats and you will still need to read this guide to get MULTi releases. ------- +--- ## Basics It is quite important that you follow and understand what is envisioned by Trash's guide: -- Adding Custom Formats, as explained in [How to import Custom Formats](/Sonarr/sonarr-import-custom-formats/){:target="_blank" rel="noopener noreferrer"}. -- Setting up a quality Profile to make use of the Custom Formats, as explained in [How to setup Quality Profiles | Basics section](/Sonarr/sonarr-setup-quality-profiles/#basics){:target="_blank" rel="noopener noreferrer"}. +- Adding Custom Formats, as explained in [How to import Custom Formats](/Sonarr/sonarr-import-custom-formats/){:target="\_blank" rel="noopener noreferrer"}. +- Setting up a quality Profile to make use of the Custom Formats, as explained in [How to setup Quality Profiles | Basics section](/Sonarr/sonarr-setup-quality-profiles/#basics){:target="\_blank" rel="noopener noreferrer"}. ------- +--- ## I am only interested in French subs (VOSTFR) @@ -33,37 +33,38 @@ There is two options: !!! tip "This is the preferred method." -- Set up Sonarr using [How to setup Quality Profiles | Which Quality Profile should you choose](/Sonarr/sonarr-setup-quality-profiles/#which-quality-profile-should-you-choose){:target="_blank" rel="noopener noreferrer"}. -- Set up [Bazarr](/Bazarr/Setup-Guide){:target="_blank" rel="noopener noreferrer"}. It will do an amazing job for getting your subtitle on every shows. +- Set up Sonarr using [How to setup Quality Profiles | Which Quality Profile should you choose](/Sonarr/sonarr-setup-quality-profiles/#which-quality-profile-should-you-choose){:target="\_blank" rel="noopener noreferrer"}. +- Set up [Bazarr](/Bazarr/Setup-Guide){:target="\_blank" rel="noopener noreferrer"}. It will do an amazing job for getting your subtitle on every shows. - Enjoy your shows with subs. -- (Optional) Add the [{{ sonarr['cf']['french-vostfr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#vostfr){:target="_blank" rel="noopener noreferrer"} Custom Format with a score of `{{ sonarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}`. +- (Optional) Add the [{{ sonarr['cf']['french-vostfr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#vostfr){:target="\_blank" rel="noopener noreferrer"} Custom Format with a score of `{{ sonarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}`. ### Using the following examples and the VOSTFR Custom Format - Continue to read this page. - Ignore any mention of **MULTi Custom Formats**. -- Add the [{{ sonarr['cf']['french-vostfr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#vostfr){:target="_blank" rel="noopener noreferrer"} Custom Format with a score of `{{ sonarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}`. +- Add the [{{ sonarr['cf']['french-vostfr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#vostfr){:target="\_blank" rel="noopener noreferrer"} Custom Format with a score of `{{ sonarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}`. ------- +--- ## Usages -There is two ways of using those French Custom Formats, with and without the Guide's original Group tiers (which can be found there: [Collection of Custom Formats](/Sonarr/sonarr-collection-of-custom-formats/){:target="_blank" rel="noopener noreferrer"}). +There is two ways of using those French Custom Formats, with and without the Guide's original Group tiers (which can be found there: [Collection of Custom Formats](/Sonarr/sonarr-collection-of-custom-formats/){:target="\_blank" rel="noopener noreferrer"}). To illustrate this, you will see an **"Original mix (optional)"** section in each of the examples below. You need to understand that if you add the Custom Formats from this optional section if Sonarr do not find a MULTi you will still have a good scoring for single audio. !!! warning "Attention" + If you use the **"Original mix (optional)"**. You need to understand that even if in the beginning the main focus of those French Custom Formats is to work alongside the original ones. You could end up with a single audio release when a MULTi release exists. This is because it was not scored high enough to trump the other scoring. An example for Anime in MULTi/VOSTFR is also provided at the end: [Anime Example](#anime-example) ------- +--- ## Examples of Quality Profile --8<-- "includes/cf/score-attention.md" ------- +--- ### French Audio Versions @@ -73,11 +74,12 @@ Those are all optional and only there to rename your release or to prefer a cert - You only want VOSTFR, in this case you will ignore any mention of **MULTi Custom Formats** and give the [{{ sonarr['cf']['french-vostfr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#vostfr) Custom Format a score of `{{ sonarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}`. !!! warning "Attention" + It is not really recommended to put any of the VF Custom Formats (VFF, VFQ, VQ, VFB, VFI, VF2) to a negative score. Instead increase the score of your preferred audio. {! include-markdown "../../includes/french-guide/sonarr-french-audio-version-en.md" !} ------- +--- ### French Speaking Streaming Services @@ -85,13 +87,13 @@ Those are all optional and only there for information and does not have a score {! include-markdown "../../includes/french-guide/sonarr-french-streaming-services-en.md" !} ------- +--- ### TRaSH recommendations {! include-markdown "../../includes/cf/sonarr-suggest-attention.md" !} ------- +--- #### WEBDL-1080p @@ -124,7 +126,7 @@ Use the following main settings in your profile. - It will download WEB-DL 1080p. (If you also enabled `WEB 720p` and/or `HDTV 1080p` it will upgrade till `Upgrade Until`) - The downloaded media will be upgraded to any of the added Custom Formats until a score of 10000. ------- +--- #### WEBDL-2160p @@ -161,7 +163,7 @@ Use the following main settings in your profile. - It will upgrade to WEB-2160p when available. - The downloaded media will be upgraded to any of the added Custom Formats until a score of 10000. ------- +--- #### Anime Example @@ -177,21 +179,21 @@ If you are looking to grab Anime with either French sub or MULTi audio (original {! include-markdown "../../includes/french-guide/sonarr-cf-french-anime-scoring-en.md" !} ------- +--- ### HDR Formats TRaSH provides great guides and explanations about them at the following links: -- [HDR Formats](/Sonarr/sonarr-setup-quality-profiles/#hdr-formats){:target="_blank" rel="noopener noreferrer"} +- [HDR Formats](/Sonarr/sonarr-setup-quality-profiles/#hdr-formats){:target="\_blank" rel="noopener noreferrer"} ------- +--- ## FAQ & INFO -A FAQ regarding most of the questions you could have is provided by TRaSH: [FAQ & Info](/Sonarr/sonarr-setup-quality-profiles/#faq-info){:target="_blank" rel="noopener noreferrer"} +A FAQ regarding most of the questions you could have is provided by TRaSH: [FAQ & Info](/Sonarr/sonarr-setup-quality-profiles/#faq-info){:target="\_blank" rel="noopener noreferrer"} ------- +--- ## Acknowledgements diff --git a/docs/Sonarr/sonarr-setup-quality-profiles-french-fr.md b/docs/Sonarr/sonarr-setup-quality-profiles-french-fr.md index e166c52ec..4c20073be 100644 --- a/docs/Sonarr/sonarr-setup-quality-profiles-french-fr.md +++ b/docs/Sonarr/sonarr-setup-quality-profiles-french-fr.md @@ -10,18 +10,18 @@ Pour ce qui est de la qualité, il n'y a pas de recette miracle, cela dépend de Certains préfèrent une qualité audio élevée (HD Audio), d'autres une meilleure qualité vidéo. Nombreux sont ceux qui préfèrent les deux. -TRaSH a créé un [schéma](/Sonarr/sonarr-setup-custom-formats/#which-quality-profile-should-you-choose){:target="_blank" rel="noopener noreferrer"} pour faciliter votre décision/choix. Notez que ce graphique n'inclut aucun des Formats Personnalisés de ce guide et que vous devrez quand même le lire pour obtenir des releases en MULTi. +TRaSH a créé un [schéma](/Sonarr/sonarr-setup-custom-formats/#which-quality-profile-should-you-choose){:target="\_blank" rel="noopener noreferrer"} pour faciliter votre décision/choix. Notez que ce graphique n'inclut aucun des Formats Personnalisés de ce guide et que vous devrez quand même le lire pour obtenir des releases en MULTi. ------- +--- ## Notions de base -Il est impératif que vous respectiez et compreniez ce qui est proposé par le guide de TRaSH (*en anglais uniquement*) : +Il est impératif que vous respectiez et compreniez ce qui est proposé par le guide de TRaSH (_en anglais uniquement_) : -- L'ajout de Formats Personnalisés, comme expliqué dans [How to import Custom Formats](/Sonarr/sonarr-import-custom-formats/){:target="_blank" rel="noopener noreferrer"}. -- La configuration d'un profil de qualité pour utiliser les formats personnalisés, comme expliqué dans la section [How to setup Quality Profiles | Basics section](/Sonarr/sonarr-setup-quality-profiles/#basics){:target="_blank" rel="noopener noreferrer"}. +- L'ajout de Formats Personnalisés, comme expliqué dans [How to import Custom Formats](/Sonarr/sonarr-import-custom-formats/){:target="\_blank" rel="noopener noreferrer"}. +- La configuration d'un profil de qualité pour utiliser les formats personnalisés, comme expliqué dans la section [How to setup Quality Profiles | Basics section](/Sonarr/sonarr-setup-quality-profiles/#basics){:target="\_blank" rel="noopener noreferrer"}. ------- +--- ## Je ne suis intéressé que par des films sous-titrés en français (VOSTFR) @@ -31,36 +31,37 @@ Deux options s'offre à vous : !!! tip "Il s'agit de la méthode à privilégier." -- Configurez Radarr en utilisant : [How to setup Quality Profiles | Which Quality Profile should you choose](/Sonarr/sonarr-setup-quality-profiles/#which-quality-profile-should-you-choose){:target="_blank" rel="noopener noreferrer"}. (*en anglais*). -- Configurez [Bazarr](../Bazarr/Setup-Guide.md) (*en anglais*). Il permet d'obtenir des sous-titres pour tous les films. +- Configurez Radarr en utilisant : [How to setup Quality Profiles | Which Quality Profile should you choose](/Sonarr/sonarr-setup-quality-profiles/#which-quality-profile-should-you-choose){:target="\_blank" rel="noopener noreferrer"}. (_en anglais_). +- Configurez [Bazarr](../Bazarr/Setup-Guide.md) (_en anglais_). Il permet d'obtenir des sous-titres pour tous les films. - Profitez de vos films avec les sous-titres. -- (Facultatif) Ajoutez le Format Personnalisé [{{ sonarr['cf']['french-vostfr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#vostfr){:target="_blank" rel="noopener noreferrer"} avec un score de `{{ sonarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}`. +- (Facultatif) Ajoutez le Format Personnalisé [{{ sonarr['cf']['french-vostfr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#vostfr){:target="\_blank" rel="noopener noreferrer"} avec un score de `{{ sonarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}`. ### En utilisant les exemples suivants et le Format Personnalisé VOSTFR - Continuez sur cette page. - Ignorez toute mention des **Formats Personnalisés MULTi**. -- Ajoutez le Format Personnalisé [{{ sonarr['cf']['french-vostfr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#vostfr){:target="_blank" rel="noopener noreferrer"} avec un score de `{{ sonarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}`. +- Ajoutez le Format Personnalisé [{{ sonarr['cf']['french-vostfr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#vostfr){:target="\_blank" rel="noopener noreferrer"} avec un score de `{{ sonarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}`. ------- +--- ## Usages -Il y a deux façons d'aborder les exemples ci-dessous. En utilisant ou non les Formats Personnalisés de Groupes P2P du Guide original (qui peuvent être trouvés ici : [Collection of Custom Formats](/Sonarr/sonarr-collection-of-custom-formats/){:target="_blank" rel="noopener noreferrer"}). +Il y a deux façons d'aborder les exemples ci-dessous. En utilisant ou non les Formats Personnalisés de Groupes P2P du Guide original (qui peuvent être trouvés ici : [Collection of Custom Formats](/Sonarr/sonarr-collection-of-custom-formats/){:target="\_blank" rel="noopener noreferrer"}). Afin d'illustrer ce principe, vous verrez une section **"Mix original (optionnel)"** dans chacun des exemples ci-dessous. Vous devez comprendre que si vous ajoutez les Formats Personnalisés de cette section optionnelle, si Radarr ne trouve pas de MULTi, vous aurez toujours un bon score pour l'audio anglais. !!! warning "Attention" + Si vous utilisez le **"Mix original (optionnel)"**. Vous devez comprendre que même si l'objectif principal de ces Formats Personnalisés est de travailler en parallèle avec les formats du guide original. Vous pouvez vous retrouver avec un seul audio alors qu'il existe une version MULTi. La raison est que la release n'a pas été notée assez haut pour l'emporter sur les autres scores. Un exemple pour les Animes en MULTi/VOSTFR est également fourni à la fin : [Exemple pour les Animes](#exemple-pour-les-animes) ------- +--- ## Exemples de Profil --8<-- "includes/cf/score-attention.md" ------- +--- ### Type de versions françaises @@ -70,11 +71,12 @@ Ces Formats sont optionnels et ne sont là que pour renommer votre fichier ou po - Vous souhaitez seulement du VOSTFR, dans ce ce cas, ignorez toute mention des **Formats Personnalisés MULTi** et donnez un score de `{{ sonarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}` au Format Personnalisé [{{ sonarr['cf']['french-vostfr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#vostfr). !!! warning "Attention" + Il n'est pas vraiment recommandé d'attribuer un score négatif à l'un des Formats Personnalisés de VF (VFF, VFQ, VQ, VFB, VFI, VF2). Augmentez plutôt le score de votre format audio préféré. {! include-markdown "../../includes/french-guide/sonarr-french-audio-version-fr.md" !} ------- +--- ### Services de streaming francophones @@ -82,13 +84,13 @@ Tous ces éléments sont facultatifs et ne sont là qu'à titre d'information et {! include-markdown "../../includes/french-guide/sonarr-french-streaming-services-fr.md" !} ------- +--- -### TRaSH recommandations (*en anglais*) +### TRaSH recommandations (_en anglais_) {! include-markdown "../../includes/cf/sonarr-suggest-attention.md" !} ------- +--- #### WEBDL-1080p @@ -123,7 +125,7 @@ Utilisez les paramètres principaux suivants dans votre profil. - Il téléchargera le WEB-DL 1080p (si vous avez également activé `WEB 720p` et/ou `HDTV 1080p`, la mise à niveau se fera jusqu'au WEB-DL 1080p). - Le média sera mis à niveau en fonction des formats personnalisés ajoutés jusqu'à l'obtention d'un score de `10000`. ------- +--- #### WEBDL-2160p @@ -162,7 +164,7 @@ Utilisez les paramètres principaux suivants dans votre profil. - Il sera mis à niveau vers le WEB-2160p lorsqu'il sera disponible. - Le média sera mis à niveau en fonction des formats personnalisés ajoutés jusqu'à l'obtention d'un score de `10000`. ------- +--- #### Exemple pour les Animes @@ -178,21 +180,21 @@ Si vous cherchez des animes avec des sous-titres français ou en MULTi (audio or {! include-markdown "../../includes/french-guide/sonarr-cf-french-anime-scoring-fr.md" !} ------- +--- ### Formats HDR -TRaSH fournit d'excellents guides et explications à leur sujet dans les liens suivants (*en anglais uniquement*) : +TRaSH fournit d'excellents guides et explications à leur sujet dans les liens suivants (_en anglais uniquement_) : -- [HDR Formats](/Sonarr/sonarr-setup-quality-profiles/#hdr-formats){:target="_blank" rel="noopener noreferrer"} +- [HDR Formats](/Sonarr/sonarr-setup-quality-profiles/#hdr-formats){:target="\_blank" rel="noopener noreferrer"} ------- +--- ## FAQ & INFO -Une FAQ répondant à la plupart des questions que vous pourriez vous poser est fournie par TRaSH (*en anglais uniquement*) : [FAQ & Info](/Sonarr/sonarr-setup-quality-profiles/#faq-info){:target="_blank" rel="noopener noreferrer"} +Une FAQ répondant à la plupart des questions que vous pourriez vous poser est fournie par TRaSH (_en anglais uniquement_) : [FAQ & Info](/Sonarr/sonarr-setup-quality-profiles/#faq-info){:target="\_blank" rel="noopener noreferrer"} ------- +--- ## Remerciements diff --git a/docs/Sonarr/sonarr-setup-quality-profiles.md b/docs/Sonarr/sonarr-setup-quality-profiles.md index 4151e3781..eaf18be5b 100644 --- a/docs/Sonarr/sonarr-setup-quality-profiles.md +++ b/docs/Sonarr/sonarr-setup-quality-profiles.md @@ -1,6 +1,6 @@ # How to set up Quality Profiles -*aka How to set up Custom Formats*

+_aka How to set up Custom Formats_

So what's the best way to set up the Custom Formats and which ones to use with which scores to set up your quality profiles? There isn't a "best" setup, it depends on your media setup (hardware devices) and your personal preferences. @@ -12,11 +12,11 @@ Here we will try to explain how to make the most of Custom Formats to help you s - We've created a [flowchart](#which-quality-profile-should-you-choose) to make your decisions/choices easier. - We've also created an Excel sheet with several tested [media player devices](/Plex/what-does-my-media-player-support){:target="_blank" rel="noopener noreferrer"} to display what formats and capabilities they support, sourced from information provided by our community. We hope this Excel sheet will be a helpful resource for those looking for a reliable media player device and will help you choose the appropriate quality profile. ------- +--- ## Basics -After you've added the Custom Formats, as explained in [How to import Custom Formats](/Sonarr/sonarr-import-custom-formats/){:target="_blank" rel="noopener noreferrer"}. +After you've added the Custom Formats, as explained in [How to import Custom Formats](/Sonarr/sonarr-import-custom-formats/){:target="\_blank" rel="noopener noreferrer"}. You will need to set it up in the quality Profile you want to use/prefer to make use of the Custom Formats. `Settings` => `Profiles` @@ -24,6 +24,7 @@ You will need to set it up in the quality Profile you want to use/prefer to make ![!cf-settings-profiles](images/cf-settings-profiles.png) !!! info "Sonarr Custom Formats can be set per profile and isn't global" + Select the profile that you want to use/prefer. ![!cf-quality-profiles](images/cf-quality-profiles.png) @@ -39,9 +40,11 @@ Select the profile that you want to use/prefer. At the bottom, in your chosen profile, you will see the added Custom Formats where you can start setting up the scores. ??? success "Screenshot example - [Click to show/hide]" + ![!cf-quality-profile-cf](images/cf-quality-profile-cf.png) !!! warning + These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't always a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add. - Always follow the data described in the guide. @@ -57,11 +60,11 @@ At the bottom, in your chosen profile, you will see the added Custom Formats whe - Custom formats that match with undesirable attributes should be given a negative score to lower their appeal. - Outright rejections should be given a negative score low enough that even if all of the other formats with positive scores were added, the score would still fall below the minimum. ------- +--- {! include-markdown "../../includes/merge-quality/sonarrv4-current-logic.md" !} ------- +--- ## Which Quality Profile should you choose @@ -73,7 +76,7 @@ At the bottom, in your chosen profile, you will see the added Custom Formats whe [![Discord chat](https://img.shields.io/discord/492590071455940612?style=for-the-badge&color=4051B5&logo=discord){ .off-glb }](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"} ------- +--- ## TRaSH Quality Profiles @@ -116,7 +119,7 @@ Use the following main settings in your profile. Because I'm too lazy to calculate the maximum for every Quality Profile I use, and I want it to upgrade to the highest possible score anyway. ------- +--- ### WEB-2160p @@ -157,7 +160,7 @@ Use the following main settings in your profile. Because I'm too lazy to calculate the maximum for every Quality Profile I use, and I want it to upgrade to the highest possible score anyway. ------- +--- ## Custom Format Groups @@ -169,7 +172,7 @@ The following custom format groups should be combined with the Quality Profiles {! include-markdown "../../includes/cf/sonarr-all-hdr-formats.md" !} ------- +--- ## FAQ & INFO diff --git a/docs/index.md b/docs/index.md index affcc92b5..4a0113faa 100644 --- a/docs/index.md +++ b/docs/index.md @@ -4,13 +4,13 @@ # TRaSH-Guides -[![Discord chat](https://img.shields.io/discord/492590071455940612?style=flat-square&color=4051B5&logo=discord){ .off-glb }](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"} -[![GitHub last commit](https://img.shields.io/github/last-commit/TRaSH-Guides/Guides?color=4051B5&label=Last%20Update&style=flat-square){ .off-glb }](https://github.com/TRaSH-Guides/Guides/commits/master){:target="_blank" rel="noopener noreferrer"} -[![GitHub contributors](https://img.shields.io/github/contributors/TRaSH-Guides/Guides?color=4051B5&style=flat-square){ .off-glb }](https://github.com/TRaSH-Guides/Guides/graphs/contributors){:target="_blank" rel="noopener noreferrer"} -[![GitHub pull requests](https://img.shields.io/github/issues-pr/TRaSH-Guides/Guides?color=4051B5&style=flat-square){ .off-glb }](https://github.com/TRaSH-Guides/Guides/pulls){:target="_blank" rel="noopener noreferrer"} -[![GitHub issues](https://img.shields.io/github/issues/TRaSH-Guides/Guides?color=4051B5&style=flat-square){ .off-glb }](https://github.com/TRaSH-Guides/Guides/issues){:target="_blank" rel="noopener noreferrer"} +[![Discord chat](https://img.shields.io/discord/492590071455940612?style=flat-square&color=4051B5&logo=discord){ .off-glb }](https://trash-guides.info/discord){:target="\_blank" rel="noopener noreferrer"} +[![GitHub last commit](https://img.shields.io/github/last-commit/TRaSH-Guides/Guides?color=4051B5&label=Last%20Update&style=flat-square){ .off-glb }](https://github.com/TRaSH-Guides/Guides/commits/master){:target="\_blank" rel="noopener noreferrer"} +[![GitHub contributors](https://img.shields.io/github/contributors/TRaSH-Guides/Guides?color=4051B5&style=flat-square){ .off-glb }](https://github.com/TRaSH-Guides/Guides/graphs/contributors){:target="\_blank" rel="noopener noreferrer"} +[![GitHub pull requests](https://img.shields.io/github/issues-pr/TRaSH-Guides/Guides?color=4051B5&style=flat-square){ .off-glb }](https://github.com/TRaSH-Guides/Guides/pulls){:target="\_blank" rel="noopener noreferrer"} +[![GitHub issues](https://img.shields.io/github/issues/TRaSH-Guides/Guides?color=4051B5&style=flat-square){ .off-glb }](https://github.com/TRaSH-Guides/Guides/issues){:target="\_blank" rel="noopener noreferrer"} -*TRaSH Guides, Guides that aren't trash.* +_TRaSH Guides, Guides that aren't trash._ Here you will find guides mainly for Sonarr/Radarr/Bazarr and everything related to it. @@ -18,16 +18,16 @@ Here you will find guides mainly for Sonarr/Radarr/Bazarr and everything related When I started using Sonarr/Radarr, I noticed that it didn't grab the releases that I actually wanted (I'm a bit picky about which releases and what quality I prefer). I decided to fine-tune my quality profile settings to try and get the releases and qualities I preferred. While on Discord, I noticed that others ran into the same issue, so I explained how I managed to solve this. Once I started having to explain more often, I decided to write it down and make it public so I could easily link to it when needed. -After a while I *also* decided to create guides for frequently asked questions and started to collect all kinds of information gathered from various sources. +After a while I _also_ decided to create guides for frequently asked questions and started to collect all kinds of information gathered from various sources. I try to make my guides as easy as possible for everyone to understand and, in my opinion, pictures often explain more than just some text. --- ## Support -[![Discord chat](https://img.shields.io/discord/492590071455940612?style=for-the-badge&color=4051B5&logo=discord){ .off-glb }](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"} +[![Discord chat](https://img.shields.io/discord/492590071455940612?style=for-the-badge&color=4051B5&logo=discord){ .off-glb }](https://trash-guides.info/discord){:target="\_blank" rel="noopener noreferrer"} -If you have questions, suggestions, or requests, or want to contribute, click the chat badge to join the Discord Channel. There you can ask your questions directly, or you can use the following [link](https://github.com/TRaSH-Guides/Guides/issues){:target="_blank" rel="noopener noreferrer"} to open an issue on GitHub. +If you have questions, suggestions, or requests, or want to contribute, click the chat badge to join the Discord Channel. There you can ask your questions directly, or you can use the following [link](https://github.com/TRaSH-Guides/Guides/issues){:target="\_blank" rel="noopener noreferrer"} to open an issue on GitHub. Feel free to create a PR if you want to. --- @@ -43,7 +43,7 @@ All of the information provided in these guides, as well as in Discord or any gu ### Special Thanks -- [iXNyNe aka nemchik](https://github.com/nemchik){:target="_blank" rel="noopener noreferrer"} for introducing me to the world of docker containers with DockSTARTer, and for helping me learn the basics of it. -- [Roxedus](https://github.com/Roxedus){:target="_blank" rel="noopener noreferrer"} for helping me with the transfer/conversion of my Github guides to MkDocs and making everything look great. -- [rg9400](https://github.com/rg9400){:target="_blank" rel="noopener noreferrer"} for providing most of the Radarr v3 Custom Format Collection. +- [iXNyNe aka nemchik](https://github.com/nemchik){:target="\_blank" rel="noopener noreferrer"} for introducing me to the world of docker containers with DockSTARTer, and for helping me learn the basics of it. +- [Roxedus](https://github.com/Roxedus){:target="\_blank" rel="noopener noreferrer"} for helping me with the transfer/conversion of my Github guides to MkDocs and making everything look great. +- [rg9400](https://github.com/rg9400){:target="\_blank" rel="noopener noreferrer"} for providing most of the Radarr v3 Custom Format Collection. - Everyone who contributed to this project in any way possible. diff --git a/docs/json/radarr/cf/10-mono.json b/docs/json/radarr/cf/10-mono.json index 2ceb864ce..e29c1d2bf 100644 --- a/docs/json/radarr/cf/10-mono.json +++ b/docs/json/radarr/cf/10-mono.json @@ -2,41 +2,42 @@ "trash_id": "b124be9b146540f8e62f98fe32e49a2a", "name": "1.0 Mono", "includeCustomFormatWhenRenaming": false, - "specifications": [{ - "name": "Mono", - "implementation": "ReleaseTitleSpecification", - "negate": false, - "required": true, - "fields": { - "value": "[^0-9]1[ .]0\\b|\\bMono\\b|\\[PCM \\]" - } - }, - { - "name": "Not 3.0ch", - "implementation": "ReleaseTitleSpecification", - "negate": true, - "required": true, - "fields": { - "value": "[^0-9]3[ .]0\\b" - } - }, - { - "name": "Not 4.0ch", - "implementation": "ReleaseTitleSpecification", - "negate": true, - "required": true, - "fields": { - "value": "[^0-9]4[ .]0\\b" - } - }, - { - "name": "Not High Channel Count", - "implementation": "ReleaseTitleSpecification", - "negate": true, - "required": true, - "fields": { - "value": "[^0-9][5-9][ .][0-1]\\b" - } + "specifications": [ + { + "name": "Mono", + "implementation": "ReleaseTitleSpecification", + "negate": false, + "required": true, + "fields": { + "value": "[^0-9]1[ .]0\\b|\\bMono\\b|\\[PCM \\]" } + }, + { + "name": "Not 3.0ch", + "implementation": "ReleaseTitleSpecification", + "negate": true, + "required": true, + "fields": { + "value": "[^0-9]3[ .]0\\b" + } + }, + { + "name": "Not 4.0ch", + "implementation": "ReleaseTitleSpecification", + "negate": true, + "required": true, + "fields": { + "value": "[^0-9]4[ .]0\\b" + } + }, + { + "name": "Not High Channel Count", + "implementation": "ReleaseTitleSpecification", + "negate": true, + "required": true, + "fields": { + "value": "[^0-9][5-9][ .][0-1]\\b" + } + } ] } diff --git a/docs/json/radarr/cf/20-stereo.json b/docs/json/radarr/cf/20-stereo.json index 6d39612cd..8bf40032a 100644 --- a/docs/json/radarr/cf/20-stereo.json +++ b/docs/json/radarr/cf/20-stereo.json @@ -2,50 +2,51 @@ "trash_id": "89dac1be53d5268a7e10a19d3c896826", "name": "2.0 Stereo", "includeCustomFormatWhenRenaming": false, - "specifications": [{ - "name": "Stereo", - "implementation": "ReleaseTitleSpecification", - "negate": false, - "required": true, - "fields": { - "value": "(?'); - -webkit-mask-image: url('data:image/svg+xml;utf8,'); + width: calc(var(--permalink-size) + var(--permalink-spacing)); + height: var(--permalink-size); + vertical-align: middle; + background-color: var(--md-default-fg-color--lighter); + background-size: var(--permalink-size); + mask-size: var(--permalink-size); + -webkit-mask-size: var(--permalink-size); + mask-repeat: no-repeat; + -webkit-mask-repeat: no-repeat; + visibility: visible; + mask-image: url('data:image/svg+xml;utf8,'); + -webkit-mask-image: url('data:image/svg+xml;utf8,'); } [id]:target .headerlink { - background-color: var(--md-typeset-a-color); + background-color: var(--md-typeset-a-color); } .headerlink:hover { - background-color: var(--md-accent-fg-color) !important; + background-color: var(--md-accent-fg-color) !important; } @media screen and (min-width: 76.25em) { - h1, h2, h3, h4, h5, h6 { - display: flex; - align-items: center; - flex-direction: row; - } + h1, + h2, + h3, + h4, + h5, + h6 { + display: flex; + align-items: center; + flex-direction: row; + } - .headerlink { - order: -1; - margin-left: calc(var(--permalink-size) * -1 - var(--permalink-spacing)) !important; - } -} \ No newline at end of file + .headerlink { + order: -1; + margin-left: calc( + var(--permalink-size) * -1 - var(--permalink-spacing) + ) !important; + } +} diff --git a/includes/cf-descriptions/4od.md b/includes/cf-descriptions/4od.md index 8c151e812..835944eb4 100644 --- a/includes/cf-descriptions/4od.md +++ b/includes/cf-descriptions/4od.md @@ -1,5 +1,5 @@ **4OD**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Channel_4_(VoD_service)){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](){:target="\_blank" rel="noopener noreferrer"} 4OD is a previous name for the UK's Channel4 VOD service. Releases are usually identified with either 'ALL4' or '4OD', not 'Channel4'. diff --git a/includes/cf-descriptions/aac.md b/includes/cf-descriptions/aac.md index db73bf949..0cf5222af 100644 --- a/includes/cf-descriptions/aac.md +++ b/includes/cf-descriptions/aac.md @@ -1,4 +1,4 @@ **AAC**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Advanced_Audio_Coding){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Advanced_Audio_Coding){:target="\_blank" rel="noopener noreferrer"} Advanced Audio Coding (AAC) is an audio coding standard for lossy digital audio compression. Designed to be the successor of the MP3 format, AAC generally achieves higher sound quality than MP3 at the same bit rate. diff --git a/includes/cf-descriptions/abema.md b/includes/cf-descriptions/abema.md index 1fd5241ad..2f9764162 100644 --- a/includes/cf-descriptions/abema.md +++ b/includes/cf-descriptions/abema.md @@ -1,3 +1,3 @@ **Abema**
-[From Wikipedia, the free encyclopedia](https://www.wikiwand.com/en/Abema){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://www.wikiwand.com/en/Abema){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf-descriptions/all4.md b/includes/cf-descriptions/all4.md index da50461f3..47770ed2e 100644 --- a/includes/cf-descriptions/all4.md +++ b/includes/cf-descriptions/all4.md @@ -1,5 +1,5 @@ **ALL4**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Channel_4_(VoD_service)){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](){:target="\_blank" rel="noopener noreferrer"} ALL4 is a previous name for the UK's Channel4 VOD service. Releases are usually identified with either 'ALL4' or '4OD', not 'Channel4'. diff --git a/includes/cf-descriptions/amzn.md b/includes/cf-descriptions/amzn.md index 26080d80a..e38c09ef9 100644 --- a/includes/cf-descriptions/amzn.md +++ b/includes/cf-descriptions/amzn.md @@ -1,5 +1,5 @@ **Amazon Prime Video**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Amazon_Prime_Video){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Amazon_Prime_Video){:target="\_blank" rel="noopener noreferrer"} Amazon Prime Video, or simply Prime Video, is an American subscription video on-demand over-the-top streaming and rental service of Amazon offered as a standalone service or as part of Amazon's Prime subscription. The service primarily distributes films and television series produced by Amazon MGM Studios or licensed to Amazon, as Amazon Originals, with the service also hosting content from other providers, content add-ons, live sporting events, and video rental and purchasing services. diff --git a/includes/cf-descriptions/atmos-undefined.md b/includes/cf-descriptions/atmos-undefined.md index 7d37c3363..b8d699d40 100644 --- a/includes/cf-descriptions/atmos-undefined.md +++ b/includes/cf-descriptions/atmos-undefined.md @@ -3,4 +3,5 @@ This custom format covers cases where _ONLY_ "Atmos" is specified in the release title, without noting DD+ (Lossy) or TrueHD (Lossless). !!! note + Apply the same score as Lossy (DD+) Atmos. On import, it will be updated to reflect either lossy or lossless based on the media's info using ffprobe. diff --git a/includes/cf-descriptions/atvp.md b/includes/cf-descriptions/atvp.md index f606de6fb..f35061c19 100644 --- a/includes/cf-descriptions/atvp.md +++ b/includes/cf-descriptions/atvp.md @@ -1,5 +1,5 @@ **Apple TV+**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Apple_TV%2B){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Apple_TV%2B){:target="\_blank" rel="noopener noreferrer"} Apple TV+ is an American subscription streaming service owned and operated by Apple Inc. Launched on November 1, 2019, it offers a selection of original production film and television series called Apple Originals. diff --git a/includes/cf-descriptions/bcore.md b/includes/cf-descriptions/bcore.md index 176362c27..80e46eef8 100644 --- a/includes/cf-descriptions/bcore.md +++ b/includes/cf-descriptions/bcore.md @@ -1,7 +1,7 @@ **Bravia Core aka Sony Pictures Core**
-[From Sony](https://electronics.sony.com/bravia-core){:target="_blank" rel="noopener noreferrer"} -[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Sony_Pictures_Core){:target="_blank" rel="noopener noreferrer"} +[From Sony](https://electronics.sony.com/bravia-core){:target="\_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Sony_Pictures_Core){:target="\_blank" rel="noopener noreferrer"} Sony Pictures Core (formerly known as Bravia Core) is a video on demand service from Sony for its televisions and smartphones, launched in April 2021. The service offers the streaming of movies at up to 4K resolution provided by Sony Pictures Entertainment. CORE stands for Centre of Real Entertainment. Sony claims that Bravia Core has one of the largest libraries of IMAX Enhanced format film content. Streaming, which is marketed as Pure Stream, is claimed to be at speeds of up to 80 Mbit/s. diff --git a/includes/cf-descriptions/bglobal.md b/includes/cf-descriptions/bglobal.md index 74bb41a68..a8b100f2e 100644 --- a/includes/cf-descriptions/bglobal.md +++ b/includes/cf-descriptions/bglobal.md @@ -1,3 +1,3 @@ **B-Global**
-[From Wikipedia, the free encyclopedia](https://www.wikiwand.com/en/Bilibili){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://www.wikiwand.com/en/Bilibili){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf-descriptions/bilibili.md b/includes/cf-descriptions/bilibili.md index 71450300b..68b25f689 100644 --- a/includes/cf-descriptions/bilibili.md +++ b/includes/cf-descriptions/bilibili.md @@ -1,3 +1,3 @@ **Bilibili**
-[From Wikipedia, the free encyclopedia](https://www.wikiwand.com/en/Bilibili){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://www.wikiwand.com/en/Bilibili){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf-descriptions/cc.md b/includes/cf-descriptions/cc.md index 636cd123b..84a0f50a5 100644 --- a/includes/cf-descriptions/cc.md +++ b/includes/cf-descriptions/cc.md @@ -1,3 +1,3 @@ **Comedy Central**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Comedy_Central){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Comedy_Central){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf-descriptions/cr.md b/includes/cf-descriptions/cr.md index 4808fe2da..640a424be 100644 --- a/includes/cf-descriptions/cr.md +++ b/includes/cf-descriptions/cr.md @@ -1,3 +1,3 @@ **Crunchyroll**
-[From Wikipedia, the free encyclopedia](https://www.wikiwand.com/en/Crunchyroll){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://www.wikiwand.com/en/Crunchyroll){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf-descriptions/crav.md b/includes/cf-descriptions/crav.md index eab222c19..4e4a65e16 100644 --- a/includes/cf-descriptions/crav.md +++ b/includes/cf-descriptions/crav.md @@ -1,6 +1,6 @@ **CRAVE**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Crave_(streaming_service)){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](){:target="\_blank" rel="noopener noreferrer"} Crave (originally CraveTV) is a Canadian subscription video on demand service. The service competes directly with other subscription-based over-the-top streaming services operating in Canada, primarily against American-based services. The service features Bell Media original programming, exclusive Canadian access to programming acquired from several U.S. television and streaming services, and various theatrically-released films. Crave's major programming supplier is Warner Bros. Discovery (HBO / Max and Warner Bros. films). Starz, offered in partnership with Lionsgate. diff --git a/includes/cf-descriptions/crit.md b/includes/cf-descriptions/crit.md index e310bf61a..e47ec9e07 100644 --- a/includes/cf-descriptions/crit.md +++ b/includes/cf-descriptions/crit.md @@ -1,3 +1,3 @@ **Criterion Channel**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/The_Criterion_Collection#Streaming_as_The_Criterion_Channel){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/The_Criterion_Collection#Streaming_as_The_Criterion_Channel){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf-descriptions/dcu.md b/includes/cf-descriptions/dcu.md index 6caca08b6..66b6dfced 100644 --- a/includes/cf-descriptions/dcu.md +++ b/includes/cf-descriptions/dcu.md @@ -1,6 +1,6 @@ **DC Universe (streaming service)**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/DC_Universe_(streaming_service)){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](){:target="\_blank" rel="noopener noreferrer"} DC Universe was an American subscription video-on-demand (SVOD) and digital comics service operated by DC Entertainment and Warner Bros. Digital Networks, both divisions of WarnerMedia. Launched on September 15, 2018, the service featured a streaming library of animated series and films based on DC Comics properties, new original television series adapted from DC properties, as well as a rotating back catalogue of DC Comics publications, and online community features. In 2020. diff --git a/includes/cf-descriptions/dd.md b/includes/cf-descriptions/dd.md index c17791892..5ea3f28a8 100644 --- a/includes/cf-descriptions/dd.md +++ b/includes/cf-descriptions/dd.md @@ -1,5 +1,5 @@ **DD aka AC3**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Dolby_Digital){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Dolby_Digital){:target="\_blank" rel="noopener noreferrer"} Dolby Digital, also known as Dolby AC-3, is a lossy audio compression format. diff --git a/includes/cf-descriptions/ddplus.md b/includes/cf-descriptions/ddplus.md index b9ef706b9..12506b88e 100644 --- a/includes/cf-descriptions/ddplus.md +++ b/includes/cf-descriptions/ddplus.md @@ -1,5 +1,5 @@ **DD+ aka E-AC3**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Dolby_Digital_Plus){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Dolby_Digital_Plus){:target="\_blank" rel="noopener noreferrer"} Dolby Digital Plus, also known as Enhanced AC-3 (commonly abbreviated as DD+ or E-AC-3, or EC-3), is the successor to Dolby Digital (AC-3). It is a digital audio compression scheme developed by Dolby Labs for the transport and storage of multi-channel digital audio. diff --git a/includes/cf-descriptions/dscp.md b/includes/cf-descriptions/dscp.md index d4804f669..f8d5922b2 100644 --- a/includes/cf-descriptions/dscp.md +++ b/includes/cf-descriptions/dscp.md @@ -1,5 +1,5 @@ **Discovery+**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Discovery%2B){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Discovery%2B){:target="\_blank" rel="noopener noreferrer"} Discovery+ (pronounced "Discovery Plus"; stylized as discovery+) is an American subscription video on-demand over-the-top streaming service owned by Warner Bros. Discovery (WBD). The service focuses on factual programming drawn from the libraries of Discovery's main channel brands, as well as original series (including spin-offs of programs from Discovery's television networks), and other acquired content. diff --git a/includes/cf-descriptions/dsnp.md b/includes/cf-descriptions/dsnp.md index 6bda09267..586355797 100644 --- a/includes/cf-descriptions/dsnp.md +++ b/includes/cf-descriptions/dsnp.md @@ -1,5 +1,5 @@ **Disney+**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Disney%2B){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Disney%2B){:target="\_blank" rel="noopener noreferrer"} Disney+ is an American subscription video on-demand over-the-top streaming media service owned and operated by Disney Streaming, the streaming division of Disney Entertainment, a major business segment of the Walt Disney Company.The service primarily distributes films and television shows produced by Walt Disney Studios and Disney Television Studios, with dedicated content hubs for Disney's flagship brands; Disney, Pixar, Marvel, Star Wars, National Geographic, and Hulu as well as showcasing original and exclusive films and television shows. diff --git a/includes/cf-descriptions/dts-hd-hra.md b/includes/cf-descriptions/dts-hd-hra.md index 056c0c459..c6223f21b 100644 --- a/includes/cf-descriptions/dts-hd-hra.md +++ b/includes/cf-descriptions/dts-hd-hra.md @@ -1,6 +1,6 @@ **DTS-HD HRA**
-[Technical Whitepaper](https://www.opusproductions.com/pdfs/DTS_HD_WhitePaper.pdf){:target="_blank" rel="noopener noreferrer"} +[Technical Whitepaper](https://www.opusproductions.com/pdfs/DTS_HD_WhitePaper.pdf){:target="\_blank" rel="noopener noreferrer"} | Codec | Page | Paragraph | | ---------- | ------ | --------- | diff --git a/includes/cf-descriptions/dts-hd-ma.md b/includes/cf-descriptions/dts-hd-ma.md index 40332789b..f158177d9 100644 --- a/includes/cf-descriptions/dts-hd-ma.md +++ b/includes/cf-descriptions/dts-hd-ma.md @@ -1,5 +1,5 @@ **DTS-HD MA**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/DTS-HD_Master_Audio){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/DTS-HD_Master_Audio){:target="\_blank" rel="noopener noreferrer"} DTS-HD Master Audio is a multi-channel lossless audio codec developed by DTS that extends the lossy DTS Coherent Acoustics codec (DTS CA; usually referred to as simply "DTS"). Rather than being an entirely new coding mechanism, DTS-HD MA encodes an audio master in lossy DTS first, then stores a concurrent stream of supplementary data representing whatever the DTS encoder discarded. This gives DTS-HD MA a lossy "core" able to be played back by devices that cannot decode the more complex lossless audio. DTS-HD MA's primary application is audio storage and playback for Blu-ray Disc media. diff --git a/includes/cf-descriptions/dv-hdr10.md b/includes/cf-descriptions/dv-hdr10.md index e96c96deb..8597c91ef 100644 --- a/includes/cf-descriptions/dv-hdr10.md +++ b/includes/cf-descriptions/dv-hdr10.md @@ -1,11 +1,11 @@ -*This Custom Format will only match on* `DV HDR10` +_This Custom Format will only match on_ `DV HDR10` -This format provides Dolby Vision *with* HDR10 fallback. +This format provides Dolby Vision _with_ HDR10 fallback. You will find this mainly with: - Remuxes - Bluray encodes -- Hybrid WEB-DL (*Hybrid isn't always mentioned*) +- Hybrid WEB-DL (_Hybrid isn't always mentioned_) {! include-markdown "../../includes/cf-descriptions/dolby-vision.md" !} diff --git a/includes/cf-descriptions/dv-hdr10plus.md b/includes/cf-descriptions/dv-hdr10plus.md index c30e822be..ff524001e 100644 --- a/includes/cf-descriptions/dv-hdr10plus.md +++ b/includes/cf-descriptions/dv-hdr10plus.md @@ -1,11 +1,11 @@ -*This Custom Format will only match on* `DV HDR10+` +_This Custom Format will only match on_ `DV HDR10+` -This format provides Dolby Vision *with* HDR10+ fallback (with HDR10+ having native HDR10 fallback). +This format provides Dolby Vision _with_ HDR10+ fallback (with HDR10+ having native HDR10 fallback). You will find this mainly with: -- Hybrid Remuxes (*Hybrid isn't always mentioned*) -- Hybrid Bluray encodes (*Hybrid isn't always mentioned*) -- Hybrid WEB-DL (*Hybrid isn't always mentioned*) +- Hybrid Remuxes (_Hybrid isn't always mentioned_) +- Hybrid Bluray encodes (_Hybrid isn't always mentioned_) +- Hybrid WEB-DL (_Hybrid isn't always mentioned_) {! include-markdown "../../includes/cf-descriptions/dolby-vision.md" !} diff --git a/includes/cf-descriptions/dv-hlg.md b/includes/cf-descriptions/dv-hlg.md index bea70c822..7c0b6d51e 100644 --- a/includes/cf-descriptions/dv-hlg.md +++ b/includes/cf-descriptions/dv-hlg.md @@ -1,4 +1,4 @@ -*This Custom Format will only match on* `DV HLG` +_This Custom Format will only match on_ `DV HLG` **DV HLG**
This is a very rare HDR Format that was created by NHK (JP) and the BBC for cable, satellite, and over-the-air TV broadcasts. diff --git a/includes/cf-descriptions/dv-sdr.md b/includes/cf-descriptions/dv-sdr.md index c63a4f50e..55f41ae52 100644 --- a/includes/cf-descriptions/dv-sdr.md +++ b/includes/cf-descriptions/dv-sdr.md @@ -1,4 +1,4 @@ -*This Custom Format will only match on* `DV SDR` +_This Custom Format will only match on_ `DV SDR` **DV SDR**
diff --git a/includes/cf-descriptions/dv.md b/includes/cf-descriptions/dv.md index 83cd0b4a6..49328e2fe 100644 --- a/includes/cf-descriptions/dv.md +++ b/includes/cf-descriptions/dv.md @@ -1,4 +1,4 @@ -*This Custom Format will only match on* `DV` **NOT** *on* `DV HDR10` *etc*. +_This Custom Format will only match on_ `DV` **NOT** _on_ `DV HDR10` _etc_. Depending on the source (WEB-DL, Bluray, or Remux) this format will match the following: diff --git a/includes/cf-descriptions/fod.md b/includes/cf-descriptions/fod.md index a8e0877b1..ab868fd1f 100644 --- a/includes/cf-descriptions/fod.md +++ b/includes/cf-descriptions/fod.md @@ -1,4 +1,4 @@ **Fuji Television On Demand**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Fuji_Television){:target="_blank" rel="noopener noreferrer"} -[FOD Website](https://fod-sp.fujitv.co.jp){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Fuji_Television){:target="\_blank" rel="noopener noreferrer"} +[FOD Website](https://fod-sp.fujitv.co.jp){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf-descriptions/french-adn.md b/includes/cf-descriptions/french-adn.md index e91139582..cf3243f3d 100644 --- a/includes/cf-descriptions/french-adn.md +++ b/includes/cf-descriptions/french-adn.md @@ -1,3 +1,3 @@ **Animation Digital Network**
-[From Wikipedia, the free encyclopedia](https://fr.wikipedia.org/wiki/Animation_Digital_Network){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://fr.wikipedia.org/wiki/Animation_Digital_Network){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf-descriptions/french-canalplus.md b/includes/cf-descriptions/french-canalplus.md index 92cee30f6..2adeea37d 100644 --- a/includes/cf-descriptions/french-canalplus.md +++ b/includes/cf-descriptions/french-canalplus.md @@ -1,3 +1,3 @@ **Canal+**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Canal%2B){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Canal%2B){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf-descriptions/french-rtbf.md b/includes/cf-descriptions/french-rtbf.md index 430dfc0fc..142f6b323 100644 --- a/includes/cf-descriptions/french-rtbf.md +++ b/includes/cf-descriptions/french-rtbf.md @@ -1,3 +1,3 @@ **RTBF**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/RTBF){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/RTBF){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf-descriptions/french-salto.md b/includes/cf-descriptions/french-salto.md index ecbed922f..e7608cfaa 100644 --- a/includes/cf-descriptions/french-salto.md +++ b/includes/cf-descriptions/french-salto.md @@ -1,3 +1,3 @@ **SⱯLTO**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Salto_(streaming_service)){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf-descriptions/french-wkn.md b/includes/cf-descriptions/french-wkn.md index fec14960d..8d1697db2 100644 --- a/includes/cf-descriptions/french-wkn.md +++ b/includes/cf-descriptions/french-wkn.md @@ -1,3 +1,3 @@ **Wakanim**
-[From Wikipedia, the free encyclopedia](https://fr.wikipedia.org/wiki/Wakanim){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://fr.wikipedia.org/wiki/Wakanim){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf-descriptions/funi.md b/includes/cf-descriptions/funi.md index 04eb1f2ac..307cfd9df 100644 --- a/includes/cf-descriptions/funi.md +++ b/includes/cf-descriptions/funi.md @@ -1,3 +1,3 @@ **Funimation**
-[From Wikipedia, the free encyclopedia](https://www.wikiwand.com/en/Funimation){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://www.wikiwand.com/en/Funimation){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf-descriptions/hbo.md b/includes/cf-descriptions/hbo.md index 871a326d1..7bf055b91 100644 --- a/includes/cf-descriptions/hbo.md +++ b/includes/cf-descriptions/hbo.md @@ -1,5 +1,5 @@ **HBO**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/HBO){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/HBO){:target="\_blank" rel="noopener noreferrer"} Home Box Office (HBO) is an American pay television network, which is the flagship property of namesake parent-subsidiary Home Box Office, Inc., itself a unit owned by Warner Bros. Discovery. The overall Home Box Office business unit is based at Warner Bros. Programming featured on the network consists primarily of theatrically released motion pictures and original television programs as well as made-for-cable movies, documentaries, occasional comedy, and concert specials, and periodic interstitial programs (consisting of short films and making-of documentaries). diff --git a/includes/cf-descriptions/hdr.md b/includes/cf-descriptions/hdr.md index 0d87770e2..f7e2746c0 100644 --- a/includes/cf-descriptions/hdr.md +++ b/includes/cf-descriptions/hdr.md @@ -1,3 +1,3 @@ -*This Custom Format will only match on* `HDR` **NOT** *on* `HDR10`, `HDR10+` *etc* +_This Custom Format will only match on_ `HDR` **NOT** _on_ `HDR10`, `HDR10+` _etc_ This Custom Format is a sort of "catch-all" for the `HDR` scene naming scheme where we don't know, based on name alone, which HDR formats are included - it could be `HDR10`, `HDR10+` or even `PQ`. diff --git a/includes/cf-descriptions/hidive.md b/includes/cf-descriptions/hidive.md index d8ebb5a1e..4ce9ddd71 100644 --- a/includes/cf-descriptions/hidive.md +++ b/includes/cf-descriptions/hidive.md @@ -1,3 +1,3 @@ **HIDIVE**
-[From Wikipedia, the free encyclopedia](https://www.wikiwand.com/en/HIDIVE){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://www.wikiwand.com/en/HIDIVE){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf-descriptions/hlg.md b/includes/cf-descriptions/hlg.md index f5b0107c8..891ee3413 100644 --- a/includes/cf-descriptions/hlg.md +++ b/includes/cf-descriptions/hlg.md @@ -1,4 +1,4 @@ -*This Custom Format will only match on* `DV HLG` +_This Custom Format will only match on_ `DV HLG` **HLG**
diff --git a/includes/cf-descriptions/hmax.md b/includes/cf-descriptions/hmax.md index 22fb129b6..20f2ed53c 100644 --- a/includes/cf-descriptions/hmax.md +++ b/includes/cf-descriptions/hmax.md @@ -1,5 +1,5 @@ **Max (streaming service) aka HBO Max**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/HBO_Max){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/HBO_Max){:target="\_blank" rel="noopener noreferrer"} Max, formerly and in some markets still HBO Max, is an American subscription video on-demand over-the-top streaming service. It is a proprietary unit of Warner Bros. Discovery Global Streaming & Interactive Entertainment, which is itself a division of Warner Bros. Discovery (WBD). First launched (as HBO Max) in the United States on May 27, 2020, the service offers content from the libraries of Warner Bros., Discovery Channel, HBO, CNN, Cartoon Network, Adult Swim, Animal Planet, Eurosport, and their related brands. diff --git a/includes/cf-descriptions/htsr.md b/includes/cf-descriptions/htsr.md index 710e6b1d6..b80d8ed2f 100644 --- a/includes/cf-descriptions/htsr.md +++ b/includes/cf-descriptions/htsr.md @@ -1,5 +1,5 @@ **Disney+ Hotstar**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Disney%2B_Hotstar){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Disney%2B_Hotstar){:target="\_blank" rel="noopener noreferrer"} Disney+ Hotstar is an Indian subscription video-on-demand over-the-top streaming service owned by Disney Star, a subsidiary of the Disney Entertainment business segment of The Walt Disney Company, featuring domestic Indian film, television and sports content for India itself and its worldwide diaspora. It also includes imported content from and serves Southeast Asia as well. diff --git a/includes/cf-descriptions/hulu.md b/includes/cf-descriptions/hulu.md index ef90a053a..e28341ba0 100644 --- a/includes/cf-descriptions/hulu.md +++ b/includes/cf-descriptions/hulu.md @@ -1,5 +1,5 @@ **Hulu**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Hulu){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Hulu){:target="\_blank" rel="noopener noreferrer"} Hulu (/ˈhuːluː/) is an American subscription streaming service owned by The Walt Disney Company. It was launched on October 29, 2007. diff --git a/includes/cf-descriptions/ip.md b/includes/cf-descriptions/ip.md index c70d45a79..6750f6e88 100644 --- a/includes/cf-descriptions/ip.md +++ b/includes/cf-descriptions/ip.md @@ -1,5 +1,5 @@ **BBC iPlayer aka iP**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/BBC_iPlayer){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/BBC_iPlayer){:target="\_blank" rel="noopener noreferrer"} BBC iPlayer is a video on demand service from the BBC. iPlayer services delivered to UK-based viewers feature no commercial advertising. diff --git a/includes/cf-descriptions/it.md b/includes/cf-descriptions/it.md index 340f5700e..d204e6063 100644 --- a/includes/cf-descriptions/it.md +++ b/includes/cf-descriptions/it.md @@ -1,5 +1,5 @@ **iTunes**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/ITunes){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/ITunes){:target="\_blank" rel="noopener noreferrer"} Apple introduced iTunes 6, enabling support for purchasing and viewing video content purchased from the iTunes Store. At launch, the store offered popular shows from the ABC network along with Disney Channel series. In 2008, Apple and select film studios introduced "iTunes Digital Copy", a feature on select DVDs and Blu-ray discs allowing a digital copy in iTunes and associated media players. diff --git a/includes/cf-descriptions/itvx.md b/includes/cf-descriptions/itvx.md index be16acfcc..599b1b664 100644 --- a/includes/cf-descriptions/itvx.md +++ b/includes/cf-descriptions/itvx.md @@ -1,5 +1,5 @@ **ITVX aka ITV**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/ITVX){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/ITVX){:target="\_blank" rel="noopener noreferrer"} ITVX (formerly ITV Hub) is a British ad-supported video-on-demand streaming service operated by ITV. The service offers original content from the broadcaster, as well as some exclusive and licensed programming. diff --git a/includes/cf-descriptions/ma.md b/includes/cf-descriptions/ma.md index ff011d47b..a3270e6fd 100644 --- a/includes/cf-descriptions/ma.md +++ b/includes/cf-descriptions/ma.md @@ -1,5 +1,5 @@ **Movies Anywhere**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Movies_Anywhere){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Movies_Anywhere){:target="\_blank" rel="noopener noreferrer"} Movies Anywhere (MA) is a cloud-based digital rights locker and over-the-top streaming platform that allows users to stream and download purchased films, including digital copies redeemed from codes found in home video releases as well as digital purchases from participating services. Movies Anywhere is operated by The Walt Disney Company. The platform provides content from Walt Disney Studios, Sony Pictures, Universal Pictures, and Warner Bros. The system utilizes an internal platform known as KeyChest, which synchronizes content licenses from digital distribution platforms linked to a central user account. diff --git a/includes/cf-descriptions/nf.md b/includes/cf-descriptions/nf.md index e7bce87e6..0f4cedcf9 100644 --- a/includes/cf-descriptions/nf.md +++ b/includes/cf-descriptions/nf.md @@ -1,5 +1,5 @@ **Netflix**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Netflix){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Netflix){:target="\_blank" rel="noopener noreferrer"} Netflix is an American subscription video on-demand over-the-top streaming service. The service primarily distributes original and acquired films and television shows from various genres, and it is available internationally in multiple languages. diff --git a/includes/cf-descriptions/now.md b/includes/cf-descriptions/now.md index 6e3c1b8a1..266340c3b 100644 --- a/includes/cf-descriptions/now.md +++ b/includes/cf-descriptions/now.md @@ -1,5 +1,5 @@ **NOW**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Now_(Sky)){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](){:target="\_blank" rel="noopener noreferrer"} Now (formerly Now TV and often stylised as NOW) is a subscription over-the-top streaming television service operated by British satellite television provider Sky Group. diff --git a/includes/cf-descriptions/opus.md b/includes/cf-descriptions/opus.md index 90b1cd57f..1b5fdc713 100644 --- a/includes/cf-descriptions/opus.md +++ b/includes/cf-descriptions/opus.md @@ -1,5 +1,5 @@ **OPUS**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Opus_(audio_format)){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](){:target="\_blank" rel="noopener noreferrer"} Opus is a lossy audio coding format developed by the Xiph.Org Foundation and standardized by the Internet Engineering Task Force, designed to efficiently code speech and general audio in a single format while remaining low-latency enough for real-time interactive communication and low-complexity enough for low-end embedded processors. Opus replaces both Vorbis and Speex for new applications, and several blind listening tests have ranked it higher quality than any other standard audio format at any given bitrate until transparency is reached, including MP3, AAC, and HE-AAC. diff --git a/includes/cf-descriptions/ovid.md b/includes/cf-descriptions/ovid.md index 211012eef..ba41c6d05 100644 --- a/includes/cf-descriptions/ovid.md +++ b/includes/cf-descriptions/ovid.md @@ -1,3 +1,3 @@ **OViD**
-[OViD Website](https://search.ovid.tv/other/about){:target="_blank" rel="noopener noreferrer"} +[OViD Website](https://search.ovid.tv/other/about){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf-descriptions/pathe.md b/includes/cf-descriptions/pathe.md index 94a439353..7cea5e60b 100644 --- a/includes/cf-descriptions/pathe.md +++ b/includes/cf-descriptions/pathe.md @@ -1,5 +1,5 @@ **Pathé Thuis**
-[From Wikipedia, the free encyclopedia](https://nl.wikipedia.org/wiki/Path%C3%A9_Thuis){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://nl.wikipedia.org/wiki/Path%C3%A9_Thuis){:target="\_blank" rel="noopener noreferrer"} Pathé Thuis is a Dutch streaming service for renting and purchasing films. diff --git a/includes/cf-descriptions/pcok.md b/includes/cf-descriptions/pcok.md index fdc4fe5d2..88ca958fb 100644 --- a/includes/cf-descriptions/pcok.md +++ b/includes/cf-descriptions/pcok.md @@ -1,5 +1,5 @@ **Peacock TV**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Peacock_(streaming_service)){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](){:target="\_blank" rel="noopener noreferrer"} Peacock is an American over-the-top video streaming service owned and operated by Peacock TV LLC, a subsidiary of NBCUniversal Media Group. Named after the NBC logo, the service launched on July 15, 2020. The service primarily features series and film content from NBCUniversal studios and other third-party content providers, including television series, films, news, and sports programming. The service is available in a grandfathered free ad-supported version with limited content, while premium tiers include a larger content library and access to additional NBC Sports, Hallmark Channel, and WWE content. diff --git a/includes/cf-descriptions/pmtp.md b/includes/cf-descriptions/pmtp.md index 0c233687d..0924da4b0 100644 --- a/includes/cf-descriptions/pmtp.md +++ b/includes/cf-descriptions/pmtp.md @@ -1,5 +1,5 @@ **Paramount+**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Paramount%2B){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Paramount%2B){:target="\_blank" rel="noopener noreferrer"} Paramount+ is an American subscription video on-demand over-the-top streaming service owned by Paramount Global. The service's content is drawn primarily from the libraries of CBS Media Ventures, CBS Studios, Paramount Media Networks (formerly Viacom Media Networks and ViacomCBS Domestic Media Networks), and Paramount Pictures, while also including original series and films, live streaming sports coverage, and in the United States, live streaming of local CBS broadcast stations. diff --git a/includes/cf-descriptions/qibi.md b/includes/cf-descriptions/qibi.md index 81e6eb1f7..6ac1ebe70 100644 --- a/includes/cf-descriptions/qibi.md +++ b/includes/cf-descriptions/qibi.md @@ -1,5 +1,5 @@ **Quibi**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Quibi){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Quibi){:target="\_blank" rel="noopener noreferrer"} Quibi (/ˈkwɪbi/ KWIB-ee) was an American short-form streaming platform, It launched in April 2020, but shut down in December 2020 after falling short of its subscriber projections. diff --git a/includes/cf-descriptions/red.md b/includes/cf-descriptions/red.md index 6a8e6c629..1abfd46c0 100644 --- a/includes/cf-descriptions/red.md +++ b/includes/cf-descriptions/red.md @@ -1,3 +1,3 @@ **Youtube Red**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/YouTube_Premium){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/YouTube_Premium){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf-descriptions/sho.md b/includes/cf-descriptions/sho.md index d96f52bdf..7ae5e197e 100644 --- a/includes/cf-descriptions/sho.md +++ b/includes/cf-descriptions/sho.md @@ -1,5 +1,5 @@ **SHOWTIME**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Showtime_(TV_network)){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](){:target="\_blank" rel="noopener noreferrer"} Paramount+ with Showtime, also known as Showtime (the former name of its main channel from 1976 to 2024, but still used for certain marketing and channel branding contexts), is an American premium television network and the flagship property of Showtime Networks, a sub-division of the Paramount Media Networks division of Paramount Global. Paramount+ with Showtime's programming includes original television series produced exclusively for the linear network and developed for the co-owned Paramount+ streaming service, theatrically released and independent motion pictures, documentaries, and occasional stand-up comedy specials, made-for-TV movies and softcore adult programming. diff --git a/includes/cf-descriptions/stan.md b/includes/cf-descriptions/stan.md index 2e567269c..8a5fe4617 100644 --- a/includes/cf-descriptions/stan.md +++ b/includes/cf-descriptions/stan.md @@ -1,5 +1,5 @@ **Stan**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Stan_(service)){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](){:target="\_blank" rel="noopener noreferrer"} Stan is an Australian over-the-top streaming service. The service offers a broad range of film and television content from both local and foreign productions, particularly from the United States and United Kingdom. Stan also includes a growing library of their own original film and television content. With over 2.6 million subscribers, as of June 2023 Stan is the fourth largest streaming service in Australia, behind Disney+, Amazon Prime Video and Netflix. diff --git a/includes/cf-descriptions/strp.md b/includes/cf-descriptions/strp.md index 716f07c37..110f90ca2 100644 --- a/includes/cf-descriptions/strp.md +++ b/includes/cf-descriptions/strp.md @@ -1,6 +1,6 @@ **Star+**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Star%2B){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Star%2B){:target="\_blank" rel="noopener noreferrer"} Star+ (Star Plus; stylized as ST★R+) is a subscription video on-demand over-the-top streaming service available in almost all Ibero-American states. The service is owned by The Walt Disney Company through the Disney Entertainment division and business segment. diff --git a/includes/cf-descriptions/truehd-atmos.md b/includes/cf-descriptions/truehd-atmos.md index 2a23065f9..d7d7b071b 100644 --- a/includes/cf-descriptions/truehd-atmos.md +++ b/includes/cf-descriptions/truehd-atmos.md @@ -1,5 +1,5 @@ **TrueHD Atmos**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Dolby_Atmos){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Dolby_Atmos){:target="\_blank" rel="noopener noreferrer"} Dolby Atmos is a surround sound technology developed by Dolby Laboratories. It expands on existing surround sound systems by adding height channels, allowing sounds to be interpreted as three-dimensional objects. diff --git a/includes/cf-descriptions/truehd.md b/includes/cf-descriptions/truehd.md index 43d55c6b5..a8cdb30ba 100644 --- a/includes/cf-descriptions/truehd.md +++ b/includes/cf-descriptions/truehd.md @@ -1,5 +1,5 @@ **TrueHD**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Dolby_TrueHD){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Dolby_TrueHD){:target="\_blank" rel="noopener noreferrer"} Dolby TrueHD is a lossless multi-channel audio codec developed by Dolby Laboratories for home video, used principally in Blu-ray Discs and compatible hardware. diff --git a/includes/cf-descriptions/tver.md b/includes/cf-descriptions/tver.md index a572c394b..acad57351 100644 --- a/includes/cf-descriptions/tver.md +++ b/includes/cf-descriptions/tver.md @@ -1,4 +1,4 @@ **TVer**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/TVer_(streaming_service)){:target="_blank" rel="noopener noreferrer"} -[TVer Website](https://tver.jp){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](){:target="\_blank" rel="noopener noreferrer"} +[TVer Website](https://tver.jp){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf-descriptions/tving.md b/includes/cf-descriptions/tving.md index 9a801a84b..26e912148 100644 --- a/includes/cf-descriptions/tving.md +++ b/includes/cf-descriptions/tving.md @@ -1,5 +1,5 @@ **TVING**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/TVING){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/TVING){:target="\_blank" rel="noopener noreferrer"} TVING (Korean: 티빙) is a South Korean subscription video on-demand over-the-top streaming service operated by TVING Corporation, It is a platform that streams dramas, entertainment shows, animations, exclusive television films, specials and documentaries. diff --git a/includes/cf-descriptions/u-next.md b/includes/cf-descriptions/u-next.md index 05c6a7e23..b9b157c20 100644 --- a/includes/cf-descriptions/u-next.md +++ b/includes/cf-descriptions/u-next.md @@ -1,4 +1,4 @@ **U-NEXT**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/U-Next){:target="_blank" rel="noopener noreferrer"} -[U-NEXT Website](https://video.unext.jp){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/U-Next){:target="\_blank" rel="noopener noreferrer"} +[U-NEXT Website](https://video.unext.jp){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf-descriptions/vdl.md b/includes/cf-descriptions/vdl.md index 00b539194..6a41238a0 100644 --- a/includes/cf-descriptions/vdl.md +++ b/includes/cf-descriptions/vdl.md @@ -1,5 +1,5 @@ **Videoland**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Videoland_(Netherlands)){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](){:target="\_blank" rel="noopener noreferrer"} Videoland is a Dutch OTT online service provider owned by RTL Nederland. Originally it was a retail chain of video rental stores. Its main competitor is Netflix. diff --git a/includes/cf-descriptions/viu.md b/includes/cf-descriptions/viu.md index eed63563f..75841b396 100644 --- a/includes/cf-descriptions/viu.md +++ b/includes/cf-descriptions/viu.md @@ -1,5 +1,5 @@ **VIU**
-[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Viu_(streaming_service)){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](){:target="\_blank" rel="noopener noreferrer"} Viu (pronounced as view) is a Hong Kong-based over-the-top (OTT) video streaming provider, Viu delivers content in different genres from Asia's top content providers with local language subtitles, as well as original production series under the Viu Original initiative (similar to original programming from other services like Disney+, Amazon Prime Video and Netflix). diff --git a/includes/cf-descriptions/vrv.md b/includes/cf-descriptions/vrv.md index 67c1848e6..07e56e935 100644 --- a/includes/cf-descriptions/vrv.md +++ b/includes/cf-descriptions/vrv.md @@ -1,3 +1,3 @@ **VRV**
-[From Wikipedia, the free encyclopedia](https://www.wikiwand.com/en/VRV_(streaming_service)){:target="_blank" rel="noopener noreferrer"} +[From Wikipedia, the free encyclopedia](){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/cf/dv-info-profiles.md b/includes/cf/dv-info-profiles.md index b9121a20e..ef538e519 100644 --- a/includes/cf/dv-info-profiles.md +++ b/includes/cf/dv-info-profiles.md @@ -5,7 +5,9 @@ - **Profile 5** (*1*) - This is what comes with WEB-DL Dolby Vision releases without HDR10 fallback.
(*Incompatible devices will playback with blown out pinks and greens*) - **Profile 7** (*2*) - This is what comes with UHD Bluray Remuxes and UHD BluRay releases.
*These files will play on an Nvidia Shield Pro (2019), but on most other players will revert to the HDR10 fallback.* - **Profile 8** (*3*) - This is what comes with (Hybrid) WEB-DL (HULU), Hybrid UHD Remux, and UHD BluRay releases (all of which have HDR10 fallback).
*This works with several mainstream media players.*
+ --- + {! include-markdown "../../includes/cf/dv-limitations-atv.md" !} - (*1*) *PLEX for AppleTV and Plex with Infuse will only play profile 5 correctly if CMv2.9 is used* diff --git a/includes/cf/radarr-anime.md b/includes/cf/radarr-anime.md index 5f7c925e6..bedd7753a 100644 --- a/includes/cf/radarr-anime.md +++ b/includes/cf/radarr-anime.md @@ -1,4 +1,5 @@ ??? abstract "Anime CF/Scoring - [Click to show/hide]" + | Custom Format | Score | Trash ID | | --------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------: | -------------------------------------------------------------------- | | [{{ radarr['cf']['anime-bd-tier-01-top-seadex-muxers']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#anime-bd-tier-01-top-seadex-muxers) | {{ radarr['cf']['anime-bd-tier-01-top-seadex-muxers']['trash_scores']['default'] }} | {{ radarr['cf']['anime-bd-tier-01-top-seadex-muxers']['trash_id'] }} | diff --git a/includes/cf/radarr-cf-hd-bluray-web-scoring.md b/includes/cf/radarr-cf-hd-bluray-web-scoring.md index 8957ceb0f..4881334f8 100644 --- a/includes/cf/radarr-cf-hd-bluray-web-scoring.md +++ b/includes/cf/radarr-cf-hd-bluray-web-scoring.md @@ -1,4 +1,5 @@ ??? abstract "HQ Release Groups - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ----------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------: | --------------------------------------------------- | | [{{ radarr['cf']['hd-bluray-tier-01']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#hd-bluray-tier-01) | {{ radarr['cf']['hd-bluray-tier-01']['trash_scores']['default'] }} | {{ radarr['cf']['hd-bluray-tier-01']['trash_id'] }} | diff --git a/includes/cf/radarr-cf-remux-web-scoring.md b/includes/cf/radarr-cf-remux-web-scoring.md index 7fd9fb3c5..4deb5659a 100644 --- a/includes/cf/radarr-cf-remux-web-scoring.md +++ b/includes/cf/radarr-cf-remux-web-scoring.md @@ -1,4 +1,5 @@ ??? abstract "HQ Release Groups - [Click to show/hide]" + | Custom Format | Score | Trash ID | | --------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------: | ----------------------------------------------- | | [{{ radarr['cf']['remux-tier-01']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#remux-tier-01) | {{ radarr['cf']['remux-tier-01']['trash_scores']['default'] }} | {{ radarr['cf']['remux-tier-01']['trash_id'] }} | diff --git a/includes/cf/radarr-cf-uhd-bluray-web-scoring.md b/includes/cf/radarr-cf-uhd-bluray-web-scoring.md index e62aac331..03dd713b9 100644 --- a/includes/cf/radarr-cf-uhd-bluray-web-scoring.md +++ b/includes/cf/radarr-cf-uhd-bluray-web-scoring.md @@ -1,4 +1,5 @@ ??? abstract "HQ Release Groups - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------: | ---------------------------------------------------- | | [{{ radarr['cf']['uhd-bluray-tier-01']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#uhd-bluray-tier-01) | {{ radarr['cf']['uhd-bluray-tier-01']['trash_scores']['default'] }} | {{ radarr['cf']['uhd-bluray-tier-01']['trash_id'] }} | diff --git a/includes/cf/radarr-dv-tip-dv-webdl.md b/includes/cf/radarr-dv-tip-dv-webdl.md index b21ab150e..129eebd3a 100644 --- a/includes/cf/radarr-dv-tip-dv-webdl.md +++ b/includes/cf/radarr-dv-tip-dv-webdl.md @@ -1,2 +1,3 @@ !!! tip + If you (or family members you share your collection with) have a setup that doesn't support Dolby Vision then it's best to add
**ALL** the HDR Formats listed above (including **ALL** the DV ones (with and without HDR in it)).
It is important to also add the [{{ radarr['cf']['dv-webdl']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#dv-webdl) Custom Format with a score of {{ radarr['cf']['dv-webdl']['trash_scores']['default'] }} diff --git a/includes/cf/radarr-misc.md b/includes/cf/radarr-misc.md index f5006553e..816da1d84 100644 --- a/includes/cf/radarr-misc.md +++ b/includes/cf/radarr-misc.md @@ -1,4 +1,5 @@ ??? abstract "Misc - [Click to show/hide]" + | Custom Format | Score | Trash ID | | -------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------: | ----------------------------------------------- | | [{{ radarr['cf']['repack-proper']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#repackproper) | {{ radarr['cf']['repack-proper']['trash_scores']['default'] }} | {{ radarr['cf']['repack-proper']['trash_id'] }} | diff --git a/includes/cf/radarr-movie-versions-imaxe-noremux.md b/includes/cf/radarr-movie-versions-imaxe-noremux.md index 9a2769354..c9b9ef176 100644 --- a/includes/cf/radarr-movie-versions-imaxe-noremux.md +++ b/includes/cf/radarr-movie-versions-imaxe-noremux.md @@ -1,4 +1,5 @@ ??? abstract "Movie Versions - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ----------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------: | ------------------------------------------------------ | | [{{ radarr['cf']['remaster']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#remaster) | {{ radarr['cf']['remaster']['trash_scores']['default'] }} | {{ radarr['cf']['remaster']['trash_id'] }} | @@ -11,6 +12,7 @@ | [{{ radarr['cf']['imax-enhanced']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#imax-enhanced) | {{ radarr['cf']['imax-enhanced']['trash_scores']['default'] }} | {{ radarr['cf']['imax-enhanced']['trash_id'] }} | !!! tip "{{ radarr['cf']['imax-enhanced']['name'] }}" + {{ radarr['cf']['imax-enhanced']['name'] }}: Get More Picture Instead of Black Bars. {{ radarr['cf']['imax-enhanced']['name'] }} exclusive expanded aspect ratio is 1:90:1, which offers up to 26% more picture for select sequences, meaning more of the action is visible on screen. diff --git a/includes/cf/radarr-movie-versions-imaxe.md b/includes/cf/radarr-movie-versions-imaxe.md index 3cafa4356..fed195a3d 100644 --- a/includes/cf/radarr-movie-versions-imaxe.md +++ b/includes/cf/radarr-movie-versions-imaxe.md @@ -1,4 +1,5 @@ ??? abstract "Movie Versions - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ----------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------: | ------------------------------------------------------ | | [{{ radarr['cf']['hybrid']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#hybrid) | {{ radarr['cf']['hybrid']['trash_scores']['default'] }} | {{ radarr['cf']['hybrid']['trash_id'] }} | @@ -12,6 +13,7 @@ | [{{ radarr['cf']['imax-enhanced']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#imax-enhanced) | {{ radarr['cf']['imax-enhanced']['trash_scores']['default'] }} | {{ radarr['cf']['imax-enhanced']['trash_id'] }} | !!! tip "{{ radarr['cf']['imax-enhanced']['name'] }}" + {{ radarr['cf']['imax-enhanced']['name'] }}: Get More Picture Instead of Black Bars. {{ radarr['cf']['imax-enhanced']['name'] }} exclusive expanded aspect ratio is 1:90:1, which offers up to 26% more picture for select sequences, meaning more of the action is visible on screen. diff --git a/includes/cf/radarr-movie-versions-noremux.md b/includes/cf/radarr-movie-versions-noremux.md index e07934d45..4e26ea4a7 100644 --- a/includes/cf/radarr-movie-versions-noremux.md +++ b/includes/cf/radarr-movie-versions-noremux.md @@ -1,4 +1,5 @@ ??? abstract "Movie Versions - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ----------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------: | ------------------------------------------------------ | | [{{ radarr['cf']['remaster']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#remaster) | {{ radarr['cf']['remaster']['trash_scores']['default'] }} | {{ radarr['cf']['remaster']['trash_id'] }} | diff --git a/includes/cf/radarr-movie-versions.md b/includes/cf/radarr-movie-versions.md index 0a75aeff2..1f3642cea 100644 --- a/includes/cf/radarr-movie-versions.md +++ b/includes/cf/radarr-movie-versions.md @@ -1,4 +1,5 @@ ??? abstract "Movie Versions - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ----------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------: | ------------------------------------------------------ | | [{{ radarr['cf']['hybrid']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#hybrid) | {{ radarr['cf']['hybrid']['trash_scores']['default'] }} | {{ radarr['cf']['hybrid']['trash_id'] }} | diff --git a/includes/cf/radarr-optional-uhd.md b/includes/cf/radarr-optional-uhd.md index 4eb0ac9a9..098e46f85 100644 --- a/includes/cf/radarr-optional-uhd.md +++ b/includes/cf/radarr-optional-uhd.md @@ -1,10 +1,11 @@ ??? abstract "Optional UHD - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ----------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------: | ---------------------------------------------- | | [{{ radarr['cf']['sdr']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#sdr) | {{ radarr['cf']['sdr']['trash_scores']['default'] }} | {{ radarr['cf']['sdr']['trash_id'] }} | | [{{ radarr['cf']['sdr-no-webdl']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#sdr-no-webdl) :warning: | {{ radarr['cf']['sdr-no-webdl']['trash_scores']['default'] }} | {{ radarr['cf']['sdr-no-webdl']['trash_id'] }} | - ------ + --- Breakdown and Why diff --git a/includes/cf/radarr-optional.md b/includes/cf/radarr-optional.md index 4fe84cba7..e698bba02 100644 --- a/includes/cf/radarr-optional.md +++ b/includes/cf/radarr-optional.md @@ -1,4 +1,5 @@ ??? abstract "Optional - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------: | ------------------------------------------------- | | [{{ radarr['cf']['bad-dual-groups']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#bad-dual-groups) | {{ radarr['cf']['bad-dual-groups']['trash_scores']['default'] }} | {{ radarr['cf']['bad-dual-groups']['trash_id'] }} | @@ -9,7 +10,7 @@ | [{{ radarr['cf']['scene']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#scene) | {{ radarr['cf']['scene']['trash_scores']['default'] }} | {{ radarr['cf']['scene']['trash_id'] }} | | [{{ radarr['cf']['x265-no-hdrdv']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#x265-no-hdrdv) :warning: | {{ radarr['cf']['x265-no-hdrdv']['trash_scores']['default'] }} | {{ radarr['cf']['x265-no-hdrdv']['trash_id'] }} | - ------ + --- Breakdown and Why diff --git a/includes/cf/radarr-streaming-services.md b/includes/cf/radarr-streaming-services.md index 858e0d181..71bcb0a3e 100644 --- a/includes/cf/radarr-streaming-services.md +++ b/includes/cf/radarr-streaming-services.md @@ -1,4 +1,5 @@ ??? abstract "General Streaming Services - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ------------------------------------------------------------------------------------------- | :----------------------------------------------------: | ---------------------------------------- | | [{{ radarr['cf']['amzn']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#amzn) | 0 | {{ radarr['cf']['amzn']['trash_id'] }} | @@ -16,7 +17,8 @@ | [{{ radarr['cf']['pcok']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#pcok) | 0 | {{ radarr['cf']['pcok']['trash_id'] }} | | [{{ radarr['cf']['stan']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#stan) | 0 | {{ radarr['cf']['stan']['trash_id'] }} | - ------ + --- + Breakdown and Why - The reason why these Custom Formats have a score of `0` is because they are mainly used for the naming scheme and other variables should decide for movies if a certain release if preferred. diff --git a/includes/cf/radarr-suggest-attention.md b/includes/cf/radarr-suggest-attention.md index b3e7c8b10..effaead6c 100644 --- a/includes/cf/radarr-suggest-attention.md +++ b/includes/cf/radarr-suggest-attention.md @@ -1,7 +1,7 @@ I suggest to follow the following Guides first. -- [Quality Settings (File Size)](/Radarr/Radarr-Quality-Settings-File-Size/){:target="_blank" rel="noopener noreferrer"}. -- [Recommended naming scheme](/Radarr/Radarr-recommended-naming-scheme/){:target="_blank" rel="noopener noreferrer"}. +- [Quality Settings (File Size)](/Radarr/Radarr-Quality-Settings-File-Size/){:target="\_blank" rel="noopener noreferrer"}. +- [Recommended naming scheme](/Radarr/Radarr-recommended-naming-scheme/){:target="\_blank" rel="noopener noreferrer"}. For this Quality Profile we're going to make use of the following Custom Formats with the scores given in the table. diff --git a/includes/cf/radarr-unwanted-uhd.md b/includes/cf/radarr-unwanted-uhd.md index 74f2cd675..b06aa4b86 100644 --- a/includes/cf/radarr-unwanted-uhd.md +++ b/includes/cf/radarr-unwanted-uhd.md @@ -1,15 +1,16 @@ ??? abstract "Unwanted - [Click to show/hide]" - | Custom Format | Score | Trash ID | - | -------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------: | -------------------------------------------------- | - | [{{ radarr['cf']['br-disk']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#br-disk) | {{ radarr['cf']['br-disk']['trash_scores']['default'] }} | {{ radarr['cf']['br-disk']['trash_id'] }} | - | [{{ radarr['cf']['lq']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#lq) | {{ radarr['cf']['lq']['trash_scores']['default'] }} | {{ radarr['cf']['lq']['trash_id'] }} | + + | Custom Format | Score | Trash ID | + | --------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------: | -------------------------------------------------- | + | [{{ radarr['cf']['br-disk']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#br-disk) | {{ radarr['cf']['br-disk']['trash_scores']['default'] }} | {{ radarr['cf']['br-disk']['trash_id'] }} | + | [{{ radarr['cf']['lq']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#lq) | {{ radarr['cf']['lq']['trash_scores']['default'] }} | {{ radarr['cf']['lq']['trash_id'] }} | | [{{ radarr['cf']['lq-release-title']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#lq-release-title) | {{ radarr['cf']['lq-release-title']['trash_scores']['default'] }} | {{ radarr['cf']['lq-release-title']['trash_id'] }} | - | [{{ radarr['cf']['x265-hd']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#x265-hd) :warning: | {{ radarr['cf']['x265-hd']['trash_scores']['default'] }} | {{ radarr['cf']['x265-hd']['trash_id'] }} | - | [{{ radarr['cf']['3d']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#3d) | {{ radarr['cf']['3d']['trash_scores']['default'] }} | {{ radarr['cf']['3d']['trash_id'] }} | - | [{{ radarr['cf']['upscaled']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#upscaled) | {{ radarr['cf']['upscaled']['trash_scores']['default'] }} | {{ radarr['cf']['upscaled']['trash_id'] }} | - | [{{ radarr['cf']['extras']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#extras) | {{ radarr['cf']['extras']['trash_scores']['default'] }} | {{ radarr['cf']['extras']['trash_id'] }} | + | [{{ radarr['cf']['x265-hd']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#x265-hd) :warning: | {{ radarr['cf']['x265-hd']['trash_scores']['default'] }} | {{ radarr['cf']['x265-hd']['trash_id'] }} | + | [{{ radarr['cf']['3d']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#3d) | {{ radarr['cf']['3d']['trash_scores']['default'] }} | {{ radarr['cf']['3d']['trash_id'] }} | + | [{{ radarr['cf']['upscaled']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#upscaled) | {{ radarr['cf']['upscaled']['trash_scores']['default'] }} | {{ radarr['cf']['upscaled']['trash_id'] }} | + | [{{ radarr['cf']['extras']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#extras) | {{ radarr['cf']['extras']['trash_scores']['default'] }} | {{ radarr['cf']['extras']['trash_id'] }} | - ------ + --- Breakdown and Why diff --git a/includes/cf/radarr-unwanted.md b/includes/cf/radarr-unwanted.md index a92d152d3..3b972d080 100644 --- a/includes/cf/radarr-unwanted.md +++ b/includes/cf/radarr-unwanted.md @@ -1,4 +1,5 @@ ??? abstract "Unwanted - [Click to show/hide]" + | Custom Format | Score | Trash ID | | --------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------: | -------------------------------------------------- | | [{{ radarr['cf']['br-disk']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#br-disk) | {{ radarr['cf']['br-disk']['trash_scores']['default'] }} | {{ radarr['cf']['br-disk']['trash_id'] }} | @@ -8,7 +9,7 @@ | [{{ radarr['cf']['3d']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#3d) | {{ radarr['cf']['3d']['trash_scores']['default'] }} | {{ radarr['cf']['3d']['trash_id'] }} | | [{{ radarr['cf']['extras']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#extras) | {{ radarr['cf']['extras']['trash_scores']['default'] }} | {{ radarr['cf']['extras']['trash_id'] }} | - ------ + --- Breakdown and Why diff --git a/includes/cf/score-attention.md b/includes/cf/score-attention.md index 42284da95..d1fb31768 100644 --- a/includes/cf/score-attention.md +++ b/includes/cf/score-attention.md @@ -1,4 +1,5 @@ !!! warning "Attention" + All the used scores and combination of Custom Formats in this Guide are tested to get the desired results and prevent download loops as much as possible. From experience most of the time when people change scores or leave out certain CF that work together they end up with undesired results. diff --git a/includes/cf/sonarr-anime.md b/includes/cf/sonarr-anime.md index e0db1132f..3e2ddf181 100644 --- a/includes/cf/sonarr-anime.md +++ b/includes/cf/sonarr-anime.md @@ -1,4 +1,5 @@ ??? abstract "Anime CF/Scoring - [Click to show/hide]" + | Custom Format | Score | Trash ID | | --------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------: | -------------------------------------------------------------------- | | [{{ sonarr['cf']['anime-bd-tier-01-top-seadex-muxers']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#anime-bd-tier-01-top-seadex-muxers) | {{ sonarr['cf']['anime-bd-tier-01-top-seadex-muxers']['trash_scores']['default'] }} | {{ sonarr['cf']['anime-bd-tier-01-top-seadex-muxers']['trash_id'] }} | @@ -12,7 +13,7 @@ | [{{ sonarr['cf']['anime-web-tier-01-muxers']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#anime-web-tier-01-muxers) | {{ sonarr['cf']['anime-web-tier-01-muxers']['trash_scores']['default'] }} | {{ sonarr['cf']['anime-web-tier-01-muxers']['trash_id'] }} | | [{{ sonarr['cf']['anime-web-tier-02-top-fansubs']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#anime-web-tier-02-top-fansubs) | {{ sonarr['cf']['anime-web-tier-02-top-fansubs']['trash_scores']['default'] }} | {{ sonarr['cf']['anime-web-tier-02-top-fansubs']['trash_id'] }} | | [{{ sonarr['cf']['web-tier-01']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#web-tier-01) | :warning: {{ sonarr['cf']['web-tier-01']['trash_scores']['anime-sonarr'] }} :warning: | {{ sonarr['cf']['web-tier-01']['trash_id'] }} | - | [{{ sonarr['cf']['web-tier-02']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#web-tier-02) | :warning: {{ sonarr['cf']['web-tier-02']['trash_scores']['anime-sonarr'] }} :warning: | {{ sonarr['cf']['web-tier-02']['trash_id'] }} | + | [{{ sonarr['cf']['web-tier-02']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#web-tier-02) | :warning: {{ sonarr['cf']['web-tier-02']['trash_scores']['anime-sonarr'] }} :warning: | {{ sonarr['cf']['web-tier-02']['trash_id'] }} | | [{{ sonarr['cf']['anime-web-tier-03-official-subs']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#anime-web-tier-03-official-subs) | {{ sonarr['cf']['anime-web-tier-03-official-subs']['trash_scores']['default'] }} | {{ sonarr['cf']['anime-web-tier-03-official-subs']['trash_id'] }} | | [{{ sonarr['cf']['web-tier-03']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#web-tier-03) | :warning: {{ sonarr['cf']['web-tier-03']['trash_scores']['anime-sonarr'] }} :warning: | {{ sonarr['cf']['web-tier-03']['trash_id'] }} | | [{{ sonarr['cf']['remux-tier-01']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#remux-tier-01) | :warning: {{ sonarr['cf']['remux-tier-01']['trash_scores']['anime-sonarr'] }} :warning: | {{ sonarr['cf']['remux-tier-01']['trash_id'] }} | diff --git a/includes/cf/sonarr-dv-tip-dv-webdl.md b/includes/cf/sonarr-dv-tip-dv-webdl.md index b21ab150e..129eebd3a 100644 --- a/includes/cf/sonarr-dv-tip-dv-webdl.md +++ b/includes/cf/sonarr-dv-tip-dv-webdl.md @@ -1,2 +1,3 @@ !!! tip + If you (or family members you share your collection with) have a setup that doesn't support Dolby Vision then it's best to add
**ALL** the HDR Formats listed above (including **ALL** the DV ones (with and without HDR in it)).
It is important to also add the [{{ radarr['cf']['dv-webdl']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#dv-webdl) Custom Format with a score of {{ radarr['cf']['dv-webdl']['trash_scores']['default'] }} diff --git a/includes/cf/sonarr-hq-source-group.md b/includes/cf/sonarr-hq-source-group.md index e2daf3f30..00394a801 100644 --- a/includes/cf/sonarr-hq-source-group.md +++ b/includes/cf/sonarr-hq-source-group.md @@ -1,4 +1,5 @@ ??? abstract "HQ Source Groups - [Click to show/hide]" + | Custom Format | Score | Trash ID | | --------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------: | --------------------------------------------- | | [{{ sonarr['cf']['web-tier-01']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#web-tier-01) | {{ sonarr['cf']['web-tier-01']['trash_scores']['default'] }} | {{ sonarr['cf']['web-tier-01']['trash_id'] }} | @@ -7,4 +8,5 @@ | [{{ sonarr['cf']['web-scene']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#web-scene) :exclamation: | {{ sonarr['cf']['web-scene']['trash_scores']['default'] }} | {{ sonarr['cf']['web-scene']['trash_id'] }} | !!! info + :exclamation: = The reason why this Custom Format gets positively scored is because it's the only quality scene group that exists (up until now). Scene groups don't add a streaming service to their release names, so the score is adjusted to take this into account. diff --git a/includes/cf/sonarr-misc.md b/includes/cf/sonarr-misc.md index 504eb5e9f..31164fa04 100644 --- a/includes/cf/sonarr-misc.md +++ b/includes/cf/sonarr-misc.md @@ -1,4 +1,5 @@ ??? abstract "Misc - [Click to show/hide]" + | Custom Format | Score | Trash ID | | -------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------: | ----------------------------------------------- | | [{{ sonarr['cf']['repack-proper']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#repackproper) | {{ sonarr['cf']['repack-proper']['trash_scores']['default'] }} | {{ sonarr['cf']['repack-proper']['trash_id'] }} | diff --git a/includes/cf/sonarr-optional-uhd.md b/includes/cf/sonarr-optional-uhd.md index fc3d47bfa..bdc3555ea 100644 --- a/includes/cf/sonarr-optional-uhd.md +++ b/includes/cf/sonarr-optional-uhd.md @@ -1,10 +1,15 @@ ??? abstract "Optional (UHD) - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ----------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------: | ---------------------------------------------- | | [{{ sonarr['cf']['sdr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#sdr) | {{ sonarr['cf']['sdr']['trash_scores']['default'] }} | {{ sonarr['cf']['sdr']['trash_id'] }} | | [{{ sonarr['cf']['sdr-no-webdl']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#sdr-no-webdl) :warning: | {{ sonarr['cf']['sdr-no-webdl']['trash_scores']['default'] }} | {{ sonarr['cf']['sdr-no-webdl']['trash_id'] }} | - ------ + | Custom Format | Score | Trash ID | + | ------------------------------------------------------------------------------------- | :--------------------------------------------------: | ------------------------------------- | + | [{{ sonarr['cf']['sdr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#sdr) | {{ sonarr['cf']['sdr']['trash_scores']['default'] }} | {{ sonarr['cf']['sdr']['trash_id'] }} | + + --- Breakdown and Why diff --git a/includes/cf/sonarr-optional.md b/includes/cf/sonarr-optional.md index 8cec62849..d5e74b9e3 100644 --- a/includes/cf/sonarr-optional.md +++ b/includes/cf/sonarr-optional.md @@ -1,4 +1,5 @@ ??? abstract "Optional - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------: | ------------------------------------------------- | | [{{ sonarr['cf']['bad-dual-groups']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#bad-dual-groups) | {{ sonarr['cf']['bad-dual-groups']['trash_scores']['default'] }} | {{ sonarr['cf']['bad-dual-groups']['trash_id'] }} | @@ -8,7 +9,7 @@ | [{{ sonarr['cf']['scene']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#scene) | {{ sonarr['cf']['scene']['trash_scores']['default'] }} | {{ sonarr['cf']['scene']['trash_id'] }} | | [{{ sonarr['cf']['x265-no-hdrdv']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#x265-no-hdrdv) :warning: | {{ sonarr['cf']['x265-no-hdrdv']['trash_scores']['default'] }} | {{ sonarr['cf']['x265-no-hdrdv']['trash_id'] }} | - ------ + --- Breakdown and Why diff --git a/includes/cf/sonarr-streaming-services-anime.md b/includes/cf/sonarr-streaming-services-anime.md index 2428b91d0..907c5d533 100644 --- a/includes/cf/sonarr-streaming-services-anime.md +++ b/includes/cf/sonarr-streaming-services-anime.md @@ -1,4 +1,5 @@ ??? abstract "Anime Streaming Services - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ----------------------------------------------------------------------------------------------- | :--------------------------------------------------------------: | -------------------------------------------- | | [{{ sonarr['cf']['cr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#cr) | {{ sonarr['cf']['cr']['trash_scores']['default'] }} | {{ sonarr['cf']['cr']['trash_id'] }} | @@ -7,7 +8,7 @@ | [{{ sonarr['cf']['amzn']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#amzn) | {{ sonarr['cf']['amzn']['trash_scores']['anime-sonarr'] }} | {{ sonarr['cf']['amzn']['trash_id'] }} | | [{{ sonarr['cf']['vrv']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#vrv) | {{ sonarr['cf']['vrv']['trash_scores']['default'] }} | {{ sonarr['cf']['vrv']['trash_id'] }} | | [{{ sonarr['cf']['funi']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#funi) | {{ sonarr['cf']['funi']['trash_scores']['default'] }} | {{ sonarr['cf']['funi']['trash_id'] }} | - | [{{ sonarr['cf']['abema']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#abema) | {{ sonarr['cf']['abema']['trash_scores']['default'] }} | {{ sonarr['cf']['abema']['trash_id'] }} | + | [{{ sonarr['cf']['abema']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#abema) | {{ sonarr['cf']['abema']['trash_scores']['default'] }} | {{ sonarr['cf']['abema']['trash_id'] }} | | [{{ sonarr['cf']['french-adn']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#adn) | {{ sonarr['cf']['french-adn']['trash_scores']['anime-sonarr'] }} | {{ sonarr['cf']['french-adn']['trash_id'] }} | | [{{ sonarr['cf']['bglobal']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#b-global) | 0 | {{ sonarr['cf']['bglobal']['trash_id'] }} | | [{{ sonarr['cf']['bilibili']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#bilibili) | 0 | {{ sonarr['cf']['bilibili']['trash_id'] }} | diff --git a/includes/cf/sonarr-streaming-services.md b/includes/cf/sonarr-streaming-services.md index c790dc565..beb3dc565 100644 --- a/includes/cf/sonarr-streaming-services.md +++ b/includes/cf/sonarr-streaming-services.md @@ -1,4 +1,5 @@ ??? abstract "General Streaming Services - [Click to show/hide]" + | Custom Format | Score | Trash ID | |---------------------------------------------------------------------------------------------|:-------------------------------------------------------:|------------------------------------------| | [{{ sonarr['cf']['amzn']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#amzn) | {{ sonarr['cf']['amzn']['trash_scores']['default'] }} | {{ sonarr['cf']['amzn']['trash_id'] }} | diff --git a/includes/cf/sonarr-suggest-attention.md b/includes/cf/sonarr-suggest-attention.md index ed884fe26..f20caf517 100644 --- a/includes/cf/sonarr-suggest-attention.md +++ b/includes/cf/sonarr-suggest-attention.md @@ -1,7 +1,7 @@ I suggest to follow the following Guides first. -- [Quality Settings (File Size)](/Sonarr/Sonarr-Quality-Settings-File-Size/){:target="_blank" rel="noopener noreferrer"}. -- [Recommended naming scheme](/Sonarr/Sonarr-recommended-naming-scheme/){:target="_blank" rel="noopener noreferrer"}. +- [Quality Settings (File Size)](/Sonarr/Sonarr-Quality-Settings-File-Size/){:target="\_blank" rel="noopener noreferrer"}. +- [Recommended naming scheme](/Sonarr/Sonarr-recommended-naming-scheme/){:target="\_blank" rel="noopener noreferrer"}. For this Quality Profile we're going to make use of the following Custom Formats with the scores given in the table. diff --git a/includes/cf/sonarr-uhd-streaming-services.md b/includes/cf/sonarr-uhd-streaming-services.md index eb6be99ba..0f4bc110f 100644 --- a/includes/cf/sonarr-uhd-streaming-services.md +++ b/includes/cf/sonarr-uhd-streaming-services.md @@ -1,4 +1,5 @@ ??? abstract "General Streaming Services (UHD) - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------: | ----------------------------------------------------- | | [{{ sonarr['cf']['amzn']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#amzn) | {{ sonarr['cf']['amzn']['trash_scores']['default'] }} | {{ sonarr['cf']['amzn']['trash_id'] }} | @@ -20,6 +21,7 @@ | :warning: [{{ sonarr['cf']['uhd-streaming-cut']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#uhd-streaming-cut) | {{ sonarr['cf']['uhd-streaming-cut']['trash_scores']['default'] }} | {{ sonarr['cf']['uhd-streaming-cut']['trash_id'] }} | !!! warning "UHD Streaming Boost and UHD Streaming Cut Custom Formats" + Some streaming services have UHD releases that are generally better or worse than their HD counterparts. The UHD Streaming Boost and UHD Streaming Cut custom formats adjust those streaming services' scores appropriately for UHD releases. These two custom formats must be included in your profile for UHD releases to be scored correctly. diff --git a/includes/cf/sonarr-unwanted-uhd.md b/includes/cf/sonarr-unwanted-uhd.md index 9672595ba..aac5defe7 100644 --- a/includes/cf/sonarr-unwanted-uhd.md +++ b/includes/cf/sonarr-unwanted-uhd.md @@ -1,4 +1,5 @@ ??? abstract "Unwanted (UHD) - [Click to show/hide]" + | Custom Format | Score | Trash ID | | --------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------: | -------------------------------------------------- | | [{{ sonarr['cf']['br-disk']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#br-disk) | {{ sonarr['cf']['br-disk']['trash_scores']['default'] }} | {{ sonarr['cf']['br-disk']['trash_id'] }} | @@ -7,7 +8,7 @@ | [{{ sonarr['cf']['upscaled']['name'] }}](/Sonarr/Sonarr-collection-of-custom-formats/#upscaled) | {{ sonarr['cf']['upscaled']['trash_scores']['default'] }} | {{ sonarr['cf']['upscaled']['trash_id'] }} | | [{{ sonarr['cf']['extras']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#extras) | {{ sonarr['cf']['extras']['trash_scores']['default'] }} | {{ sonarr['cf']['extras']['trash_id'] }} | - ------ + --- Breakdown and Why diff --git a/includes/cf/sonarr-unwanted.md b/includes/cf/sonarr-unwanted.md index 618e2b04b..a33079a91 100644 --- a/includes/cf/sonarr-unwanted.md +++ b/includes/cf/sonarr-unwanted.md @@ -1,4 +1,5 @@ ??? abstract "Unwanted - [Click to show/hide]" + | Custom Format | Score | Trash ID | | --------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------: | -------------------------------------------------- | | [{{ sonarr['cf']['br-disk']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#br-disk) | {{ sonarr['cf']['br-disk']['trash_scores']['default'] }} | {{ sonarr['cf']['br-disk']['trash_id'] }} | @@ -7,7 +8,7 @@ | [{{ sonarr['cf']['x265-hd']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#x265-hd) :warning: | {{ sonarr['cf']['x265-hd']['trash_scores']['default'] }} | {{ sonarr['cf']['x265-hd']['trash_id'] }} | | [{{ sonarr['cf']['extras']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#extras) | {{ sonarr['cf']['extras']['trash_scores']['default'] }} | {{ sonarr['cf']['extras']['trash_id'] }} | - ------ + --- Breakdown and Why diff --git a/includes/docker/x265.md b/includes/docker/x265.md index f06621d33..9a3daebba 100644 --- a/includes/docker/x265.md +++ b/includes/docker/x265.md @@ -1,4 +1,5 @@ !!! quote + x265 is good for 4k stuff or 1080p if they used the remuxes as source. If the media isn't source quality/remux, then there will be a loss of quality every time. Also, once you go x265, typically that file is done. diff --git a/includes/downloaders/basic-setup.md b/includes/downloaders/basic-setup.md index e207d1754..079ac4c10 100644 --- a/includes/downloaders/basic-setup.md +++ b/includes/downloaders/basic-setup.md @@ -1,13 +1,15 @@ This basic example is based on the use of docker images !!! tip "" + Keep in mind the path are setup so it works with hardlinks and instant moves. More info [HERE](/Hardlinks/Hardlinks-and-Instant-Moves/){:target="_blank" rel="noopener noreferrer"} {! include-markdown "../hardlinks/bad-path-suggestion.md" !} - + !!! warning "" + But you're able to change this, by not using the pre-defined/recommended paths like: - `/downloads` => `/data/downloads`, `/data/usenet`, `/data/torrents` diff --git a/includes/downloaders/path.md b/includes/downloaders/path.md index 346d3c6e8..6ddad9312 100644 --- a/includes/downloaders/path.md +++ b/includes/downloaders/path.md @@ -1,6 +1,7 @@ This basic example is based on the use of docker images !!! tip "" + Keep in mind the path are setup so it works with hardlinks and instant moves. More info [HERE](/Hardlinks/Hardlinks-and-Instant-Moves/){:target="_blank" rel="noopener noreferrer"} diff --git a/includes/flowcharts/radarr-flowchart.drawio b/includes/flowcharts/radarr-flowchart.drawio index c8abd76ec..d04c90329 100644 --- a/includes/flowcharts/radarr-flowchart.drawio +++ b/includes/flowcharts/radarr-flowchart.drawio @@ -1 +1 @@ -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 \ No newline at end of file +7V1bd6O2Fv4t5yGrMw94AeJiHhNn3Jlzpm06SaedvpyFDYk5g40LOJf59UcSCIMQRmAQTky6VsfIWAhpf1v7pr0vwGz9/HNob1e/BI7rX6iy83wBri9U+Kfp8B/U8pK0KNbUSloeQs9J2/YNt94PN22U09ad57hR4cY4CPzY2xYbl8Fm4y7jQpsdhsFT8bb7wC8+dWs/uKWG26Xtl1v/9Jx4lbROVXPf/tH1HlbkyYqRvt/aJjenbxKtbCd4yjWBDxdgFgZBnHwKFv9DL6DKvr2As4jvS35JJmr/q/XzzPXhTM+TS/gh/XXhW9mj3zV0N3F+UPOKH8z/2n3849uvqw93V7///fMP2b768aeULuWj7e9cMjzDh/1d3QewW9V4QJ+vA3jPS7CD/3+ycTO+ZRGSG3abONgtV66D+oKLG1yAefmudx/hpLoRmo/fd7bvxS/kHjjq/PPSyY1fyIrBN4HEAS+unlZe7N5u7SX65gkSKGxbxWs0twr8aEfbhGLuvWc4GnCVrZCMLr678XJFLuIw+O7OAj8I8UOANptqV3r2DSEN1LJ1Q2/txm6InuxtHmAzSOdobq89HyHhqxs69sbOhp9fmXSxHt0wdp9zTelK/ewGsPcQToecfisZxsRKqe6FNE1TqnvaE62ip22rPMGSRjsFykPWv5qnr5REGpCL0Q25aP+BT1cVQ96OBFBFAEBWT275Lcby0wu1cS4Ri4ZXCz9Yfi+uThjsNg5aFrwAcHbCl7/Sr/DFN/TNRCeX18/5O69fyNWzF/+V+5z7Fbza/whdvGSLbYcxGdkm2LilZQb4OWS7UtTq5b33g6fLjQd3Ay/YZMN35p5P3rOSAKJgFy7dA1OsTtMN0Q4f3Lgeiq5T2OvK9BS6PhznY3HrY1FG+tObwEM4zOhQocgQGBR1Ja+U/iy//1A9Tac1HSWvXOoIU2r2Qu2JV1G6pd4q4oDNOZ4yn8vwL0+0GaF+I6RTSbQZQHKY+FaARAVAimRcpvMjKLiWMHVOwsyxMRYXI21H0q8Jt9H9n2mCIhGamjyRc39KO9pWFIq4NVUwcZuDEnctJ62iZKWGkusJlY0r+SCu2rNnwg1rUaBoJwUDSaP5uGG15OPlrkylK2L/I3LD35g6U17KhIohIUHjn12QCIwgAXC+KZElP8Lb5Ct/F9ovZUn0Qr0qN/754eqgXOp7m+/JuFZxjHTWS/SK6jwO7WglJdrtxNvcQzF4/sV2oMoKP4T4gxS58W4r/ZOoP9I2DO49H+rC6Pdg5UgLPE7pyV3sH3WXo7X/LnwbPrygQh4g1CIHyfGCItprZOo2InRDBgJnwS+0fwCa0kQS70Lk1jWTwoiuc4rccnORG17myL0Jr9cYvL6Aj/1CEzAsgtBxQykFziX+dfhOkvLt7xPQZPBhw+we/5VhlodRRwNIOp57Gy9auc6/entCbx3D9UV7xQr9f7aL4mANP8yDEG5nUW8PjVd2nOnf9iZ6ckNklzHsNYL1ZhFtc69c4m8nQ0cdDEFe2MvvD5jV5W8PHxbvIFwhAGVV1pIPMnsuv324FTlTWddN1krowGp34apljYOa8faG6jajXbj3QYhQC7ds7xHtMojfo5Zh3uGkJucmiCJv4bv4d+uFt8HCeYRny8XDeJuTxOi6kr+oSHLAHAZ5FdAHQ+fji1xirIzlVvmQoPpaJ7u3jutMzHuRGAmeJycSG9dXynx+0UAkjpKrqyBGgge4VlHjA9RDPHf/xNQUmnUBm0Ioj9qbB9+92TdeOTaSwdK3Rxc3dgy/SXRyVcamd997QNdL2D3+DRK9vaXtX6ZfrD3HQbPdjbBuUlqoIutlA7kqM6R1tYW0zieam3KJrJAB4Da9DMJ4FTwEG9v/sG+lLC/7ez4HwTad8P+5cfyS2lPsHdxLi8RYtu9Vk1raC2RLDNJDfxdlMzjbCEMbk7oygSu8JnBgcdpYUpqRJ7KlUk41Re/GvqJotJ2cJrIKowicRczRyW1bdEN04EmqSmmpaqql7gk36ZP6PXlAcH8fuSdgl/nj9RhmdgzLzGEVfTpaX452eGomr8OzG+tLH0T+xV3vnuGP3ikyct9ip/fN+xMn9xANGlG6hEa9PdYSaY1YaIoFwxwWCnzSjmoMIe208f7z0kAq/9S6s1jRBK2kpLYhEO2lK1XjlK6Il6f3CAOg066po0Wnrt2rQGaY3AXGDrSNA2gRc9Al7XeiDgCTl2CnnAQ7mMtVVwvRCFaxyyMcsKpxqOOeYw/A6wus6ZDIW0fodAMOnRccvLqyKHCUwhu1TsBBx+HQUQ59YwEwsFBjRUZfSBEmPmTX1PTt8wXLkHl7d/nljteaGYcetuF1KlPP57MZXBiWMNxQwqKkbMu8lk0Tc4KYwMtCQ6g0Ia6C0PsBO7d9MthMCM9dZbZPwyiavzR9f9OXlLolvSPpnZZnLJkhvassw6TWl2GSmMqOoEtFraDLXLj3yn7EXjPsoaDVWahkQpUJfb1zvIB5C9ZKETtLfNiMG3bbLdQZovI32JqU9Lw/e/BKw8pTwrzDGlElcX927+NiC6HkA7toF/RNa6cA8GqnvUWmaywZZDyZIGT5FWX45VebLn/Cqejlvw78BXrVr16ENqHS97NgvYX7E3Z+s4M09vc67qO3dKPo9bMjocecFIU35q4/aqoW4iCjhWQhO3ZsS/5u6SHH/yYmE5DtjOY+iCdtiumGJFCi0JQjT7ieOP4EXqEdc+06XrKpyr63CO1UUofzo8pBvMK76n2yQujm9cINo/026gSbn+L97nz99QJHbmSULKekmlBqcZQodqHYtGa9ic5654hxp8zoccMxN0uOkT1y9KM4qqEucFhLXXcuozvLvDCv0b39vi3P8Hje9kuwCHDk1Sm/a1dL+8V92Pl2eOJvCzlPu9edygCYp/Uy5b74XkVVJ1r+DxiN3ku/xm+Xi6TK8eP4ZVtUY+zt1ocqJNYq1fnjxpngGydwi4qro4VSRl/WiuhALysJ7wLT5F8NtIwla6FtDbhJ1ASkJrNX0zwKPyXhB2jDCz/j6YJXEtj49k4XHE8f46mB8dTAYKM94tRAXctAcfrHDKscEtV5BH0xxioXEy+jwKWbgeY9Ebnm6J9gF7+VWb7EooPtPNqbJc7zQ6z498Ud54j3LLecfcw+OuzJFXzfhTwKdNqyC8riaGcR9X2EW15+/gx/8vH6S1kSEnySO5QyXJAHtYqe1Izcmo3Rkzx0rJjFIABwksGTGitjx6hnjXrWeIp71McE6mNDUMfgat0QL31uZ8qHmOOzO5pe6abohL/ya4cC157vPGH5hLy4g+UH3SBvEXZBONQkn/JsHgmsdgcN80aww3Fsr5XlDUjnbMseh9nq9KdEKLHy2hJHbtKFJjbYW49ST/9STwKlxOLJZ4kXLZeMHVcD8NzcGfhsXcGb0YG9F1hFe6/KsPcyvRalFC3dBdFMS8bd8imZsvyAYUw3FoKwyl+TsKzXHU5FE4rWDWlIAKgnF11ePorFPEFFL/S7W3sd7TYP7+HXd1+ZtJAYjavPTLFJTkmUhldNP33QSq/BeL14P3OyAMM/UZIHc+deED29g1rj9ef3F1nQKIMIo2ViwwygpClLSjqOQR2skvOIctU4/pGeVr1cimn0tDaEjG4ZE/UUc2brdecDR2/ricjKo7e1PR2N3tbR28og7tHbOnpbR2/raHcU7W0d3aSH3KSv3iMx+jdPdWVG/+br8W9yzyz/mZDjXIF1LdWbYPc723CusNOd/2owCKTwSoOh3MRC2MVLj0xx2Ko0xH0gXwUBLu0+m/f26lVkBgdgodKtR5PZ6Pl9VZ5fSTd1Hvsz0/urn8qZtcNem47JsT9S5/Ahdfq8AxtNjberlmkdxW1Eu70k2KjIcMLwmxznAlNHF1hjFkR8WyK8xu39X7VZXRrxrKZ7atJyG4ThixiXVOqKwP6cjZvoYBckh9EFSXrEGHLBi3AwcoLodFs7iuIVxMbDinkf5hl34c5FFrP59d2thD50oW+1nqnb796WOVbhWkeFvnyZzG1Tnw5LmTsVmy2P6s+vjL4uk9Yrl37nM0sDjTYWpvTbZzlEOgZSAozS5YKLIRo8dSFef3VEkcVZRFdiTEMVu6vEeGTZCLq6A0273CVUgGZN5NxfMYwJkq7YshGGOkLlAFS6K7fVAnPt4WPywodkrxcMn1K5CV74KKXNBoiFCytB9xuES0atmmXk6FWeWFPrIM12CphcGegjAaFwl/YlKdj7RkTRfKjQ1YJ4AUH1I6mWYEDo5wGIbP8o7B611RIJkJQCiA6XjOwMQu3hYnHvH7IYtGg03yelQJripdSRKhgvxnngpUWp1LYVSU8AL1Pu3YW3UuSReKHkJMUE7eBC9aPKpli0sFLVvV20NNklchqNvN+ivqVC21SYXoO65ZbT6vFhCMIHKBK2pnYjf6m6WICY56a+N9samCTdCmy9bR2E4uuhYYqBBqB4fumsOvfeQYgz68gq1FmdikXKmWnu5yF4KTJvGWJNlKF4mjfvajJVZkU5iAF+sUxt0m3f0GK5+N8wtBqYcAe3Ox+xMXHrNIKQJSlWR0YzxSrCRzUHhc+ZmNBa7Ez8MGi3g/W6MwFO/JCi3b3rPPLhrQl0sjVJQKHFPrEeTfPMLGxHO/FbBhH0Bx0CiHrkCPJeKqpyEDl6N8jR6DRA9P7WN3LOw9omdAMR6/cngb0ng5xSnh6zrcwmAbXYkzbVudAB1wcfFCe3bdEN0YEhq1QxomlqotmjLemSE3u9VRuiozQvy1Gs1B1DFiYiMbZSGr1MntWuNpGeW7/xuMBBBJNvdcrzOT3FbFnWmUVuNt1uetWh+nOP8gp0pARw70a6gjyHI+jz0FBbGxZ0LS8JmrUd9yzRWedh9G5sJuha1xEr5U15pTxyIKxvOKlyV/GdpZ6UqVjEkIHnEPMJncJKK92XZSpI2y4kZJzmKzvkhQ/T0OLZdosTVuEMuighjzxbhXC8MzuKcWl7Gpfnlga3JKEAwFs+sbeUyVY5nfZbZKCDhim2de63Z6CKzBuPogsTSDqSQACgWTEnA61Wk7tmsYpyJv7CCmlDqaFrbmC1cvUP7y8k/oHebU+aYrDsssSs09YQpRhaEWL9CfV//H339EP71TfjrQZuFEUGj4akngV6ut9eBOjaR6CHO45FmM+D2khoGYsXL/T5YE60NDXb0hGdUlpBvlJVP3x/UysvH3SVMzFvtVCHB9fhubDLXFXuwzKCNj7yHELZbZVxqh8ACruprvH5XzrDznlLjZ1FjLWKYusCO9788q//hv88xtdP8t/x9p8Q/B5JgNtjKeikmUQHhwGztaBIRWmqWm+HA9iIKVt/f/2thJkyQRedY1t03/r5IbS3qwmiqOUKUtokdsM1yruO6JlpoWpghUrdnPx+tRQ6Jb9a2k0lOTbIrqVRtvvMEJkzRgGGLYo+SNLGFMVezfOIzmDxsRz/OawJpCxJbsnn2ovvouxEQG8bMV7KnNCPGK5R4n7KPHmHVbz9aCH8cGRmDkm4dMybZYyyPJt1xhgBdaxHU8Qxxq8v0ifl4/3NYj2ff7uc3Xz9+/vqTOwhJx4+vefU3RgTeXWqDMy9y4WqXjx90PpcnARU63BPPfs4s0NTIwNswwAVcGIM8DyCPE78ZGPXDJD39EgG5t4ZYGf8T+mN/3Uba8vISIo6kCJMlSgdqapvny9Y+UdJZKw8J2yRJ+Xt3Rf79iP80c84ypbnF/Uxup0F++5/URey63/afPOceQjuVo+f/vPV+7f1+2UipXFE7PLkYeVOhkpvJ/P5bGZZ5f3hg4H+62h/UKn9AUG0vENoU+YWITDWVi3HtozmIW4hgDrlJhmM+u59SQFMSyqPa6m0XeXWsigADB2hXCY7+hRPBS0cNAwdeS6Nc0tWBSV5kkyU+ycfx0yRpEx5aPh3aMWq6apnFQWUjZ2jhsK/A9EeQF0Vp6IwmROPjYafOTU8fiMyT3Yt32qgWnTCtHjTCwHe9EI5EmLF4pK2o80t9NkJXW2Z8rHclTYVm/SRpNMcuVkLbkbHD6nGwILWmaTrOO2Mtx2bWwCvvZlAufeAcKOC6psfSZNreuqZ+RE9d1Qzm/O+Ur57ZWjmdx7nYQQGIzIZmdjgBRIfWMv8CJR7P08IAEX205ayX7knTZ1YVk5n1oQyQzB63o7Qaw1UfiIfgkprCANruWUxv8wc+9Nyh9VWWzNCoaY5wOssE6PlooRseYJWaIJuyfboalV0+ve+E0mVgTCKfB0xucElQOL4eOMioMDMrScgAnLrv6Yo/ZeierMbTqgooFh9TyxjzA6ej/JfC9YISmXkBueF5xGTP6RNL1/nRDYLnHii6lqtfBk3KE/SnaacAb3/ag1y4VQepe5mQauN80iYxsQk1LzvTZtYupFxT4WPe4pLLUEOXI2CZ5uQFnq5taG563kYG4cOtREc2MqbeodgWUgUjZzjaZTnBbQOoqHzhACUHFDbpyOx+pI9D51SHyXPlkp5zmgsUwnAdWsCTIbOPhjj5DFEvgHGedppJgQwzkNAF6uhay0LTFJ1KkFvJ+TZYWnnlY+lif7WNv5DqITBpH/uTEqCak1OjbyVXzOL8kXrypMKlSq11FFXiZVMnfmc6rJ/B+8/+kw3G8hnYpR+nSK/KEnesPK+E7qcSutyYZJZ01HfEVTjQZ3uTuuKzOPCZlXjcd03eFxX5RQ6pqLOBiFemFdZi6EF7XmhYlqHe+rbhcawCo6GjI4MGVna6cGY45kk+cssF5plFBgksgoKcavBTjv0i/Gyvwy9ffM/cwKm+t4gZxRPAKmGMVGnYP99O2Z4OHwLkFkRZOAth5aOUiJv6QlalxaY0oXNB8fAgldtmOLO6XIIySIMU/vj43T5lfaGKVMvxFhpbHvQIFEDB3PQjpyzzVlzyjgyeBA+OBOb/mnniRaQD/AglgWkAyyKlFrrss90T7oFJqrYM5oMtWvkgNwJUfUiBxw+FRAxeQ7MAtuYABuua5fpNvjCUBuaJtuzPN7EHQS7/Zfytqh4Jt6kQPWSHONhslasNqHXPLuC3XYmI7Ks9klmPcd7LECrIlegolXkCqSSE7bpiJ3RENiaotnVD1yQhk/3iNBWqDolTj2IRmG/oLKXuNC47KFxrV17kzZNckkFF9XJCZkt9hqx/M0iQv+8+/DobtAD0ABegh1ikPYjrqB5kVTKnH+0Q+cJwgde/+I6Hmq/8e0XN8RDtnE6R3vzU4x/unFwic17XF7TfYbPwtfXWcnNj9dfkGoPBzJDd/iRmz34ycNU4Htr/Lqo4Gfk+mhgT8ljYMtPeBz2AvcK2Z0qI2ymfScf4U628QPbQV1BRhklT4pXHpo7248CvFo7DIB0oMnMp3XRURsq0v5+Upm5MWvGlFdsfb3EWCKbt/3el5jakqXfRS6il2gZhC4mk42Du1svkNyENilIYogSZ7soDtbwwzwhEgSdzZ68CHgTuMRuFON+c4SaPM9xIy/EX8Hn7fx4/8xt6D66GzYdI1YL2cAOSmfp520QRR4EQ1NSpUSRZsk/K4XFCtGBP1tocnUVxGiOU/kByYHe0vYvfe8ByQprz3GwdERJlI7uTh2NJbJO1QUwOsotqtDJkEy9LGpqMkPWLOXY5cssGgZBnN9IkWj/S+CgvLof/g8= diff --git a/includes/french-guide/radarr-cf-french-hd-bluray-web-scoring-en.md b/includes/french-guide/radarr-cf-french-hd-bluray-web-scoring-en.md index 2e1f62185..29f157d17 100644 --- a/includes/french-guide/radarr-cf-french-hd-bluray-web-scoring-en.md +++ b/includes/french-guide/radarr-cf-french-hd-bluray-web-scoring-en.md @@ -1,4 +1,5 @@ ??? abstract "HQ Source Groups - [Click to show/hide]" + | Custom Format | Score | Trash ID | | --------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------: | ---------------------------------------------------------- | | [{{ radarr['cf']['french-hd-bluray-tier-01']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#fr-hd-bluray-tier-01) | {{ radarr['cf']['french-hd-bluray-tier-01']['trash_scores']['default'] }} | {{ radarr['cf']['french-hd-bluray-tier-01']['trash_id'] }} | @@ -8,7 +9,9 @@ | [{{ radarr['cf']['french-scene']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#fr-scene-groups) | :warning: {{ radarr['cf']['french-scene']['trash_scores']['default'] }} | {{ radarr['cf']['french-scene']['trash_id'] }} | !!! tip + :warning: French Scene groups are included as a fallback if you really want MULTi release despite a potential loss in quality. Either score the CF to `{{ radarr['cf']['french-scene']['trash_scores']['default'] }}` (default) or `0` depending on what you want to achieve. ??? info "Original mix (optional)" + {! include-markdown "../../includes/cf/radarr-cf-hd-bluray-web-scoring.md" !} diff --git a/includes/french-guide/radarr-cf-french-hd-bluray-web-scoring-fr.md b/includes/french-guide/radarr-cf-french-hd-bluray-web-scoring-fr.md index 918a9ae69..f84bb118a 100644 --- a/includes/french-guide/radarr-cf-french-hd-bluray-web-scoring-fr.md +++ b/includes/french-guide/radarr-cf-french-hd-bluray-web-scoring-fr.md @@ -1,4 +1,5 @@ ??? abstract "HQ Source Groups - [Cliquer pour afficher/masquer]" + | Formats Personnalisés | Score | Trash ID | | --------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------: | ---------------------------------------------------------- | | [{{ radarr['cf']['french-hd-bluray-tier-01']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#fr-hd-bluray-tier-01) | {{ radarr['cf']['french-hd-bluray-tier-01']['trash_scores']['default'] }} | {{ radarr['cf']['french-hd-bluray-tier-01']['trash_id'] }} | @@ -8,7 +9,9 @@ | [{{ radarr['cf']['french-scene']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#fr-scene-groups) | :warning: {{ radarr['cf']['french-scene']['trash_scores']['default'] }} | {{ radarr['cf']['french-scene']['trash_id'] }} | !!! tip + :warning: Les groupes de la Scène française sont inclus comme substitut si vous voulez vraiment une version MULTi malgré une éventuelle perte de qualité. Vous pouvez lui attribuer un score de `{{ radarr['cf']['french-scene']['trash_scores']['default'] }}` (par défaut) ou de `0` selon ce que vous voulez obtenir. ??? info "Mix original (optionnel)" + {! include-markdown "../../includes/cf/radarr-cf-hd-bluray-web-scoring.md" !} diff --git a/includes/french-guide/radarr-cf-french-remux-web-scoring-en.md b/includes/french-guide/radarr-cf-french-remux-web-scoring-en.md index 869b41bf2..24cea1492 100644 --- a/includes/french-guide/radarr-cf-french-remux-web-scoring-en.md +++ b/includes/french-guide/radarr-cf-french-remux-web-scoring-en.md @@ -1,4 +1,5 @@ ??? abstract "HQ Source Groups - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------: | ------------------------------------------------------ | | [{{ radarr['cf']['french-remux-tier-01']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#fr-remux-tier-01) | {{ radarr['cf']['french-remux-tier-01']['trash_scores']['default'] }} | {{ radarr['cf']['french-remux-tier-01']['trash_id'] }} | @@ -8,7 +9,9 @@ | [{{ radarr['cf']['french-scene']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#fr-scene-groups) | :warning: {{ radarr['cf']['french-scene']['trash_scores']['default'] }} | {{ radarr['cf']['french-scene']['trash_id'] }} | !!! tip + :warning: French Scene groups are included as a fallback if you really want MULTi release despite a potential loss in quality. Either score the CF to `{{ radarr['cf']['french-scene']['trash_scores']['default'] }}` (default) or `0` depending on what you want to achieve. ??? info "Original mix (optional)" + {! include-markdown "../../includes/cf/radarr-cf-remux-web-scoring.md" !} diff --git a/includes/french-guide/radarr-cf-french-remux-web-scoring-fr.md b/includes/french-guide/radarr-cf-french-remux-web-scoring-fr.md index 77cd4c219..4338e6be1 100644 --- a/includes/french-guide/radarr-cf-french-remux-web-scoring-fr.md +++ b/includes/french-guide/radarr-cf-french-remux-web-scoring-fr.md @@ -1,4 +1,5 @@ ??? abstract "HQ Source Groups - [Cliquer pour afficher/masquer]" + | Formats Personnalisés | Score | Trash ID | | ------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------: | ------------------------------------------------------ | | [{{ radarr['cf']['french-remux-tier-01']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#fr-remux-tier-01) | {{ radarr['cf']['french-remux-tier-01']['trash_scores']['default'] }} | {{ radarr['cf']['french-remux-tier-01']['trash_id'] }} | @@ -8,7 +9,9 @@ | [{{ radarr['cf']['french-scene']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#fr-scene-groups) | :warning: {{ radarr['cf']['french-scene']['trash_scores']['default'] }} | {{ radarr['cf']['french-scene']['trash_id'] }} | !!! tip + :warning: Les groupes de la Scène française sont inclus comme substitut si vous voulez vraiment une version MULTi malgré une éventuelle perte de qualité. Vous pouvez lui attribuer un score de `{{ radarr['cf']['french-scene']['trash_scores']['default'] }}` (par défaut) ou de `0` selon ce que vous voulez obtenir. ??? info "Mix original (optionnel)" + {! include-markdown "../../includes/cf/radarr-cf-remux-web-scoring.md" !} diff --git a/includes/french-guide/radarr-cf-french-uhd-bluray-web-scoring-en.md b/includes/french-guide/radarr-cf-french-uhd-bluray-web-scoring-en.md index de735b697..8ab480bdf 100644 --- a/includes/french-guide/radarr-cf-french-uhd-bluray-web-scoring-en.md +++ b/includes/french-guide/radarr-cf-french-uhd-bluray-web-scoring-en.md @@ -1,4 +1,5 @@ ??? abstract "HQ Source Groups - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ----------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------: | ----------------------------------------------------------- | | [{{ radarr['cf']['french-uhd-bluray-tier-01']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#fr-uhd-bluray-tier-01) | {{ radarr['cf']['french-uhd-bluray-tier-01']['trash_scores']['default'] }} | {{ radarr['cf']['french-uhd-bluray-tier-01']['trash_id'] }} | @@ -8,7 +9,9 @@ | [{{ radarr['cf']['french-scene']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#fr-scene-groups) | :warning: {{ radarr['cf']['french-scene']['trash_scores']['default'] }} | {{ radarr['cf']['french-scene']['trash_id'] }} | !!! tip + :warning: French Scene groups are included as a fallback if you really want MULTi release despite a potential loss in quality. Either score the CF to `{{ radarr['cf']['french-scene']['trash_scores']['default'] }}` (default) or `0` depending on what you want to achieve. ??? info "Original mix (optional)" + {! include-markdown "../../includes/cf/radarr-cf-uhd-bluray-web-scoring.md" !} diff --git a/includes/french-guide/radarr-cf-french-uhd-bluray-web-scoring-fr.md b/includes/french-guide/radarr-cf-french-uhd-bluray-web-scoring-fr.md index e6b2132b7..5f65709d7 100644 --- a/includes/french-guide/radarr-cf-french-uhd-bluray-web-scoring-fr.md +++ b/includes/french-guide/radarr-cf-french-uhd-bluray-web-scoring-fr.md @@ -1,4 +1,5 @@ ??? abstract "HQ Source Groups - [Cliquer pour afficher/masquer]" + | Formats Personnalisés | Score | Trash ID | | ----------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------: | ----------------------------------------------------------- | | [{{ radarr['cf']['french-uhd-bluray-tier-01']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#fr-uhd-bluray-tier-01) | {{ radarr['cf']['french-uhd-bluray-tier-01']['trash_scores']['default'] }} | {{ radarr['cf']['french-uhd-bluray-tier-01']['trash_id'] }} | @@ -8,7 +9,9 @@ | [{{ radarr['cf']['french-scene']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#fr-scene-groups) | :warning: {{ radarr['cf']['french-scene']['trash_scores']['default'] }} | {{ radarr['cf']['french-scene']['trash_id'] }} | !!! tip + :warning: Les groupes de la Scène française sont inclus comme substitut si vous voulez vraiment une version MULTi malgré une éventuelle perte de qualité. Vous pouvez lui attribuer un score de `{{ radarr['cf']['french-scene']['trash_scores']['default'] }}` (par défaut) ou de `0` selon ce que vous voulez obtenir. ??? info "Mix original (optionnel)" + {! include-markdown "../../includes/cf/radarr-cf-uhd-bluray-web-scoring.md" !} diff --git a/includes/french-guide/radarr-french-advanced-audio-information-en.md b/includes/french-guide/radarr-french-advanced-audio-information-en.md index c3391fb58..2e4456ab2 100644 --- a/includes/french-guide/radarr-french-advanced-audio-information-en.md +++ b/includes/french-guide/radarr-french-advanced-audio-information-en.md @@ -1,4 +1,5 @@ !!! warning "Information regarding HD audio" + It should be noted that many problems can arise from this profile if you use the HD audio Custom Formats, as: - French Scene rules assert that the French audio should be the first (default) audio in a MULTi release. @@ -13,4 +14,5 @@ - The final score for the release can be lower than the pre-import. !!! tip + This is why the Group tiers exist; it tries to get hold of the groups that tend to get the best original and French audio for a release. However, it is not infallible, and, once again, a movie may not have an equivalent FR audio track to the original audio's highest one. diff --git a/includes/french-guide/radarr-french-advanced-audio-information-fr.md b/includes/french-guide/radarr-french-advanced-audio-information-fr.md index 68018f637..ff58f0bbf 100644 --- a/includes/french-guide/radarr-french-advanced-audio-information-fr.md +++ b/includes/french-guide/radarr-french-advanced-audio-information-fr.md @@ -1,4 +1,5 @@ !!! warning "Informations concernant les audios HD" + Il convient de noter que de divers problèmes peuvent survenir avec ce profil si vous utilisez les formats personnalisés de l'audio HD, car : - Les règles de la Scène française stipulent que l'audio français doit être le premier audio (celui par défaut) dans une version MULTi. @@ -13,4 +14,5 @@ - La note finale de la release peut être inférieure à celle obtenue avant l'importation. !!! tip + Les Formats Personnalisés de Groupes P2P existent pour cette raison ; ils essaient de regrouper les groupes qui ont tendance à obtenir les meilleures pistes audio originales et françaises pour une sortie. Cependant, cette approche n'est pas infaillible et un film peut ne pas avoir une piste audio FR équivalente à la piste la plus élevée de l'audio original. diff --git a/includes/french-guide/radarr-french-audio-version-en.md b/includes/french-guide/radarr-french-audio-version-en.md index 7b64174c6..29c3e3fd6 100644 --- a/includes/french-guide/radarr-french-audio-version-en.md +++ b/includes/french-guide/radarr-french-audio-version-en.md @@ -1,4 +1,5 @@ ??? abstract "Explanation - [Click to show/hide]" + | Acronyms | French Explanation | English Explanation | | -------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------- | | TRUEFRENCH or VFF | Version Francophone Française (doublage réalisé en France) | Full French version (dubbing done in France) | @@ -16,13 +17,16 @@ - *[2] It should be noted that SUBFRENCH is included in this Custom Format. However, SUB often means that the subtitle was embedded inside the picture (hardcoded). French releases tend to mix the two, leading to some VOSTFR being labelled as SUBFRENCH and SUBFRENCH as VOSTFR.* !!! tip "Indexers renaming in Prowlarr" + Some Indexers in **Prowlarr** can rename `MULTi` releases to `MULTi.TRUEFRENCH` or `MULTi.FRENCH`. It is not recommend to use such a feature along with those Custom Formats as it can lead to false positives from the VFF, VFQ and VQ Custom Formats. !!! tip "MULTi definition per indexers" + Some Indexers in **Radarr** will let you choose which audio is normally included inside a `MULTi` release as an option. You should choose only `Original` and `French` if you decide to use it. This option should only be used for French indexers where you are sure that `MULTi` does include both `Original` and `French` audio. Doing so in more "international" indexers can create to false positive with the French Audio CFs. ??? abstract "French Audio Versions - [Click to show/hide]" + | Custom Format | Trash ID | | -------------------------------------------------------------------------------------------------- | ----------------------------------------------- | | [{{ radarr['cf']['french-vff']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#vff) | {{ radarr['cf']['french-vff']['trash_id'] }} | diff --git a/includes/french-guide/radarr-french-audio-version-fr.md b/includes/french-guide/radarr-french-audio-version-fr.md index cba79e7e4..35d910b27 100644 --- a/includes/french-guide/radarr-french-audio-version-fr.md +++ b/includes/french-guide/radarr-french-audio-version-fr.md @@ -1,4 +1,5 @@ ??? abstract "Explications - [Cliquer pour afficher/masquer]" + | Acronymes | Définition française | Définition anglaise | | -------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------- | | TRUEFRENCH or VFF | Version Francophone Française (doublage réalisé en France) | Full French version (dubbing done in France) | @@ -16,13 +17,16 @@ - *[2] Il est à noter que le SUBFRENCH est inclus dans ce Format Personnalisé. Néanmoins, SUB signifie souvent que le sous-titre a été intégré à l'image (hardcoded). Les sorties françaises ont tendance à mélanger les deux, ce qui fait que certains VOSTFR sont étiquetés comme SUBFRENCH et SUBFRENCH comme VOSTFR.* !!! tip "Indexers renaming in Prowlarr" + Certains indexeurs dans **Prowlarr** peuvent renommer les versions `MULTi` en `MULTi.TRUEFRENCH` ou `MULTi.FRENCH`. L'utilisation de cette fonction n'est pas recommandé, car elle peut entraîner des faux positifs avec les formats personnalisés VFF, VFQ et VQ. !!! tip "MULTi definition per indexers" + Certains indexers dans **Radarr** vous permettront de choisir l'audio qui est normalement inclus dans une version `MULTi` en tant qu'option. Vous devriez choisir seulement `Original` et `French` si vous décidez de l'utiliser. Cette option ne devrait être utilisée que pour les indexers français où vous êtes sûr du fait que `MULTi` inclut à la fois l'audio `Original` et l'audio `Français`. L'utiliser avec des indexers plus "internationaux" peut créer un faux positif avec la recognaissance des CFs des versions françaises. ??? abstract "Versions françaises - [Cliquer pour afficher/masquer]" + | Formats Personnalisés | Trash ID | | -------------------------------------------------------------------------------------------------- | ----------------------------------------------- | | [{{ radarr['cf']['french-vff']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#vff) | {{ radarr['cf']['french-vff']['trash_id'] }} | diff --git a/includes/french-guide/radarr-french-multi-audio-en.md b/includes/french-guide/radarr-french-multi-audio-en.md index 99c8e4293..800b579a1 100644 --- a/includes/french-guide/radarr-french-multi-audio-en.md +++ b/includes/french-guide/radarr-french-multi-audio-en.md @@ -1,4 +1,5 @@ ??? abstract "Multi audio - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------: | ---------------------------------------------- | | [{{ radarr['cf']['multi-audio']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#multi-audio) | {{ radarr['cf']['multi-audio']['trash_scores']['default'] }} | {{ radarr['cf']['multi-audio']['trash_id'] }} | @@ -10,10 +11,12 @@ - **{{ radarr['cf']['multi-audio']['name'] }}:** This is a custom format to help Radarr recognize MULTi audio releases. !!! tip + You can safely replace the original [{{ radarr['cf']['multi']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#multi) Custom Format from the Guide with it. - **{{ radarr['cf']['french-audio']['name'] }}:** This is a custom format to help Radarr recognize release with French audio. It is optional and only gives a small boost if the release indeed possesses French audio. - **{{ radarr['cf']['multi-french']['name'] }}:** This is a custom format that will rename your file with `Multi-French`. !!! question "How it works" + When Radarr finds a release with `MULTi`, it will allocate a {{ radarr['cf']['multi-audio']['trash_scores']['default'] }} score to it thanks to the **{{ radarr['cf']['multi-audio']['name'] }}** custom format. If the release contains at least both the original audio and French audio, it will be renamed by the **{{ radarr['cf']['multi-french']['name'] }}**. Allowing the release to keep the {{ radarr['cf']['multi-audio']['trash_scores']['default'] }} score from the {{ radarr['cf']['multi-audio']['name'] }} Custom Format. diff --git a/includes/french-guide/radarr-french-multi-audio-fr.md b/includes/french-guide/radarr-french-multi-audio-fr.md index 8b725a949..c634313a9 100644 --- a/includes/french-guide/radarr-french-multi-audio-fr.md +++ b/includes/french-guide/radarr-french-multi-audio-fr.md @@ -1,4 +1,5 @@ ??? abstract "Multi audio - [Cliquer pour afficher/masquer]" + | Formats Personnalisés | Score | Trash ID | | ------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------: | ---------------------------------------------- | | [{{ radarr['cf']['multi-audio']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#multi-audio) | {{ radarr['cf']['multi-audio']['trash_scores']['default'] }} | {{ radarr['cf']['multi-audio']['trash_id'] }} | @@ -10,10 +11,12 @@ - **{{ radarr['cf']['multi-audio']['name'] }}:** Il s'agit d'un Format Personnalisé pour aider Radarr à reconnaître les releases aved plusieurs audios (MULTi). !!! tip + Vous pouvez remplacer sans problème le Format Personnalisé [{{ radarr['cf']['multi']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#multi) du Guide par celui-ci. - **{{ radarr['cf']['french-audio']['name'] }}:** Il s'agit d'un Format Personnalisé pour aider Radarr à reconnaître les versions ayant un audio francophone. Il est facultatif et ne donne un léger bonus que si la version possède effectivement un audio français. - **{{ radarr['cf']['multi-french']['name'] }}:** Il s'agit d'un Format Personnalisé qui renommera votre fichier avec `Multi-French`.. !!! question "Comment fonctionne cette méthode" + Lorsque Radarr trouve une version avec `MULTi`, il lui attribue le score de {{ radarr['cf']['multi-audio']['trash_scores']['default'] }} grâce au Format Personnalisé **{{ radarr['cf']['multi-audio']['name'] }}**. Si la version contient au moins l'audio original et l'audio français, elle sera renommée par le Format Personnalisé **{{ radarr['cf']['multi-french']['name'] }}**. Ce qui permet à la version de conserver le score de {{ radarr['cf']['multi-audio']['trash_scores']['default'] }} du Format Personnalisé {{ radarr['cf']['multi-audio']['name'] }}. diff --git a/includes/french-guide/radarr-french-unwanted-en.md b/includes/french-guide/radarr-french-unwanted-en.md index 17e6bef63..a65ee5d6c 100644 --- a/includes/french-guide/radarr-french-unwanted-en.md +++ b/includes/french-guide/radarr-french-unwanted-en.md @@ -1,4 +1,5 @@ ??? abstract "Unwanted - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------: | ------------------------------------------- | | [{{ radarr['cf']['br-disk']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#br-disk) | {{ radarr['cf']['br-disk']['trash_scores']['default'] }} | {{ radarr['cf']['br-disk']['trash_id'] }} | @@ -7,7 +8,7 @@ | [{{ radarr['cf']['french-lq']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#fr-lq) | {{ radarr['cf']['french-lq']['trash_scores']['default'] }} | {{ radarr['cf']['french-lq']['trash_id'] }} | | [{{ radarr['cf']['x265-hd']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#x265-hd) :warning: | {{ radarr['cf']['x265-hd']['trash_scores']['default'] }} | {{ radarr['cf']['x265-hd']['trash_id'] }} | - ------ + --- Breakdown and Why diff --git a/includes/french-guide/radarr-french-unwanted-fr.md b/includes/french-guide/radarr-french-unwanted-fr.md index ac64f9e75..891d6449b 100644 --- a/includes/french-guide/radarr-french-unwanted-fr.md +++ b/includes/french-guide/radarr-french-unwanted-fr.md @@ -1,4 +1,5 @@ ??? abstract "Indésirable - [Cliquer pour afficher/masquer]" + | Formats Personnalisés | Score | Trash ID | | ------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------: | ------------------------------------------- | | [{{ radarr['cf']['br-disk']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#br-disk) | {{ radarr['cf']['br-disk']['trash_scores']['default'] }} | {{ radarr['cf']['br-disk']['trash_id'] }} | @@ -7,7 +8,7 @@ | [{{ radarr['cf']['french-lq']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#fr-lq) | {{ radarr['cf']['french-lq']['trash_scores']['default'] }} | {{ radarr['cf']['french-lq']['trash_id'] }} | | [{{ radarr['cf']['x265-hd']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#x265-hd) :warning: | {{ radarr['cf']['x265-hd']['trash_scores']['default'] }} | {{ radarr['cf']['x265-hd']['trash_id'] }} | - ------ + --- Description et objectifs diff --git a/includes/french-guide/radarr-french-unwanted-uhd-en.md b/includes/french-guide/radarr-french-unwanted-uhd-en.md index d687de604..06c33af54 100644 --- a/includes/french-guide/radarr-french-unwanted-uhd-en.md +++ b/includes/french-guide/radarr-french-unwanted-uhd-en.md @@ -1,4 +1,5 @@ ??? abstract "Unwanted - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------: | ------------------------------------------- | | [{{ radarr['cf']['br-disk']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#br-disk) | {{ radarr['cf']['br-disk']['trash_scores']['default'] }} | {{ radarr['cf']['br-disk']['trash_id'] }} | @@ -8,7 +9,7 @@ | [{{ radarr['cf']['upscaled']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#upscaled) | {{ radarr['cf']['upscaled']['trash_scores']['default'] }} | {{ radarr['cf']['upscaled']['trash_id'] }} | | [{{ radarr['cf']['x265-hd']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#x265-hd) :warning: | {{ radarr['cf']['x265-hd']['trash_scores']['default'] }} | {{ radarr['cf']['x265-hd']['trash_id'] }} | - ------ + --- Breakdown and Why diff --git a/includes/french-guide/radarr-french-unwanted-uhd-fr.md b/includes/french-guide/radarr-french-unwanted-uhd-fr.md index a2bc9e6b6..3f64a2e04 100644 --- a/includes/french-guide/radarr-french-unwanted-uhd-fr.md +++ b/includes/french-guide/radarr-french-unwanted-uhd-fr.md @@ -1,4 +1,5 @@ ??? abstract "Indésirable - [Cliquer pour afficher/masquer]" + | Formats Personnalisés | Score | Trash ID | | ------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------: | ------------------------------------------- | | [{{ radarr['cf']['br-disk']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#br-disk) | {{ radarr['cf']['br-disk']['trash_scores']['default'] }} | {{ radarr['cf']['br-disk']['trash_id'] }} | @@ -8,7 +9,7 @@ | [{{ radarr['cf']['upscaled']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#upscaled) | {{ radarr['cf']['upscaled']['trash_scores']['default'] }} | {{ radarr['cf']['upscaled']['trash_id'] }} | | [{{ radarr['cf']['x265-hd']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#x265-hd) :warning: | {{ radarr['cf']['x265-hd']['trash_scores']['default'] }} | {{ radarr['cf']['x265-hd']['trash_id'] }} | - ------ + --- Description et objectifs diff --git a/includes/french-guide/sonarr-cf-french-anime-scoring-en.md b/includes/french-guide/sonarr-cf-french-anime-scoring-en.md index 6082fafba..ef958a992 100644 --- a/includes/french-guide/sonarr-cf-french-anime-scoring-en.md +++ b/includes/french-guide/sonarr-cf-french-anime-scoring-en.md @@ -1,4 +1,5 @@ ??? abstract "HQ Source Groups - [Click to show/hide]" + | Custom Format | Score | Trash ID | | --------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------: | ---------------------------------------------------------- | | [{{ sonarr['cf']['french-anime-tier-01']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#fr-anime-tier-01) | {{ sonarr['cf']['french-anime-tier-01']['trash_scores']['default'] }} | {{ sonarr['cf']['french-anime-tier-01']['trash_id'] }} | @@ -12,9 +13,11 @@ | [{{ sonarr['cf']['french-web-tier-03']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#fr-web-tier-03) | (optional) {{ sonarr['cf']['french-web-tier-03']['trash_scores']['french-anime'] }} | {{ sonarr['cf']['french-web-tier-03']['trash_id'] }} | !!! tip + French Scene groups are included and should be always added as some of the biggest releaser of French subbed and/or dubbed are from the French Scene. FanSUB groups can either be scored either {{ sonarr['cf']['french-anime-fansub']['trash_scores']['default'] }} (default) or `1000` depending if you want to prefer FanSUB or SeaDex releases. !!! tip "Original French Bluray/Web Tiers" + They are optional and can be included or not. This is due because some of them tend to release some animes. diff --git a/includes/french-guide/sonarr-cf-french-anime-scoring-fr.md b/includes/french-guide/sonarr-cf-french-anime-scoring-fr.md index 1fd9e71de..e578b0b1e 100644 --- a/includes/french-guide/sonarr-cf-french-anime-scoring-fr.md +++ b/includes/french-guide/sonarr-cf-french-anime-scoring-fr.md @@ -1,4 +1,5 @@ ??? abstract "HQ Source Groups - [Cliquer pour afficher/masquer]" + | Formats Personnalisés | Score | Trash ID | | --------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------: | ---------------------------------------------------------- | | [{{ sonarr['cf']['french-anime-tier-01']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#fr-anime-tier-01) | {{ sonarr['cf']['french-anime-tier-01']['trash_scores']['default'] }} | {{ sonarr['cf']['french-anime-tier-01']['trash_id'] }} | @@ -12,9 +13,11 @@ | [{{ sonarr['cf']['french-web-tier-03']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#fr-web-tier-03) | (optional) {{ sonarr['cf']['french-web-tier-03']['trash_scores']['french-anime'] }} | {{ sonarr['cf']['french-web-tier-03']['trash_id'] }} | !!! tip + Les groupes de la scène française sont inclus et devraient toujours être ajoutés car certains des principaux groupes qui publient des versions sous-titrées et/ou doublées en français en sont issus. Les groupes FanSUB peuvent être notés soit {{ sonarr['cf']['french-anime-fansub']['trash_scores']['default'] }} (par défaut) soit `1000` selon que vous souhaitez privilégier les sorties FanSUB ou SeaDex. !!! tip "Original French Bluray/Web Tiers" + Ils sont optionnels et peuvent être inclus ou non. Cela est dû au fait que certains d'entre eux ont tendance à publier des animes. diff --git a/includes/french-guide/sonarr-cf-french-web-scoring-en.md b/includes/french-guide/sonarr-cf-french-web-scoring-en.md index f9e414bb0..9614bba11 100644 --- a/includes/french-guide/sonarr-cf-french-web-scoring-en.md +++ b/includes/french-guide/sonarr-cf-french-web-scoring-en.md @@ -1,4 +1,5 @@ ??? abstract "HQ Source Groups - [Click to show/hide]" + | Custom Format | Score | Trash ID | | --------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------: | ---------------------------------------------------- | | [{{ sonarr['cf']['french-web-tier-01']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#fr-web-tier-01) | {{ sonarr['cf']['french-web-tier-01']['trash_scores']['default'] }} | {{ sonarr['cf']['french-web-tier-01']['trash_id'] }} | @@ -7,7 +8,9 @@ | [{{ sonarr['cf']['french-scene']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#fr-scene-groups) | :warning: {{ sonarr['cf']['french-scene']['trash_scores']['default'] }} | {{ sonarr['cf']['french-scene']['trash_id'] }} | !!! tip + :warning: French Scene groups are included as a fallback if you really want MULTi release despite a potential loss in quality. Either score the CF to `{{ sonarr['cf']['french-scene']['trash_scores']['default'] }}` (default) or `0` depending on what you want to achieve. ??? info "Original mix (optional)" + {! include-markdown "../../includes/cf/sonarr-hq-source-group.md" !} diff --git a/includes/french-guide/sonarr-cf-french-web-scoring-fr.md b/includes/french-guide/sonarr-cf-french-web-scoring-fr.md index 64eaa64d1..e3f94e78a 100644 --- a/includes/french-guide/sonarr-cf-french-web-scoring-fr.md +++ b/includes/french-guide/sonarr-cf-french-web-scoring-fr.md @@ -1,4 +1,5 @@ ??? abstract "HQ Source Groups - [Cliquer pour afficher/masquer]" + | Formats Personnalisés | Score | Trash ID | | --------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------: | ---------------------------------------------------- | | [{{ sonarr['cf']['french-web-tier-01']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#fr-web-tier-01) | {{ sonarr['cf']['french-web-tier-01']['trash_scores']['default'] }} | {{ sonarr['cf']['french-web-tier-01']['trash_id'] }} | @@ -7,7 +8,9 @@ | [{{ sonarr['cf']['french-scene']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#fr-scene-groups) | :warning: {{ sonarr['cf']['french-scene']['trash_scores']['default'] }} | {{ sonarr['cf']['french-scene']['trash_id'] }} | !!! tip + :warning: Les groupes de la Scène française sont inclus comme substitut si vous voulez vraiment une version MULTi malgré une éventuelle perte de qualité. Vous pouvez lui attribuer un score de `{{ radarr['cf']['french-scene']['trash_scores']['default'] }}` (par défaut) ou de `0` selon ce que vous voulez obtenir. ??? info "Mix original (optionnel)" + {! include-markdown "../../includes/cf/sonarr-hq-source-group.md" !} diff --git a/includes/french-guide/sonarr-french-anime-info-en.md b/includes/french-guide/sonarr-french-anime-info-en.md index eee0e2106..41ef2fe76 100644 --- a/includes/french-guide/sonarr-french-anime-info-en.md +++ b/includes/french-guide/sonarr-french-anime-info-en.md @@ -1,4 +1,5 @@ !!! info "Important" + In a first time you should follow the original Anime Guide following sections: - [How to setup Quality Profiles Anime | Media Management](/Sonarr/sonarr-setup-quality-profiles-anime/#media-management){:target="_blank" rel="noopener noreferrer"}. @@ -8,6 +9,7 @@ Do not continue before you read those three sections and you followed their instructions. !!! info "Original Scoring" + Those are the original scoring from the Anime Guide and need to be followed depending what you want to achieve. It will unsure that if a VOSTFR or MULTi releases is not found you will still have a good quality releases: - [Default Scoring](/Sonarr/sonarr-setup-quality-profiles-anime/#default-scoring){:target="_blank" rel="noopener noreferrer"}: Default scoring that will insure that you have good English subbed releases at least. @@ -17,6 +19,7 @@ :warning: Careful to not add the [{{ sonarr['cf']['french-vostfr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#vostfr) Custom Format with a score of `{{ sonarr['cf']['french-vostfr']['trash_scores']['anime-sonarr'] }}` as stated in the original guide. Otherwise, you will hinder your chance to get "French" releases. !!! info "Only want VOSTFR anime" + For this example if you prefer VOSTFR over potential MULTi/DUAL (original and French) audio releases, you should score the [{{ sonarr['cf']['french-vostfr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#vostfr) to `{{ sonarr['cf']['french-vostfr']['trash_scores']['french-anime'] }}`, and disregard all the `Multi` and French version Custom Formats. *(Optional) You can also try to set up [Bazarr](/Bazarr/Setup-Guide){:target="_blank" rel="noopener noreferrer"} to get French Sub. This is less preferred as fewer anime subs can be found online than from normal TV shows. However, it can be still a great backup.* diff --git a/includes/french-guide/sonarr-french-anime-info-fr.md b/includes/french-guide/sonarr-french-anime-info-fr.md index 246c54eda..e552e2b46 100644 --- a/includes/french-guide/sonarr-french-anime-info-fr.md +++ b/includes/french-guide/sonarr-french-anime-info-fr.md @@ -1,4 +1,5 @@ !!! info "Important" + Dans un premier temps, vous devez suivre les sections suivantes du Guide Anime original (en anglais uniquemment) : - [How to setup Quality Profiles Anime | Media Management](/Sonarr/sonarr-setup-quality-profiles-anime/#media-management){:target="_blank" rel="noopener noreferrer"}. @@ -8,6 +9,7 @@ Ne continuez pas avant d'avoir lu ces trois sections et d'avoir suivi leurs instructions. !!! info "Original Scoring" + Il s'agit de la notation originale du Guide Anime et elle doit être suivie en fonction de ce que vous voulez obtenir. Ainsi vous ne trouvez pas de version VOSTFR ou MULTi, vous aurez toujours une version de bonne qualité : - [Default Scoring](/Sonarr/sonarr-setup-quality-profiles-anime/#default-scoring){:target="_blank" rel="noopener noreferrer"}: La configuration par défaut qui garantit que vous aurez au minimum une bonne version sous-titrée en anglais. @@ -17,6 +19,7 @@ :warning: Attention à ne pas ajouter le Format Personnalisé [{{ sonarr['cf']['french-vostfr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#vostfr) avec un score de `{{ sonarr['cf']['french-vostfr']['trash_scores']['anime-sonarr'] }}` comme indiqué dans le guide original. Sinon, vous compromettrez vos chances d'obtenir des versions "françaises". !!! info "VOSTFR uniquement pour les anime" + Dans cet exemple, si vous préférez la VOSTFR à d'éventuelles releases MULTi/DUAL (audio original et français), vous devez donner un score de `{{ sonarr['cf']['french-vostfr']['trash_scores']['french-anime'] }}` pour le Format Personnalisés [{{ sonarr['cf']['french-vostfr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#vostfr), et ignorer tous les Formats Personnalisés `Multi` et version française. (Optionnel) Vous pouvez également essayer de configurer [Bazarr](/Bazarr/Setup-Guide){:target="_blank" rel="noopener noreferrer"} (*en anglais*) pour obtenir les sous-titres français de vos animes. Cette option est toute fois moins recommandée, car on trouve moins de sous-titres pour les animes en ligne que pour les séries habituelles. Cependant, cela peut être une alternative intéressante. diff --git a/includes/french-guide/sonarr-french-audio-version-en.md b/includes/french-guide/sonarr-french-audio-version-en.md index 4e8fa458b..8799f7175 100644 --- a/includes/french-guide/sonarr-french-audio-version-en.md +++ b/includes/french-guide/sonarr-french-audio-version-en.md @@ -1,4 +1,5 @@ ??? abstract "Explanation - [Click to show/hide]" + | Acronyms | French Explanation | English Explanation | | -------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------- | | TRUEFRENCH or VFF | Version Francophone Française (doublage réalisé en France) | Full French version (dubbing done in France) | @@ -16,9 +17,11 @@ - *[2] It should be noted that SUBFRENCH is included in this Custom Format. However, SUB often means that the subtitle was embedded inside the picture (hardcoded). French releases tend to mix the two, leading to some VOSTFR being labelled as SUBFRENCH and SUBFRENCH as VOSTFR.* !!! tip "Indexers renaming in Prowlarr" + Some Indexers in **Prowlarr** can rename `MULTi` releases to `MULTi.TRUEFRENCH` or `MULTi.FRENCH`. It is not recommend to use such a feature along with those Custom Formats as it can lead to false positives from the VFF, VFQ and VQ Custom Formats. ??? abstract "French Audio Versions - [Click to show/hide]" + | Custom Format | Trash ID | | -------------------------------------------------------------------------------------------------- | ----------------------------------------------- | | [{{ sonarr['cf']['french-vff']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#vff) | {{ sonarr['cf']['french-vff']['trash_id'] }} | diff --git a/includes/french-guide/sonarr-french-audio-version-fr.md b/includes/french-guide/sonarr-french-audio-version-fr.md index a2dc6b841..0caa26b67 100644 --- a/includes/french-guide/sonarr-french-audio-version-fr.md +++ b/includes/french-guide/sonarr-french-audio-version-fr.md @@ -1,4 +1,5 @@ ??? abstract "Explications - [Cliquer pour afficher/masquer]" + | Acronymes | Définition française | Définition anglaise | | -------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------- | | TRUEFRENCH or VFF | Version Francophone Française (doublage réalisé en France) | Full French version (dubbing done in France) | @@ -16,9 +17,11 @@ - *[2] Il est à noter que le SUBFRENCH est inclus dans ce Format Personnalisé. Néanmoins, SUB signifie souvent que le sous-titre a été intégré à l'image (hardcoded). Les sorties françaises ont tendance à mélanger les deux, ce qui fait que certains VOSTFR sont étiquetés comme SUBFRENCH et SUBFRENCH comme VOSTFR.* !!! tip "Indexers renaming in Prowlarr" + Certains indexeurs dans **Prowlarr** peuvent renommer les versions `MULTi` en `MULTi.TRUEFRENCH` ou `MULTi.FRENCH`. L'utilisation de cette fonction n'est pas recommandé, car elle peut entraîner des faux positifs avec les formats personnalisés VFF, VFQ et VQ. ??? abstract "Versions françaises - [Cliquer pour afficher/masquer]" + | Formats Personnalisés | Trash ID | | -------------------------------------------------------------------------------------------------- | ----------------------------------------------- | | [{{ sonarr['cf']['french-vff']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#vff) | {{ sonarr['cf']['french-vff']['trash_id'] }} | diff --git a/includes/french-guide/sonarr-french-multi-audio-en.md b/includes/french-guide/sonarr-french-multi-audio-en.md index 9b642e015..2c13b1a8d 100644 --- a/includes/french-guide/sonarr-french-multi-audio-en.md +++ b/includes/french-guide/sonarr-french-multi-audio-en.md @@ -1,4 +1,5 @@ ??? abstract "Multi Audio - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------: | ---------------------------------------------- | | [{{ sonarr['cf']['multi-audio']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#multi-audio) | {{ sonarr['cf']['multi-audio']['trash_scores']['default'] }} | {{ sonarr['cf']['multi-audio']['trash_id'] }} | @@ -10,10 +11,12 @@ - **{{ sonarr['cf']['multi-audio']['name'] }}:** This is a custom format to help Sonarr recognize MULTi audio releases. !!! tip + You can safely replace the original [{{ sonarr['cf']['multi']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#multi) Custom Format from the Guide with it. - **{{ sonarr['cf']['french-audio']['name'] }}:** This is a custom format to help Sonarr recognize release with French audio. It is optional and only gives a small boost if the release indeed possesses French audio. - **{{ sonarr['cf']['multi-french']['name'] }}:** This is a custom format that will rename your file with `Multi-French`. !!! question "How it works" + When Sonarr finds a release with `MULTi`, it will allocate a {{ sonarr['cf']['multi-audio']['trash_scores']['default'] }} score to it thanks to the **{{ sonarr['cf']['multi-audio']['name'] }}** custom format. If the release contains at least both the original audio and French audio, it will be renamed by the **{{ sonarr['cf']['multi-french']['name'] }}**. Allowing the release to keep the {{ sonarr['cf']['multi-audio']['trash_scores']['default'] }} score from the {{ sonarr['cf']['multi-audio']['name'] }} Custom Format. diff --git a/includes/french-guide/sonarr-french-multi-audio-fr.md b/includes/french-guide/sonarr-french-multi-audio-fr.md index 73fdebe79..676f1cae8 100644 --- a/includes/french-guide/sonarr-french-multi-audio-fr.md +++ b/includes/french-guide/sonarr-french-multi-audio-fr.md @@ -1,4 +1,5 @@ ??? abstract "Multi Audio - [Cliquer pour afficher/masquer]" + | Formats Personnalisés | Score | Trash ID | | ------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------: | ---------------------------------------------- | | [{{ sonarr['cf']['multi-audio']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#multi-audio) | {{ sonarr['cf']['multi-audio']['trash_scores']['default'] }} | {{ sonarr['cf']['multi-audio']['trash_id'] }} | @@ -10,10 +11,12 @@ - **{{ sonarr['cf']['multi-audio']['name'] }}:** Il s'agit d'un Format Personnalisé pour aider Sonarr à reconnaître les releases aved plusieurs audios (MULTi). !!! tip + Vous pouvez remplacer sans problème le Format Personnalisé [{{ sonarr['cf']['multi']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#multi) du Guide par celui-ci. - **{{ sonarr['cf']['french-audio']['name'] }}:** Il s'agit d'un Format Personnalisé pour aider Sonarr à reconnaître les versions ayant un audio francophone. Il est facultatif et ne donne un léger bonus que si la version possède effectivement un audio français. - **{{ sonarr['cf']['multi-french']['name'] }}:** Il s'agit d'un Format Personnalisé qui renommera votre fichier avec `Multi-French`.. !!! question "Comment fonctionne cette méthode" + Lorsque Sonarr trouve une version avec `MULTi`, il lui attribue le score de {{ sonarr['cf']['multi-audio']['trash_scores']['default'] }} grâce au Format Personnalisé **{{ sonarr['cf']['multi-audio']['name'] }}**. Si la version contient au moins l'audio original et l'audio français, elle sera renommée par le Format Personnalisé **{{ sonarr['cf']['multi-french']['name'] }}**. Ce qui permet à la version de conserver le score de {{ sonarr['cf']['multi-audio']['trash_scores']['default'] }} du Format Personnalisé {{ sonarr['cf']['multi-audio']['name'] }}. diff --git a/includes/french-guide/sonarr-french-streaming-services-anime-en.md b/includes/french-guide/sonarr-french-streaming-services-anime-en.md index 952bf040e..ec6d0c0d1 100644 --- a/includes/french-guide/sonarr-french-streaming-services-anime-en.md +++ b/includes/french-guide/sonarr-french-streaming-services-anime-en.md @@ -1,4 +1,5 @@ ??? abstract "French Anime Streaming Services - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ----------------------------------------------------------------------------------------------- | :---------------------------------------------------------: | -------------------------------------------- | | [{{ sonarr['cf']['cr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#cr) | {{ sonarr['cf']['cr']['trash_scores']['default'] }} | {{ sonarr['cf']['cr']['trash_id'] }} | diff --git a/includes/french-guide/sonarr-french-streaming-services-anime-fr.md b/includes/french-guide/sonarr-french-streaming-services-anime-fr.md index 22ce327c9..471462379 100644 --- a/includes/french-guide/sonarr-french-streaming-services-anime-fr.md +++ b/includes/french-guide/sonarr-french-streaming-services-anime-fr.md @@ -1,4 +1,5 @@ ??? abstract "Services de streaming français d'Animés - [Cliquer pour afficher/masquer]" + | Formats Personnalisés | Score | Trash ID | | ----------------------------------------------------------------------------------------------- | :---------------------------------------------------------: | -------------------------------------------- | | [{{ sonarr['cf']['cr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#cr) | {{ sonarr['cf']['cr']['trash_scores']['default'] }} | {{ sonarr['cf']['cr']['trash_id'] }} | diff --git a/includes/french-guide/sonarr-french-streaming-services-en.md b/includes/french-guide/sonarr-french-streaming-services-en.md index d9ac243e0..35121712c 100644 --- a/includes/french-guide/sonarr-french-streaming-services-en.md +++ b/includes/french-guide/sonarr-french-streaming-services-en.md @@ -1,4 +1,5 @@ ??? abstract "French Streaming Services - [Click to show/hide]" + | Custom Format | Trash ID | | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | | [{{ sonarr['cf']['french-canalplus']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#canalplus) | {{ sonarr['cf']['french-canalplus']['trash_id'] }} | diff --git a/includes/french-guide/sonarr-french-streaming-services-fr.md b/includes/french-guide/sonarr-french-streaming-services-fr.md index 2ab54114d..0d18e3e1d 100644 --- a/includes/french-guide/sonarr-french-streaming-services-fr.md +++ b/includes/french-guide/sonarr-french-streaming-services-fr.md @@ -1,4 +1,5 @@ ??? abstract "Services de streaming en français - [Cliquer pour afficher/masquer]" + | Formats Personnalisés | Trash ID | | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | | [{{ sonarr['cf']['french-canalplus']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#canalplus) | {{ sonarr['cf']['french-canalplus']['trash_id'] }} | diff --git a/includes/french-guide/sonarr-french-unwanted-en.md b/includes/french-guide/sonarr-french-unwanted-en.md index 7fb50d42d..ec6990e6e 100644 --- a/includes/french-guide/sonarr-french-unwanted-en.md +++ b/includes/french-guide/sonarr-french-unwanted-en.md @@ -1,4 +1,5 @@ ??? abstract "Unwanted - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------: | ------------------------------------------- | | [{{ sonarr['cf']['br-disk']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#br-disk) | {{ sonarr['cf']['br-disk']['trash_scores']['default'] }} | {{ sonarr['cf']['br-disk']['trash_id'] }} | @@ -7,7 +8,7 @@ | [{{ sonarr['cf']['x265-hd']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#x265-hd) :warning: | {{ sonarr['cf']['x265-hd']['trash_scores']['default'] }} | {{ sonarr['cf']['x265-hd']['trash_id'] }} | | [{{ sonarr['cf']['extras']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#extras) | {{ sonarr['cf']['extras']['trash_scores']['default'] }} | {{ sonarr['cf']['extras']['trash_id'] }} | - ------ + --- Breakdown and Why @@ -21,6 +22,7 @@ - **{{ sonarr['cf']['extras']['name'] }}:** This blocks/ignores extras ??? warning "Type of FanSubs - [Click to show/hide]" + Those Custom Formats are optionals and allow to know which type of FanSubs your releases have. Only the FastSub is not wanted as it is often done too quickly and are often not well done. If you do not want FanSub either you should also score it to {{ sonarr['cf']['fastsub']['trash_scores']['default'] }}. | Custom Format | Score | Trash ID | diff --git a/includes/french-guide/sonarr-french-unwanted-fr.md b/includes/french-guide/sonarr-french-unwanted-fr.md index 5e6ddad2d..71cee0bb4 100644 --- a/includes/french-guide/sonarr-french-unwanted-fr.md +++ b/includes/french-guide/sonarr-french-unwanted-fr.md @@ -1,4 +1,5 @@ ??? abstract "Indésirable - [Cliquer pour afficher/masquer]" + | Formats Personnalisés | Score | Trash ID | | ------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------: | ------------------------------------------- | | [{{ sonarr['cf']['br-disk']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#br-disk) | {{ sonarr['cf']['br-disk']['trash_scores']['default'] }} | {{ sonarr['cf']['br-disk']['trash_id'] }} | @@ -7,7 +8,7 @@ | [{{ sonarr['cf']['x265-hd']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#x265-hd) :warning: | {{ sonarr['cf']['x265-hd']['trash_scores']['default'] }} | {{ sonarr['cf']['x265-hd']['trash_id'] }} | | [{{ sonarr['cf']['extras']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#extras) | {{ sonarr['cf']['extras']['trash_scores']['default'] }} | {{ sonarr['cf']['extras']['trash_id'] }} | - ------ + --- Breakdown and Why @@ -21,6 +22,7 @@ - **{{ sonarr['cf']['extras']['name'] }}:** Bloque les extras ??? warning "Type de FanSubs - [Cliquer pour afficher/masquer]" + Ces Formats Personnalisés sont optionnels et permettent de savoir quel type de FanSubs vos versions possèdent. Seul le FastSub n'est pas souhaité car il est souvent fait trop rapidement et reste peu soigné. Si vous ne voulez pas de FanSub non plus, vous devez aussi lui donner un score de {{ sonarr['cf']['fastsub']['trash_scores']['default'] }}. | Formats Personnalisés | Score | Trash ID | diff --git a/includes/french-guide/sonarr-french-unwanted-uhd-en.md b/includes/french-guide/sonarr-french-unwanted-uhd-en.md index 1b17b4f7d..dc6ec8463 100644 --- a/includes/french-guide/sonarr-french-unwanted-uhd-en.md +++ b/includes/french-guide/sonarr-french-unwanted-uhd-en.md @@ -1,4 +1,5 @@ ??? abstract "Unwanted - [Click to show/hide]" + | Custom Format | Score | Trash ID | | --------------------------------------------------------------------------------------------- | :--------------------------------------------------------: | ------------------------------------------- | | [{{ sonarr['cf']['br-disk']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#br-disk) | {{ sonarr['cf']['br-disk']['trash_scores']['default'] }} | {{ sonarr['cf']['br-disk']['trash_id'] }} | @@ -6,7 +7,7 @@ | [{{ sonarr['cf']['french-lq']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#fr-lq) | {{ sonarr['cf']['french-lq']['trash_scores']['default'] }} | {{ sonarr['cf']['french-lq']['trash_id'] }} | | [{{ sonarr['cf']['extras']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#extras) | {{ sonarr['cf']['extras']['trash_scores']['default'] }} | {{ sonarr['cf']['extras']['trash_id'] }} | - ------ + --- Breakdown and Why @@ -16,6 +17,7 @@ - **{{ sonarr['cf']['extras']['name'] }}:** This blocks/ignores extras ??? warning "Type of FanSubs - [Click to show/hide]" + Those Custom Formats are optionals and allow to know which type of FanSubs your releases have. Only the FastSub is not wanted as it is often done too quickly and are often not well done. If you do not want FanSub either you should also score it to {{ sonarr['cf']['fastsub']['trash_scores']['default'] }}. | Custom Format | Score | Trash ID | diff --git a/includes/french-guide/sonarr-french-unwanted-uhd-fr.md b/includes/french-guide/sonarr-french-unwanted-uhd-fr.md index 67c09a6fc..c0af429fa 100644 --- a/includes/french-guide/sonarr-french-unwanted-uhd-fr.md +++ b/includes/french-guide/sonarr-french-unwanted-uhd-fr.md @@ -1,4 +1,5 @@ ??? abstract "Indésirable - [Cliquer pour afficher/masquer]" + | Formats Personnalisés | Score | Trash ID | | --------------------------------------------------------------------------------------------- | :--------------------------------------------------------: | ------------------------------------------- | | [{{ sonarr['cf']['br-disk']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#br-disk) | {{ sonarr['cf']['br-disk']['trash_scores']['default'] }} | {{ sonarr['cf']['br-disk']['trash_id'] }} | @@ -6,7 +7,7 @@ | [{{ sonarr['cf']['french-lq']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#fr-lq) | {{ sonarr['cf']['french-lq']['trash_scores']['default'] }} | {{ sonarr['cf']['french-lq']['trash_id'] }} | | [{{ sonarr['cf']['extras']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#extras) | {{ sonarr['cf']['extras']['trash_scores']['default'] }} | {{ sonarr['cf']['extras']['trash_id'] }} | - ------ + --- Breakdown and Why @@ -16,6 +17,7 @@ - **{{ sonarr['cf']['extras']['name'] }}:** Bloque les extras ??? warning "Type de FanSubs - [Cliquer pour afficher/masquer]" + Ces Formats Personnalisés sont optionnels et permettent de savoir quel type de FanSubs vos versions possèdent. Seul le FastSub n'est pas souhaité car il est souvent fait trop rapidement et reste peu soigné. Si vous ne voulez pas de FanSub non plus, vous devez aussi lui donner un score de {{ sonarr['cf']['fastsub']['trash_scores']['default'] }}. | Formats Personnalisés | Score | Trash ID | diff --git a/includes/hardlinks/bad-path-suggestion.md b/includes/hardlinks/bad-path-suggestion.md index 74f756131..85860251c 100644 --- a/includes/hardlinks/bad-path-suggestion.md +++ b/includes/hardlinks/bad-path-suggestion.md @@ -1,3 +1,3 @@ ### Bad path suggestion -!!! warning "The default path setup suggested by some docker developers that encourages people to use mounts like `/movies`, `/tv`, `/books` or `/downloads` is very suboptimal and it makes them look like two or three file systems, even if they aren’t (*Because of how Docker’s volumes work*). It is the easiest way to get started. While easy to use, it has a major drawback. Mainly losing the ability to hardlink or instant move, resulting in a slower and more I/O intensive copy + delete is used." +!!! warning "The default path setup suggested by some docker developers that encourages people to use mounts like `/movies`, `/tv`, `/books` or `/downloads` is very suboptimal and it makes them look like two or three file systems, even if they aren’t (_Because of how Docker’s volumes work_). It is the easiest way to get started. While easy to use, it has a major drawback. Mainly losing the ability to hardlink or instant move, resulting in a slower and more I/O intensive copy + delete is used." diff --git a/includes/hardlinks/breakdown-folder-structure-docker.md b/includes/hardlinks/breakdown-folder-structure-docker.md index e194b8130..d19573916 100644 --- a/includes/hardlinks/breakdown-folder-structure-docker.md +++ b/includes/hardlinks/breakdown-folder-structure-docker.md @@ -48,6 +48,6 @@ Plex, Emby, JellyFin and Bazarr only needs access to your media library using `/ `Host Path:` => `//data/media/` ------- +--- **Don't forget to look at the [Examples](/Hardlinks/Examples/) how to setup the paths inside the applications.** diff --git a/includes/hardlinks/breakdown-folder-structure-synology.md b/includes/hardlinks/breakdown-folder-structure-synology.md index 6ce97beaf..d00f7cce2 100644 --- a/includes/hardlinks/breakdown-folder-structure-synology.md +++ b/includes/hardlinks/breakdown-folder-structure-synology.md @@ -48,6 +48,6 @@ Plex, Emby, JellyFin and Bazarr only needs access to your media library using `/ `Host Path:` => `/volume1/data/media/` ------- +--- **Don't forget to look at the [Examples](/Hardlinks/Examples/) how to setup the paths inside the applications.** diff --git a/includes/hardlinks/breakdown-folder-structure.md b/includes/hardlinks/breakdown-folder-structure.md index 505baed3d..b05d7134c 100644 --- a/includes/hardlinks/breakdown-folder-structure.md +++ b/includes/hardlinks/breakdown-folder-structure.md @@ -32,6 +32,6 @@ Plex, Emby, JellyFin and Bazarr only needs access to your media library using `/ {! include-markdown "./docker-tree-media.md" !} ------- +--- **Don't forget to look at the [Examples](/Hardlinks/Examples/) how to setup the paths inside the applications.** diff --git a/includes/hardlinks/docker-iptables-fix.sh b/includes/hardlinks/docker-iptables-fix.sh index 6a96720b8..aaa3127b3 100644 --- a/includes/hardlinks/docker-iptables-fix.sh +++ b/includes/hardlinks/docker-iptables-fix.sh @@ -3,26 +3,25 @@ currentAttempt=0 totalAttempts=10 delay=15 -while [ $currentAttempt -lt $totalAttempts ] -do - currentAttempt=$(( $currentAttempt + 1 )) +while [ $currentAttempt -lt $totalAttempts ]; do + currentAttempt=$(($currentAttempt + 1)) - echo "Attempt $currentAttempt of $totalAttempts..." + echo "Attempt $currentAttempt of $totalAttempts..." - result=$(iptables-save) + result=$(iptables-save) - if [[ $result =~ "-A DOCKER -i docker0 -j RETURN" ]]; then - echo "Docker rules found! Modifying..." + if [[ $result =~ "-A DOCKER -i docker0 -j RETURN" ]]; then + echo "Docker rules found! Modifying..." - iptables -t nat -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER - iptables -t nat -A PREROUTING -m addrtype --dst-type LOCAL ! --dst 127.0.0.0/8 -j DOCKER + iptables -t nat -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER + iptables -t nat -A PREROUTING -m addrtype --dst-type LOCAL ! --dst 127.0.0.0/8 -j DOCKER - echo "Done!" + echo "Done!" - break - fi + break + fi - echo "Docker rules not found! Sleeping for $delay seconds..." + echo "Docker rules not found! Sleeping for $delay seconds..." - sleep $delay -done \ No newline at end of file + sleep $delay +done diff --git a/includes/hardlinks/docker-tree-full.md b/includes/hardlinks/docker-tree-full.md index 1eea47c9c..8ca8784df 100644 --- a/includes/hardlinks/docker-tree-full.md +++ b/includes/hardlinks/docker-tree-full.md @@ -8,13 +8,13 @@ data ├── usenet │ ├── incomplete │ └── complete -│ ├── books -│ ├── movies -│ ├── music -│ └── tv +│ ├── books +│ ├── movies +│ ├── music +│ └── tv └── media - ├── books - ├── movies - ├── music - └── tv + ├── books + ├── movies + ├── music + └── tv ``` diff --git a/includes/hardlinks/docker-tree-media.md b/includes/hardlinks/docker-tree-media.md index 37e6c2f7a..b904d6341 100644 --- a/includes/hardlinks/docker-tree-media.md +++ b/includes/hardlinks/docker-tree-media.md @@ -1,8 +1,8 @@ ```none data └── media - ├── movies - ├── music - ├── books - └── tv + ├── movies + ├── music + ├── books + └── tv ``` diff --git a/includes/hardlinks/docker-tree-torrents.md b/includes/hardlinks/docker-tree-torrents.md index 706008368..b2643d48a 100644 --- a/includes/hardlinks/docker-tree-torrents.md +++ b/includes/hardlinks/docker-tree-torrents.md @@ -1,8 +1,8 @@ ```none data └── torrents - ├── books - ├── movies - ├── music - └── tv + ├── books + ├── movies + ├── music + └── tv ``` diff --git a/includes/hardlinks/docker-tree-usenet.md b/includes/hardlinks/docker-tree-usenet.md index 5be4c212e..77d419dcc 100644 --- a/includes/hardlinks/docker-tree-usenet.md +++ b/includes/hardlinks/docker-tree-usenet.md @@ -3,8 +3,8 @@ data └── usenet ├── incomplete └── complete - ├── books - ├── movies - ├── music - └── tv + ├── books + ├── movies + ├── music + └── tv ``` diff --git a/includes/hardlinks/folder-structure.md b/includes/hardlinks/folder-structure.md index 30c6a474b..eada59800 100644 --- a/includes/hardlinks/folder-structure.md +++ b/includes/hardlinks/folder-structure.md @@ -14,6 +14,6 @@ For this example we're going to make use of a share called `data`. The `data` folder has sub-folders for `torrents` and `usenet` and each of these have sub-folders for `tv`, `movie`, `books` and `music` downloads to keep things neat. The `media` folder has nicely named `TV`, `Movies`, `Books` and `Music` sub-folders, this is your library and what you’d pass to Plex, Emby or JellyFin. -*In this examples I'm using lower case on all folder on purpose, being Linux is case sensitive.* +_In this examples I'm using lower case on all folder on purpose, being Linux is case sensitive._ {! include-markdown "./docker-tree-full.md" !} diff --git a/includes/merge-quality/radarr-current-logic.md b/includes/merge-quality/radarr-current-logic.md index 942ddf366..dcc9c52f2 100644 --- a/includes/merge-quality/radarr-current-logic.md +++ b/includes/merge-quality/radarr-current-logic.md @@ -18,6 +18,7 @@ [Source: Wiki Servarr](https://wiki.servarr.com/radarr/faq#how-are-possible-downloads-compared){:target="_blank" rel="noopener noreferrer"} !!! warning "" + REPACKS and PROPERs are v2 of Qualities and thus rank above a non-repack of the same quality. - `Settings` => `Media Management` => `File Management` => `Proper & Repacks` Change to `Do Not Prefer` and use the [Repack/Proper Custom Format](/Radarr/Radarr-collection-of-custom-formats/#repackproper){:target="_blank" rel="noopener noreferrer"} + `Settings` => `Media Management` => `File Management` => `Proper & Repacks` Change to `Do Not Prefer` and use the [Repack/Proper Custom Format](/Radarr/Radarr-collection-of-custom-formats/#repackproper){:target="_blank" rel="noopener noreferrer"} diff --git a/includes/merge-quality/sonarr-current-logic.md b/includes/merge-quality/sonarr-current-logic.md index 9da544f5c..175cc8389 100644 --- a/includes/merge-quality/sonarr-current-logic.md +++ b/includes/merge-quality/sonarr-current-logic.md @@ -20,6 +20,7 @@ [Source: Wiki Servarr](https://wiki.servarr.com/sonarr/faq#how-are-possible-downloads-compared){:target="_blank" rel="noopener noreferrer"} !!! warning "" + REPACKS and PROPERs are v2 of Qualities and thus rank above a non-repack of the same quality. - `Settings` => `Media Management` => `File Management` => `Proper & Repacks` Change to `Do Not Prefer` and use a preferred word regex of `/\b(repack|proper)\b/i` + `Settings` => `Media Management` => `File Management` => `Proper & Repacks` Change to `Do Not Prefer` and use a preferred word regex of `/\b(repack|proper)\b/i` diff --git a/includes/merge-quality/sonarrv4-current-logic.md b/includes/merge-quality/sonarrv4-current-logic.md index d880277f6..7f9508978 100644 --- a/includes/merge-quality/sonarrv4-current-logic.md +++ b/includes/merge-quality/sonarrv4-current-logic.md @@ -19,6 +19,7 @@ [Source: Wiki Servarr](https://wiki.servarr.com/sonarr/faq#how-are-possible-downloads-compared){:target="_blank" rel="noopener noreferrer"} !!! warning "" + REPACKS and PROPERs are v2 of Qualities and thus rank above a non-repack of the same quality. - `Settings` => `Media Management` => `File Management` => `Proper & Repacks` Change to `Do Not Prefer` and use the [Repack/Proper Custom Format](/Sonarr/sonarr-collection-of-custom-formats/#repackproper){:target="_blank" rel="noopener noreferrer"} + `Settings` => `Media Management` => `File Management` => `Proper & Repacks` Change to `Do Not Prefer` and use the [Repack/Proper Custom Format](/Sonarr/sonarr-collection-of-custom-formats/#repackproper){:target="_blank" rel="noopener noreferrer"} diff --git a/includes/sqp/1-4k-cf-scoring-sqp1.md b/includes/sqp/1-4k-cf-scoring-sqp1.md index 0024d9612..469f12a76 100644 --- a/includes/sqp/1-4k-cf-scoring-sqp1.md +++ b/includes/sqp/1-4k-cf-scoring-sqp1.md @@ -1,6 +1,7 @@ #### Custom Formats and scores ??? abstract "Audio - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------: | ------------------------------------------------- | | [{{ radarr['cf']['truehd-atmos']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#truehd-atmos) | :warning: {{ radarr['cf']['truehd-atmos']['trash_scores']['sqp-1-2160p'] }} :warning: | {{ radarr['cf']['truehd-atmos']['trash_id'] }} | @@ -54,6 +55,7 @@ !!! danger "The reason why we add `DV (WEBDL)` is because you want maximum compatibility across all devices :warning:" ??? abstract "Movie Versions - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ----------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------: | ------------------------------------------------------ | | [{{ radarr['cf']['remaster']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#remaster) | {{ radarr['cf']['remaster']['trash_scores']['default'] }} | {{ radarr['cf']['remaster']['trash_id'] }} | @@ -64,12 +66,14 @@ | [{{ radarr['cf']['special-edition']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#special-edition) | {{ radarr['cf']['special-edition']['trash_scores']['default'] }} | {{ radarr['cf']['special-edition']['trash_id'] }} | !!! info + - If you prefer 1080p/2160p WEBDL with IMAX-E then add [{{ radarr['cf']['imax-enhanced']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#imax-enhanced) with the default scores. - The reason why we don't add [{{ radarr['cf']['imax']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#imax) is because BHDStudio didn't add IMAX to their filename before 2023-07-27. !!! danger "Adding `IMAX`/`IMAX Enhanced` will replace the BHDStudio release in most cases :warning:" ??? abstract "HQ Release Groups - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ------------------------------------------------------------------------------------------------------------------------------------ | :-----------------------------------------------------------------------------------------: | ---------------------------------------------------- | | [{{ radarr['cf']['bhdstudio']['name'] }}](https://raw.githubusercontent.com/TRaSH-/Guides/master/docs/json/radarr/cf/bhdstudio.json) | {{ radarr['cf']['bhdstudio']['trash_scores']['default'] }} | {{ radarr['cf']['bhdstudio']['trash_id'] }} | @@ -86,6 +90,7 @@ !!! warning "Scores marked with a :warning: warning :warning: are different to those used in the main public guide" !!! tip + If you use SQP-1 (1080p) as your main/second Radarr you want to remove the following HQ Release Groups - [{{ radarr['cf']['hd-bluray-tier-01']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#hd-bluray-tier-01) @@ -99,24 +104,25 @@ ??? abstract "Optional - [Click to show/hide]" !!! tip "I recommend using the following Custom Formats" + - `x265 (no HDR/DV)` over the `x265 (HD)`, Read the Why below and don't forget to read the warning,
:warning: Only ever include one of them :warning: - `AV1` This will prevent grabbing AV1 releases. !!! danger "Adding any of the `HDR10+ Boosts` could result in less streaming optimized releases :warning:" - | Custom Format | Score | Trash ID | - | ------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------: | ------------------------------------------------- | - | [{{ radarr['cf']['bad-dual-groups']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#bad-dual-groups) | {{ radarr['cf']['bad-dual-groups']['trash_scores']['default'] }} | {{ radarr['cf']['bad-dual-groups']['trash_id'] }} | - | [{{ radarr['cf']['evo-no-webdl']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#evo-no-webdl) | {{ radarr['cf']['evo-no-webdl']['trash_scores']['default'] }} | {{ radarr['cf']['evo-no-webdl']['trash_id'] }} | - | [{{ radarr['cf']['no-rlsgroup']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#no-rlsgroup) | {{ radarr['cf']['no-rlsgroup']['trash_scores']['default'] }} | {{ radarr['cf']['no-rlsgroup']['trash_id'] }} | - | [{{ radarr['cf']['obfuscated']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#obfuscated) | {{ radarr['cf']['obfuscated']['trash_scores']['default'] }} | {{ radarr['cf']['obfuscated']['trash_id'] }} | - | [{{ radarr['cf']['retags']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#retags) | {{ radarr['cf']['retags']['trash_scores']['default'] }} | {{ radarr['cf']['retags']['trash_id'] }} | - | [{{ radarr['cf']['scene']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#scene) | {{ radarr['cf']['scene']['trash_scores']['default'] }} | {{ radarr['cf']['scene']['trash_id'] }} | - | [{{ radarr['cf']['x265-no-hdrdv']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#x265-no-hdrdv) :warning: | {{ radarr['cf']['x265-no-hdrdv']['trash_scores']['default'] }} | {{ radarr['cf']['x265-no-hdrdv']['trash_id'] }} | - | [{{ radarr['cf']['hdr10plus-boost']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#hdr10plus-boost) | {{ radarr['cf']['hdr10plus-boost']['trash_scores']['default'] }} | {{ radarr['cf']['hdr10plus-boost']['trash_id'] }} | - | [{{ radarr['cf']['dv-hdr10plus-boost']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#dv-hdr10plus-boost) | {{ radarr['cf']['dv-hdr10plus-boost']['trash_scores']['default'] }} | {{ radarr['cf']['dv-hdr10plus-boost']['trash_id'] }} | - - ------ + | Custom Format | Score | Trash ID | + | ------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------: | ---------------------------------------------------- | + | [{{ radarr['cf']['bad-dual-groups']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#bad-dual-groups) | {{ radarr['cf']['bad-dual-groups']['trash_scores']['default'] }} | {{ radarr['cf']['bad-dual-groups']['trash_id'] }} | + | [{{ radarr['cf']['evo-no-webdl']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#evo-no-webdl) | {{ radarr['cf']['evo-no-webdl']['trash_scores']['default'] }} | {{ radarr['cf']['evo-no-webdl']['trash_id'] }} | + | [{{ radarr['cf']['no-rlsgroup']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#no-rlsgroup) | {{ radarr['cf']['no-rlsgroup']['trash_scores']['default'] }} | {{ radarr['cf']['no-rlsgroup']['trash_id'] }} | + | [{{ radarr['cf']['obfuscated']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#obfuscated) | {{ radarr['cf']['obfuscated']['trash_scores']['default'] }} | {{ radarr['cf']['obfuscated']['trash_id'] }} | + | [{{ radarr['cf']['retags']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#retags) | {{ radarr['cf']['retags']['trash_scores']['default'] }} | {{ radarr['cf']['retags']['trash_id'] }} | + | [{{ radarr['cf']['scene']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#scene) | {{ radarr['cf']['scene']['trash_scores']['default'] }} | {{ radarr['cf']['scene']['trash_id'] }} | + | [{{ radarr['cf']['x265-no-hdrdv']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#x265-no-hdrdv) :warning: | {{ radarr['cf']['x265-no-hdrdv']['trash_scores']['default'] }} | {{ radarr['cf']['x265-no-hdrdv']['trash_id'] }} | + | [{{ radarr['cf']['hdr10plus-boost']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#hdr10plus-boost) | {{ radarr['cf']['hdr10plus-boost']['trash_scores']['default'] }} | {{ radarr['cf']['hdr10plus-boost']['trash_id'] }} | + | [{{ radarr['cf']['dv-hdr10plus-boost']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#dv-hdr10plus-boost) | {{ radarr['cf']['dv-hdr10plus-boost']['trash_scores']['default'] }} | {{ radarr['cf']['dv-hdr10plus-boost']['trash_id'] }} | + + --- Breakdown and Why diff --git a/includes/sqp/1-4k-qp-settings-sqp1.md b/includes/sqp/1-4k-qp-settings-sqp1.md index bcf3ac30f..b5a169ebc 100644 --- a/includes/sqp/1-4k-qp-settings-sqp1.md +++ b/includes/sqp/1-4k-qp-settings-sqp1.md @@ -2,15 +2,17 @@ - **Enable:** `Upgrades Allowed` - **Upgrade Until Quality:** `Bluray-2160p` -- **Minimum Custom Format Score:** `1000` (*1*) +- **Minimum Custom Format Score:** `1000` (_1_) - **Upgrade Until Custom Format Score:** `10000` -!!! info "(*1*) If you're limited to public indexers, don't have access to top-tier indexers, or are searching for content that is more rare, you might want to lower the `Minimum Custom Format Score` to 10." +!!! info "(_1_) If you're limited to public indexers, don't have access to top-tier indexers, or are searching for content that is more rare, you might want to lower the `Minimum Custom Format Score` to 10." ??? success "example - [Click to show/hide]" + ![!Quality Profile Settings](/SQP/images/1-4k-qp-settings-sqp1.png) !!! warning + These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't always a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add. - Always follow the data described in the guide. diff --git a/includes/sqp/1-4k-select-qualities-sqp1.md b/includes/sqp/1-4k-select-qualities-sqp1.md index 288da0807..033eb9469 100644 --- a/includes/sqp/1-4k-select-qualities-sqp1.md +++ b/includes/sqp/1-4k-select-qualities-sqp1.md @@ -10,6 +10,7 @@ !!! warning "Make sure you put:
- The merged `WEB-2160p` above the merged `Bluray|WEB-1080p`
- The `Bluray-2160p` on the top of everything." !!! tip + If you use SQP-1 (1080p) as your main/second Radarr you want to remove the following qualities - The merged quality profile: `Bluray|WEB-1080p` diff --git a/includes/sqp/1-4k-streaming-services.md b/includes/sqp/1-4k-streaming-services.md index dd6b8b11e..1811d1f57 100644 --- a/includes/sqp/1-4k-streaming-services.md +++ b/includes/sqp/1-4k-streaming-services.md @@ -1,4 +1,5 @@ ??? abstract "Streaming Services - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ----------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------: | --------------------------------------- | | [{{ radarr['cf']['amzn']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#amzn) | 0 | {{ radarr['cf']['amzn']['trash_id'] }} | @@ -18,7 +19,8 @@ !!! warning "Scores marked with a :warning: warning :warning: are different to those used in the main public guide" - ------ + --- + Breakdown and Why - The reason why these Custom Formats have a score of `0` is because they are mainly used for the naming scheme and other variables should decide for movies if a certain release if preferred. diff --git a/includes/sqp/1-4k-why.md b/includes/sqp/1-4k-why.md index 76d201945..ca3871019 100644 --- a/includes/sqp/1-4k-why.md +++ b/includes/sqp/1-4k-why.md @@ -9,7 +9,7 @@ - You're using your smart tv app as media player device. - You want to grab streaming optimized releases. - ------ + --- BHDStudio does HQ 1080p/2160p Encodes with the following features @@ -24,9 +24,9 @@ ### Tested Devices and Results -We've tested this SQP on several devices and added the result in a [spreadsheet](https://docs.google.com/spreadsheets/d/1fhwK_PLBfJjL6w8p7tVj-qK4GA4vqMtvGegGlNwbSDo/){:target="_blank" rel="noopener noreferrer"} +We've tested this SQP on several devices and added the result in a [spreadsheet](https://docs.google.com/spreadsheets/d/1fhwK_PLBfJjL6w8p7tVj-qK4GA4vqMtvGegGlNwbSDo/){:target="\_blank" rel="noopener noreferrer"} -If you want to add any missing devices and players to the results please do so in our dedicated SQP-1 (2160p) [Discord](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"}. +If you want to add any missing devices and players to the results please do so in our dedicated SQP-1 (2160p) [Discord](https://trash-guides.info/discord){:target="\_blank" rel="noopener noreferrer"}. You will need to provide the following info. diff --git a/includes/sqp/1-4k-workflow.md b/includes/sqp/1-4k-workflow.md index 5dae50987..489572978 100644 --- a/includes/sqp/1-4k-workflow.md +++ b/includes/sqp/1-4k-workflow.md @@ -13,7 +13,7 @@ !!! info "2160p BHDStudio will trump any 2160p WEBDL regardless if it has DV HDR10 or only HDR10" - ------ + --- *Possible Variables* diff --git a/includes/sqp/1-cf-scoring.md b/includes/sqp/1-cf-scoring.md index 3d7bb924e..c1b8397eb 100644 --- a/includes/sqp/1-cf-scoring.md +++ b/includes/sqp/1-cf-scoring.md @@ -1,6 +1,7 @@ #### Custom Formats and scores ??? abstract "Audio - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------: | ------------------------------------------------- | | [{{ radarr['cf']['truehd-atmos']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#truehd-atmos) | :warning: {{ radarr['cf']['truehd-atmos']['trash_scores']['sqp-1-1080p'] }} :warning: | {{ radarr['cf']['truehd-atmos']['trash_id'] }} | @@ -23,6 +24,7 @@ !!! danger "The CF with `0` you can choose to add with a score of `0` or just don't add them.
The reason why we score them this low is to prevent transcoding as much as possible.
The reason why `DTS` and `DTS-ES` have a score of `0` is to make sure that you don't limit yourself too much." ??? abstract "Movie Versions - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ----------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------: | ------------------------------------------------------ | | [{{ radarr['cf']['remaster']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#remaster) | {{ radarr['cf']['remaster']['trash_scores']['default'] }} | {{ radarr['cf']['remaster']['trash_id'] }} | @@ -33,12 +35,14 @@ | [{{ radarr['cf']['special-edition']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#special-edition) | {{ radarr['cf']['special-edition']['trash_scores']['default'] }} | {{ radarr['cf']['special-edition']['trash_id'] }} | !!! info + - If you prefer 1080p WEBDL with IMAX-E then add [{{ radarr['cf']['imax-enhanced']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#imax-enhanced) with the default scores. - The reason why we don't add [{{ radarr['cf']['imax']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#imax) is because BHDStudio didn't add IMAX to their filename before 2023-07-27. !!! danger "Adding `IMAX`/`IMAX Enhanced` will replace the BHDStudio release in most cases :warning:" ??? abstract "HQ Release Groups - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------: | --------------------------------------------------- | | [{{ radarr['cf']['bhdstudio']['name'] }}](https://raw.githubusercontent.com/TRaSH-/Guides/master/docs/json/radarr/cf/bhdstudio.json) | {{ radarr['cf']['bhdstudio']['trash_scores']['default'] }} | {{ radarr['cf']['bhdstudio']['trash_id'] }} | diff --git a/includes/sqp/1-qp-settings.md b/includes/sqp/1-qp-settings.md index a5259addd..902b5e00a 100644 --- a/includes/sqp/1-qp-settings.md +++ b/includes/sqp/1-qp-settings.md @@ -2,15 +2,17 @@ - **Enable:** `Upgrades Allowed` - **Upgrade Until Quality:** `Bluray|WEB-1080p` -- **Minimum Custom Format Score:** `1000` (*1*) +- **Minimum Custom Format Score:** `1000` (_1_) - **Upgrade Until Custom Format Score:** `10000` -!!! info "(*1*) If you're limited to public indexers, don't have access to top-tier indexers, or are searching for content that is more rare, you might want to lower the `Minimum Custom Format Score` to 10." +!!! info "(_1_) If you're limited to public indexers, don't have access to top-tier indexers, or are searching for content that is more rare, you might want to lower the `Minimum Custom Format Score` to 10." ??? success "example - [Click to show/hide]" + ![!Quality Profile Settings](/SQP/images/1-qp-settings.png) !!! warning + These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't always a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add. - Always follow the data described in the guide. diff --git a/includes/sqp/1-streaming-services.md b/includes/sqp/1-streaming-services.md index d25423ecc..64fe4569a 100644 --- a/includes/sqp/1-streaming-services.md +++ b/includes/sqp/1-streaming-services.md @@ -1,4 +1,5 @@ ??? abstract "Streaming Services - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ----------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------: | --------------------------------------- | | [{{ radarr['cf']['amzn']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#amzn) | 0 | {{ radarr['cf']['amzn']['trash_id'] }} | @@ -18,7 +19,8 @@ !!! warning "Scores marked with a :warning: warning :warning: are different to those used in the main public guide" - ------ + --- + Breakdown and Why - The reason why these Custom Formats have a score of `0` is because they are mainly used for the naming scheme and other variables should decide for movies if a certain release if preferred. diff --git a/includes/sqp/1-why.md b/includes/sqp/1-why.md index 5217aaeb2..afe840039 100644 --- a/includes/sqp/1-why.md +++ b/includes/sqp/1-why.md @@ -8,7 +8,7 @@ - You want to grab streaming optimized releases. - Small sizes. - ------ + --- BHDStudio does HQ 1080p Encodes with the following features: diff --git a/includes/sqp/1-workflow.md b/includes/sqp/1-workflow.md index 3f2b82fdf..bbe60fb00 100644 --- a/includes/sqp/1-workflow.md +++ b/includes/sqp/1-workflow.md @@ -8,7 +8,7 @@ - When a 1080p BHDStudio is released it will download the BHDStudio release. - If no 1080p BHDStudio or 1080p WEBDL can be found (not existing or limited sources) it will download a 1080p Bluray encode (less or not streaming optimized). - ------ + --- *Possible Variables* diff --git a/includes/sqp/2-cf-scoring.md b/includes/sqp/2-cf-scoring.md index 379d6b8b8..e72f76d16 100644 --- a/includes/sqp/2-cf-scoring.md +++ b/includes/sqp/2-cf-scoring.md @@ -7,6 +7,7 @@ {! include-markdown "../../includes/cf/radarr-movie-versions-imaxe.md" !} ??? abstract "HQ Release Groups - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------: | ---------------------------------------------------- | | [{{ radarr['cf']['remux-tier-01']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#remux-tier-01) | {{ radarr['cf']['remux-tier-01']['trash_scores']['default'] }} | {{ radarr['cf']['remux-tier-01']['trash_id'] }} | diff --git a/includes/sqp/2-qp-settings.md b/includes/sqp/2-qp-settings.md index 50a02c4a9..80e6e4205 100644 --- a/includes/sqp/2-qp-settings.md +++ b/includes/sqp/2-qp-settings.md @@ -6,9 +6,11 @@ - **Upgrade Until Custom Format Score:** `10000` ??? success "example - [Click to show/hide]" + ![!Quality Profile Settings](/SQP/images/2-qp-settings.png) !!! warning + These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't always a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add. - Always follow the data described in the guide. diff --git a/includes/sqp/2-workflow.md b/includes/sqp/2-workflow.md index 23d3cedcb..6d5c1f6d1 100644 --- a/includes/sqp/2-workflow.md +++ b/includes/sqp/2-workflow.md @@ -9,7 +9,7 @@ - When the HQ Encode is released it will upgrade to the HQ Encode. - When the IMAX-E is released it will upgrade to the IMAX-E. (*optional, see below*) - ------ + --- *Possible Variables* diff --git a/includes/sqp/3-qp-settings.md b/includes/sqp/3-qp-settings.md index 7c1aa136b..708dff52e 100644 --- a/includes/sqp/3-qp-settings.md +++ b/includes/sqp/3-qp-settings.md @@ -6,9 +6,11 @@ - **Upgrade Until Custom Format Score:** `10000` ??? success "example - [Click to show/hide]" + ![!Quality Profile Settings](/SQP/images/3-qp-settings.png) !!! warning + These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't always a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add. - Always follow the data described in the guide. diff --git a/includes/sqp/3-workflow.md b/includes/sqp/3-workflow.md index c34a04459..dccb66f05 100644 --- a/includes/sqp/3-workflow.md +++ b/includes/sqp/3-workflow.md @@ -8,7 +8,7 @@ - When the 4k Remux is released it will upgrade to the 4k Remux. - When the IMAX-E is released it will upgrade to the IMAX-E. (*optional, see below*) - ------ + --- *Possible Variables* diff --git a/includes/sqp/4-qp-settings.md b/includes/sqp/4-qp-settings.md index a2f92530a..2ea4d3324 100644 --- a/includes/sqp/4-qp-settings.md +++ b/includes/sqp/4-qp-settings.md @@ -6,9 +6,11 @@ - **Upgrade Until Custom Format Score:** `10000` ??? success "example - [Click to show/hide]" + ![!Quality Profile Settings](/SQP/images/4-qp-settings.png) !!! warning + These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't always a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add. - Always follow the data described in the guide. diff --git a/includes/sqp/4-workflow.md b/includes/sqp/4-workflow.md index 61e96c25e..d9d2d26c6 100644 --- a/includes/sqp/4-workflow.md +++ b/includes/sqp/4-workflow.md @@ -7,7 +7,7 @@ - When the 4k WEB-DL is released it will download the 4k WEB-DL. (streaming services) - When the IMAX-E is released it will upgrade to the IMAX-E. (*optional, see below*) - ------ + --- *Possible Variables* diff --git a/includes/sqp/5-cf-scoring.md b/includes/sqp/5-cf-scoring.md index 7c6081fe8..0ce9ae884 100644 --- a/includes/sqp/5-cf-scoring.md +++ b/includes/sqp/5-cf-scoring.md @@ -7,6 +7,7 @@ {! include-markdown "../../includes/cf/radarr-movie-versions-imaxe.md" !} ??? abstract "HQ Release Groups - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------: | ---------------------------------------------------- | | [{{ radarr['cf']['remux-tier-01']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#remux-tier-01) | {{ radarr['cf']['remux-tier-01']['trash_scores']['default'] }} | {{ radarr['cf']['remux-tier-01']['trash_id'] }} | diff --git a/includes/sqp/5-qp-settings.md b/includes/sqp/5-qp-settings.md index 13de6bddf..af2ac4612 100644 --- a/includes/sqp/5-qp-settings.md +++ b/includes/sqp/5-qp-settings.md @@ -6,9 +6,11 @@ - **Upgrade Until Custom Format Score:** `10000` ??? success "example - [Click to show/hide]" + ![!Quality Profile Settings](/SQP/images/5-qp-settings.png) !!! warning + These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't always a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add. - Always follow the data described in the guide. diff --git a/includes/sqp/5-workflow.md b/includes/sqp/5-workflow.md index 2d3fdcc01..54995c60b 100644 --- a/includes/sqp/5-workflow.md +++ b/includes/sqp/5-workflow.md @@ -10,7 +10,7 @@ `1080p-Remux` => `1080p-WEBDL DV/HDR` => `2160p-WEBDL` => `2160p-Encodes` => `2160p-WEBDL IMAX-E` - ------ + --- *Possible Variables* diff --git a/includes/sqp/hd-radarr-optional.md b/includes/sqp/hd-radarr-optional.md index fc182652e..663a055e4 100644 --- a/includes/sqp/hd-radarr-optional.md +++ b/includes/sqp/hd-radarr-optional.md @@ -1,4 +1,5 @@ ??? abstract "Optional - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------: | ------------------------------------------------- | | [{{ radarr['cf']['bad-dual-groups']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#bad-dual-groups) | {{ radarr['cf']['bad-dual-groups']['trash_scores']['default'] }} | {{ radarr['cf']['bad-dual-groups']['trash_id'] }} | @@ -8,7 +9,7 @@ | [{{ radarr['cf']['retags']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#retags) | {{ radarr['cf']['retags']['trash_scores']['default'] }} | {{ radarr['cf']['retags']['trash_id'] }} | | [{{ radarr['cf']['scene']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#scene) | {{ radarr['cf']['scene']['trash_scores']['default'] }} | {{ radarr['cf']['scene']['trash_id'] }} | - ------ + --- Breakdown and Why diff --git a/includes/sqp/hd-radarr-resolution.md b/includes/sqp/hd-radarr-resolution.md index ed78e5d94..7cf94d57c 100644 --- a/includes/sqp/hd-radarr-resolution.md +++ b/includes/sqp/hd-radarr-resolution.md @@ -1,4 +1,5 @@ ??? abstract "Resolution - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ---------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------: | --------------------------------------- | | [{{ radarr['cf']['1080p']['name'] }}](https://raw.githubusercontent.com/TRaSH-/Guides/master/docs/json/radarr/cf/1080p.json) | {{ radarr['cf']['1080p']['trash_scores']['default'] }} | {{ radarr['cf']['1080p']['trash_id'] }} | diff --git a/includes/sqp/important-notice.md b/includes/sqp/important-notice.md index c99badb4d..6ee26c82a 100644 --- a/includes/sqp/important-notice.md +++ b/includes/sqp/important-notice.md @@ -1,6 +1,7 @@ ## Important Notice !!! warning "Important Notice" + All the used scores and combination of Custom Formats in this Guide are tested to get the desired results and prevent download loops as much as possible. From experience most of the time when people change scores or leave out certain CF that work together they end up with undesired results. diff --git a/includes/sqp/merge-qualities.md b/includes/sqp/merge-qualities.md index 8bfc1274f..ebb63db71 100644 --- a/includes/sqp/merge-qualities.md +++ b/includes/sqp/merge-qualities.md @@ -4,4 +4,4 @@ First we're going to merge a couple of qualities. If you don't know how to merge qualities take a look at the following Guide: -=> [How to Merge Quality](/Radarr/Tips/Merge-quality/){:target="_blank" rel="noopener noreferrer"} +=> [How to Merge Quality](/Radarr/Tips/Merge-quality/){:target="\_blank" rel="noopener noreferrer"} diff --git a/includes/sqp/radarr-unwanted-sqp1.md b/includes/sqp/radarr-unwanted-sqp1.md index 34b92d29c..d9f535b77 100644 --- a/includes/sqp/radarr-unwanted-sqp1.md +++ b/includes/sqp/radarr-unwanted-sqp1.md @@ -1,4 +1,5 @@ ??? abstract "Unwanted - [Click to show/hide]" + | Custom Format | Score | Trash ID | | --------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------: | -------------------------------------------------- | | [{{ radarr['cf']['br-disk']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#br-disk) | {{ radarr['cf']['br-disk']['trash_scores']['default'] }} | {{ radarr['cf']['br-disk']['trash_id'] }} | @@ -7,9 +8,9 @@ | [{{ radarr['cf']['x265-hd']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#x265-hd) :warning: | {{ radarr['cf']['x265-hd']['trash_scores']['default'] }} | {{ radarr['cf']['x265-hd']['trash_id'] }} | | [{{ radarr['cf']['3d']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#3d) | {{ radarr['cf']['3d']['trash_scores']['default'] }} | {{ radarr['cf']['3d']['trash_id'] }} | | [{{ radarr['cf']['extras']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#extras) | {{ radarr['cf']['extras']['trash_scores']['default'] }} | {{ radarr['cf']['extras']['trash_id'] }} | - | [{{ radarr['cf']['10bit']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#10bit) | {{ radarr['cf']['10bit']['trash_scores']['sqp-1-1080p'] }} | {{ radarr['cf']['10bit']['trash_id'] }} | + | [{{ radarr['cf']['10bit']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#10bit) | {{ radarr['cf']['10bit']['trash_scores']['sqp-1-1080p'] }} | {{ radarr['cf']['10bit']['trash_id'] }} | - ------ + --- Breakdown and Why diff --git a/includes/sqp/radarr-unwanted-uhd-sqp1.md b/includes/sqp/radarr-unwanted-uhd-sqp1.md index 4359cad95..fca5ddec2 100644 --- a/includes/sqp/radarr-unwanted-uhd-sqp1.md +++ b/includes/sqp/radarr-unwanted-uhd-sqp1.md @@ -1,16 +1,17 @@ ??? abstract "Unwanted - [Click to show/hide]" - | Custom Format | Score | Trash ID | - | -------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------: | -------------------------------------------------- | - | [{{ radarr['cf']['br-disk']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#br-disk) | {{ radarr['cf']['br-disk']['trash_scores']['default'] }} | {{ radarr['cf']['br-disk']['trash_id'] }} | - | [{{ radarr['cf']['lq']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#lq) | {{ radarr['cf']['lq']['trash_scores']['default'] }} | {{ radarr['cf']['lq']['trash_id'] }} | + + | Custom Format | Score | Trash ID | + | --------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------: | -------------------------------------------------- | + | [{{ radarr['cf']['br-disk']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#br-disk) | {{ radarr['cf']['br-disk']['trash_scores']['default'] }} | {{ radarr['cf']['br-disk']['trash_id'] }} | + | [{{ radarr['cf']['lq']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#lq) | {{ radarr['cf']['lq']['trash_scores']['default'] }} | {{ radarr['cf']['lq']['trash_id'] }} | | [{{ radarr['cf']['lq-release-title']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#lq-release-title) | {{ radarr['cf']['lq-release-title']['trash_scores']['default'] }} | {{ radarr['cf']['lq-release-title']['trash_id'] }} | - | [{{ radarr['cf']['x265-hd']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#x265-hd) :warning: | {{ radarr['cf']['x265-hd']['trash_scores']['default'] }} | {{ radarr['cf']['x265-hd']['trash_id'] }} | - | [{{ radarr['cf']['3d']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#3d) | {{ radarr['cf']['3d']['trash_scores']['default'] }} | {{ radarr['cf']['3d']['trash_id'] }} | - | [{{ radarr['cf']['upscaled']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#upscaled) | {{ radarr['cf']['upscaled']['trash_scores']['default'] }} | {{ radarr['cf']['upscaled']['trash_id'] }} | - | [{{ radarr['cf']['extras']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#extras) | {{ radarr['cf']['extras']['trash_scores']['default'] }} | {{ radarr['cf']['extras']['trash_id'] }} | - | [{{ radarr['cf']['10bit']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#10bit) | {{ radarr['cf']['10bit']['trash_scores']['sqp-1-2160p'] }} | {{ radarr['cf']['10bit']['trash_id'] }} | + | [{{ radarr['cf']['x265-hd']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#x265-hd) :warning: | {{ radarr['cf']['x265-hd']['trash_scores']['default'] }} | {{ radarr['cf']['x265-hd']['trash_id'] }} | + | [{{ radarr['cf']['3d']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#3d) | {{ radarr['cf']['3d']['trash_scores']['default'] }} | {{ radarr['cf']['3d']['trash_id'] }} | + | [{{ radarr['cf']['upscaled']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#upscaled) | {{ radarr['cf']['upscaled']['trash_scores']['default'] }} | {{ radarr['cf']['upscaled']['trash_id'] }} | + | [{{ radarr['cf']['extras']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#extras) | {{ radarr['cf']['extras']['trash_scores']['default'] }} | {{ radarr['cf']['extras']['trash_id'] }} | + | [{{ radarr['cf']['10bit']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#10bit) | {{ radarr['cf']['10bit']['trash_scores']['sqp-1-2160p'] }} | {{ radarr['cf']['10bit']['trash_id'] }} | - ------ + --- Breakdown and Why diff --git a/includes/sqp/sqp-uhd-radarr-optional.md b/includes/sqp/sqp-uhd-radarr-optional.md index d4f7b5989..ea40453fd 100644 --- a/includes/sqp/sqp-uhd-radarr-optional.md +++ b/includes/sqp/sqp-uhd-radarr-optional.md @@ -12,7 +12,7 @@ | [{{ radarr['cf']['scene']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#scene) | {{ radarr['cf']['scene']['trash_scores']['default'] }} | {{ radarr['cf']['scene']['trash_id'] }} | | [{{ radarr['cf']['x265-no-hdrdv']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#x265-no-hdrdv) :warning: | {{ radarr['cf']['x265-no-hdrdv']['trash_scores']['default'] }} | {{ radarr['cf']['x265-no-hdrdv']['trash_id'] }} | - ------ + --- Breakdown and Why diff --git a/includes/sqp/uhd-radarr-misc.md b/includes/sqp/uhd-radarr-misc.md index 1bc8f970a..771da5923 100644 --- a/includes/sqp/uhd-radarr-misc.md +++ b/includes/sqp/uhd-radarr-misc.md @@ -1,4 +1,5 @@ ??? abstract "Misc - [Click to show/hide]" + | Custom Format | Score | Trash ID | | -------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------: | ----------------------------------------------- | | [{{ radarr['cf']['repack-proper']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#repackproper) | {{ radarr['cf']['repack-proper']['trash_scores']['default'] }} | {{ radarr['cf']['repack-proper']['trash_id'] }} | @@ -7,7 +8,8 @@ !!! warning "Scores marked with a :warning: warning :warning: are different to those used in the main guide" - ------ + --- + Breakdown and Why - `x264` has a score of `-10000` because we only want the HDR/DV versions of the `WEBDL-1080p` diff --git a/includes/sqp/uhd-radarr-resolution.md b/includes/sqp/uhd-radarr-resolution.md index 548b7482b..88738e7d8 100644 --- a/includes/sqp/uhd-radarr-resolution.md +++ b/includes/sqp/uhd-radarr-resolution.md @@ -1,4 +1,5 @@ ??? abstract "Resolution - [Click to show/hide]" + | Custom Format | Score | Trash ID | | ---------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------: | --------------------------------------- | | [{{ radarr['cf']['1080p']['name'] }}](https://raw.githubusercontent.com/TRaSH-/Guides/master/docs/json/radarr/cf/1080p.json) | {{ radarr['cf']['1080p']['trash_scores']['default'] }} | {{ radarr['cf']['1080p']['trash_id'] }} | diff --git a/includes/sqp/wip.md b/includes/sqp/wip.md index 3b82cf395..194f9ba12 100644 --- a/includes/sqp/wip.md +++ b/includes/sqp/wip.md @@ -1,4 +1,5 @@ !!! info + Keep in mind this SQP is a WIP, Changes are done when needed. It uses Custom Formats and specific needed settings that probably will never make it to the guide, being the guide is used by the masses and what's used here is made for specific needs. diff --git a/includes/support.md b/includes/support.md index d2cb0a334..92704bcef 100644 --- a/includes/support.md +++ b/includes/support.md @@ -1,7 +1,7 @@ - ------- +--- !!! question "Questions or Suggestions?" + If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support. [![Discord chat](https://img.shields.io/discord/492590071455940612?style=for-the-badge&color=4051B5&logo=discord){ .off-glb }](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"} diff --git a/overrides/main.html b/overrides/main.html index 3788c3d2d..fe188f8c9 100644 --- a/overrides/main.html +++ b/overrides/main.html @@ -1,12 +1,17 @@ {% extends "base.html" %} {% block content %} - {{ super() }} - +{{ super() }} + {% endblock %} - From 25703ad12f673895a2d555b09a6ff3bd295b9da0 Mon Sep 17 00:00:00 2001 From: sdaqo Date: Sun, 12 May 2024 12:33:32 +0200 Subject: [PATCH 25/26] feat(starr): Add SobsPlease (#1922) add SobsPlease to sonarr and radarr --- docs/json/radarr/cf/anime-web-tier-05-fansubs.json | 9 +++++++++ docs/json/sonarr/cf/anime-web-tier-05-fansubs.json | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/docs/json/radarr/cf/anime-web-tier-05-fansubs.json b/docs/json/radarr/cf/anime-web-tier-05-fansubs.json index c5b960200..e1b9cd037 100644 --- a/docs/json/radarr/cf/anime-web-tier-05-fansubs.json +++ b/docs/json/radarr/cf/anime-web-tier-05-fansubs.json @@ -59,6 +59,15 @@ "fields": { "value": "\\[Kantai\\]|-Kantai\\b" } + }, + { + "name": "SobsPlease", + "implementation": "ReleaseTitleSpecification", + "negate": false, + "required": false, + "fields": { + "value": "\\b(SobsPlease)\\b" + } } ] } diff --git a/docs/json/sonarr/cf/anime-web-tier-05-fansubs.json b/docs/json/sonarr/cf/anime-web-tier-05-fansubs.json index ea1ef2073..cef6ff59b 100644 --- a/docs/json/sonarr/cf/anime-web-tier-05-fansubs.json +++ b/docs/json/sonarr/cf/anime-web-tier-05-fansubs.json @@ -68,6 +68,15 @@ "fields": { "value": "\\[Kantai\\]|-Kantai\\b" } + }, + { + "name": "SobsPlease", + "implementation": "ReleaseTitleSpecification", + "negate": false, + "required": false, + "fields": { + "value": "\\b(SobsPlease)\\b" + } } ] } From d9b216846bb54b2cbb215fbaaf3cba2d8f8d69f0 Mon Sep 17 00:00:00 2001 From: TRaSH Date: Sun, 12 May 2024 12:38:34 +0200 Subject: [PATCH 26/26] feat(guides): Update SABnzbd guide (#1921) * feat(guides): Update SABnzbd guide * Finished updating the SABnzbd guide * Apply suggestions from code review Co-authored-by: zakary * Update docs/Downloaders/SABnzbd/Basic-Setup.md Co-authored-by: nuxen * Update docs/Downloaders/SABnzbd/Basic-Setup.md Co-authored-by: zakary --------- Co-authored-by: zakary Co-authored-by: nuxen --- docs/Downloaders/SABnzbd/Basic-Setup.md | 26 +++++++++++------- .../images/sabnzbd-folders-system-folders.png | Bin 18016 -> 30342 bytes .../sabnzbd-switches-post-processing.png | Bin 62724 -> 57232 bytes .../SABnzbd/images/sabnzbd-switches-queue.png | Bin 50301 -> 63156 bytes 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/docs/Downloaders/SABnzbd/Basic-Setup.md b/docs/Downloaders/SABnzbd/Basic-Setup.md index ecc04024f..ed209177a 100644 --- a/docs/Downloaders/SABnzbd/Basic-Setup.md +++ b/docs/Downloaders/SABnzbd/Basic-Setup.md @@ -12,7 +12,7 @@ ## General -[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/general){:target="\_blank" rel="noopener noreferrer"} +[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.3/general){:target="\_blank" rel="noopener noreferrer"} ### Tuning @@ -25,7 +25,7 @@ I recommend setting a sane maximum speed and then limiting below that, to keep y ## Folders -[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/folders){:target="\_blank" rel="noopener noreferrer"} +[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.3/folders){:target="\_blank" rel="noopener noreferrer"} ### User Folders @@ -41,13 +41,16 @@ Here you setup your download path/location. `Settings` => `Folders` => `System Folders` ![!Folders: System Folders](images/sabnzbd-folders-system-folders.png) -I recommend the .nzb Backup Folder because sabnzbd doesn't have a hidden history and having remove from history enabled in Sonarr/Radarr is the best method. This allows you to see your past downloads and it is used for duplicate download detection/prevention. Default is empty, I picked history because it is easy. It'll end up in the `/config` folder for Docker, which isn't crazy... but this is literally compressed nzb files, so can end up pretty big. But the choice is yours what you prefer. +!!! info "Starting from 4.3.x+ SABnzbd has a hidden (archive) history." + +Using the .nzb Backup Folder is still recommended as it is useful for dupe detection (hash matching) or if you need to retry something from the past. +The default is empty, I picked history because it is easy. It'll end up in the `/config` folder for Docker, which isn't crazy... but this is only compressed nzb files, so it can end up pretty big. The choice is yours what you prefer. --- ## Servers -[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/servers){:target="\_blank" rel="noopener noreferrer"} +[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.3/servers){:target="\_blank" rel="noopener noreferrer"} `Settings` => `Servers` => `Add Server` ![!Servers](images/sabnzbd-servers.png) @@ -70,7 +73,7 @@ I recommend the .nzb Backup Folder because sabnzbd doesn't have a hidden history ## Categories -[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/categories){:target="\_blank" rel="noopener noreferrer"} +[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.3/categories){:target="\_blank" rel="noopener noreferrer"} `Settings`=> `Categories` @@ -80,17 +83,18 @@ Covered and fully explained in [SABnzbd - Paths and Categories](/Downloaders/SAB ## Switches -[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/switches){:target="\_blank" rel="noopener noreferrer"} +[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.3/switches){:target="\_blank" rel="noopener noreferrer"} ### Queue `Settings` => `Switches` => `Queue` ![!Switches: Queue](images/sabnzbd-switches-queue.png) -1. When during download it becomes clear that too much data is missing, abort the job. and makes sure Sonarr/Radarr will get a notification and can look for another release. +1. If you have good indexers that get the nzb from the post, not generated, then you may want the Propagation delay set to 5 minutes (so you're not trying to grab an nzb right at posting). If you're not getting it from the same server as the poster used, you might wrongly have articles missing (since it hasn't necessarily propagated to your server yet) or if you use a reseller it may take them longer for them to get it from their upstream. +1. When it becomes clear during downloading that too much data is missing, abort the job to make sure Sonarr/Radarr gets the notification so it can look for another release. 1. Since we have the .nzb history folder, you can decide what you want to do here w/ duplicate downloads. Mine is set to Tag job, but Pause or Fail job may make sense too. 1. In case of "Pause", you'll need to set a password and resume the job. or you set it to "Abort" and Sonarr/Radarr can look for another release. -1. Suggest this sort so that the most likely to still be there stuff is downloaded first. +1. This should be set to the default unless you know what you are doing. Suppose you have a decent size queue, for example, in that case, you have sab sort every 30s, which could cause spikes in CPU, let alone shuffling jobs around that may be in the middle of actions. If this results in the jobs' order moving to the front it could cause that job to take even longer to extract/stall while waiting for the next update; as with sab, by default, you only have 3 unpackers going simultaneously (configurable). 1. If your hardware isn't up to snuff, including cpu and/or io performance, disabling Direct Unpack and/or enabling Pause Downloading During Post-Processing can help. Defaults are fine for most hardware though. ### Post processing @@ -99,10 +103,12 @@ Covered and fully explained in [SABnzbd - Paths and Categories](/Downloaders/SAB ![!Switches: Post-processing](images/sabnzbd-switches-post-processing.png) 1. If your hardware isn't up to snuff, including cpu and/or io performance, disabling Direct Unpack and/or enabling Pause Downloading During Post-Processing can help. Defaults are fine for most hardware though. +1. This should be set off if you have decent internet. The amount of time spent to grab pars, if needed for verification/repair, is trivial to the time that a repair might run and fail to realize it needs more pars, and grab the next part, then retry. +1. It is your choice if you want to enable this option. It's usually an easy check and does provide benefits if the job doesn't have par2 files, as not every release has a par-set or SFV file. Generally speaking, if we're talking about scene releases, things should have both but this depends on how it's posted and how the indexer is generating the nzb. SFV is commonly used and a basic crc32 checksum is better not knowing if the file is good. Parsing an SFV file and checking the files' integrities takes very little resources. This may seem redundant given that par's checks would also handle this, however, the ease with which the check is done makes the downside almost non-existent. 1. Only unpack and run scripts on jobs that passed the verification stage. If turned off, all jobs will be marked as Completed even if they are incomplete. 1. Unpack archives (rar, zip, 7z) within archives. 1. This can help with subs that are in folders in the rar because sonarr/radarr don't look in sub-folders. -1. Some servers provide an alternative NZB when a download fails. I have it enabled no guarantee that it works. +1. Best to leave this disabled and let the Starr apps handle this since it looks at runtime and makes a much more intelligent decision if its a sample compared to what SABnzbd uses. 1. Helps with de-obfuscation especially invalid file extensions --- @@ -116,7 +122,7 @@ Covered and fully explained in [SABnzbd - Paths and Categories](/Downloaders/SAB ## Special Rarely used options. -Don't change these without checking the [SABnzbd Wiki](https://sabnzbd.org/wiki/configuration/4.0/special){:target="\_blank" rel="noopener noreferrer"} first, as some have serious side-effects. +Don't change these without checking the [SABnzbd Wiki](https://sabnzbd.org/wiki/configuration/4.3/special){:target="\_blank" rel="noopener noreferrer"} first, as some have serious side-effects. The default values are between parentheses. ### Unable to connect to SABnzbd diff --git a/docs/Downloaders/SABnzbd/images/sabnzbd-folders-system-folders.png b/docs/Downloaders/SABnzbd/images/sabnzbd-folders-system-folders.png index cf46e1d01599fb40233b2d92a433c40ccc12ddeb..f3322fa8fe78fd1cee61dcf1065c1b82e8c9d001 100644 GIT binary patch literal 30342 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 QD14L^)Sr~dzj*im0JKR?4*&oF diff --git a/docs/Downloaders/SABnzbd/images/sabnzbd-switches-post-processing.png b/docs/Downloaders/SABnzbd/images/sabnzbd-switches-post-processing.png index c92508763d6c1ad758c4fa748ba1a3e99336bf18..9f175e55c6d8ee9d45059d2ef772200eb0308674 100644 GIT binary patch literal 57232 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 F{|}#SHk<$e literal 62724 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 Os4ozQ9v(dN^^IBArkY z3nWMjy+eeM1PH~D0!c{n2b}i2&%6Hrf4}cp-;)MeU_st9M*J(C{0nQPN&kbD-bK zQ5ED<{(5laky%IAf!<`#>nGa2d+YqH@A}1O=9Q!2#Ai?CXP&jS>B*N=7FSuo3|i7C z*=_5zmO}|PZ2j;B#s^irUjOk&`we$({^JP<>iJG6y72S9fD{c_zr2>q?}uL>8=Vsn z;TwnphPrd56OEx_-&#}$ntzv%=+UN@R$Byq>!YVZZF{VNA*HmcPv`T2Z@p6c4qxKz z%BkwUPCaF^^`2d2rq=K0P6l=BoG(j~{-ZO+e|FZR$LU@wIxr?x!_qR`mB;J-XBS;3 zl}(TszK&sZBA z=n9IR#q&-tNFlK~QejM~IGvNAUj9xFW`K#~%&lDP$vh*WhVDsjm(- z6@;$2ok`$Mnw#0p}ndycIDs~?zS7QvsrLA6~6J$W#4A)zjm=QSq6TqF{>-V z^TbkhR|=jHTIZrG7IcVk|6hk*eRa1Ios=r*C9verZVm`v?12o4-nnz~asiPV*Kn4~ zp*_-@TrM|=n3(jGH4?LyfR5}GE{NmR`^=}Uj`1#^T*mdU%Ea<-MCn2gez#ON^P;4} z-2nFdRBsbCH~6-LJiGL{vEXaPc!inS+jMB`yi-HP@m$j*|5P^)u{>PZd>d*Dwao{# z+{y?1U<_aKp6tbQD;u(u7C+1Id>J{NliuoYar~PrcL;Owlk}xf0n>cjxQSZRpbTvs zA=5A%Jvr#HL>*!EmQ4DM10!UJBNJc!+G)kw_BOe0XJ-%r+r9L3%CjD>5K`cMElBMN zX$lM!+p5>O(WCOHHySFEkJxWW?Kv#Fnnq*p9eBGuCq6bf2b#O-NCcl{9-E|Cd{a

OCMkFVeh?lB^@W0}gFjzMW- z!IwMzlh3bwZ!Fi{PDB8vnpqA4;yo+YGs~zG==M8|1BRY5nIGB5phdomkPP+fU5#tl zjUvPiseak^Sd@1szKN+2ef#5b$cxG2T?xmAyGBL)Q#S82&+dQIrM` ztNagTgPH@qVNwt$iTTU<;MlO^UYc%h9XcSMiRJF%Y(M`l@sBL_W~E+ z7QJ|0@YjyE&0jeZx4ysN=DC&E&rz#|%^ayY#*Uv~gKKB9c0Bi4+3P^t{Ttfr(`>$B z$|!QQbv9*SeY#BtdiZ^PDVtK>*suW<}8&bK%tD#o4&+T^a|x<<|Pid zSUZ+~agBhL2=-x+*dL~!RW0vRUUR?$Y!AuBL8GeP*Y#@d^OdsO9yrXOT!GaQP<)fUUCsqBZp> z`1|A?Xr}vz5oPGf<0TPBcUs<2_#vts<_Hhw=2$J!1!CmbU_z4jKs7iY-cxi}r)vP@ zy;1x&40xrhxyh>s{K=UYOlv=n3_|FwJ{4%MzF2F*nZ7X1XzoD%IoqGqIlIb!{jr{6!GjabI%^5VzlsIZ&!@;}_sZ`xSx z`1~cNWwt{~BpXX$?BGkXYgnsG4Se0cr}?n^$`hrDyy z(0q9r@u1gaS6;B^k3#p>Yp}R&(;qrS7vA^I7ZVXT+Vr>oa{brd zopxHAE>{h4iSthE@9ytRZ@Tavy^nLB41WDf_+KCQZ+h{6@dtMp-yOC1Pj!5?^ME1u z)sU<(ET{%#3Wxbkj;(OyTPX4Vh!2U&*rCe#2HuEk==#V~ag;ZquCW9m8?%%gj4wJCO`dE)0qXuB#pnXD7dRl${ z7ERSOc0S*>aeTbpBCk;UmXU7W{#!mD~S3nb0zvp&Gt3(lh zw(9|_zK=o!<(0QwL>kHX6@l&^2~K3E>MoZPs5<@t{;PQ9r7lf%Zx9gkS$Xx$ldedY zT+jLfIk;J89Xt8w#gft6*j1l{)B=O-2<>7{Y=Fxk%)E0+%d|kJd~&aS31fao5-=$% zB-ffM)bg0TFxV1%ci%x?+tAbH*|p-m-skA#8|HV^GHRx;yQ`-gEpMR);H4klgKZJtvK{(BWog@0hk!76VmJc zJzp=6J>_zQ&hU3-1J}S#SHt7WGEQch5NZL#A1cfMu@5ZdNXd_ z+@;@^N}l$higE1)NgybDkipzjqW;7Ik7gyJ&XM&$_sw)^A>ysA|lE?uhCtxAN zP9FTTwT!CqC$pn|=F+1r4H9OJsh`D}oRUtT8=c{K`+=^R=Kins7`hX;vE5I!n)c=H z>IpC<8GNEo+@@&g-Ci#0ei-gtTGV~-HU2HLKV7&SSeO4Xm)6~92aT&-4Vpg$ow*(h z^y0MZ)Hc~8mvuAi@(jw97YBRM&kf=dq;G|({|%F%@e*{7;rD875=@+i&`!? zY&%r{>eGMhiFQvW&YDxLEKc{52u{dJ6S(~h1h@5!)ehY^z834P!J|uqB#k&; zGEz^GZ%XLMsk3eF&NCX&rJhEvISwG3c2o#k4g7Jo=0Zm_C;K*VNCA0T zm`ZdY{}$?a(6Pa=q#rhS-_5^g%y3R+!I)_IgV3VnP5!;G{v$SMD zkrJC1kH#8^h?E{xHgQW9QB7h`jl4Zio3h zYtQZ57h68@+=R7F7t?h}elj6auOUQUR%XT`G;nTA`bE9RNj;1YTva)s$2?9y%fFN7!A&$ddN~+*+pacu78S9nv<1vKaJ}i zRW`DE_paq{u1EJy(GZ0WLG|+*93#aD1e0m#J2I%u-@K@tcx*=)xm*_T)%K1QPAN1#+YKlQNa-RZhLK!gzAi1&f z;L-yiCl&5RFIG_rYE*U@8@0j(rLi4*B>W6wa>3h2B?UHG61xGMtQlr{{lhAdI zaf0;M>X~8GwP(s}61)KNB@WY}J)%H=_x_n$uIxvgZHhLc-yiCn5#KX>w8?s|*-Ov#=<$K~VEmOQqa z6IZJK+0e^yXB-Tf~gCvfeeHA|K+g z*3kJO-E!9n0Xpu5Xzd??{Yu;#daZe~1c{b3)fG6k&yHAI>K`!`220=8XsN7vHrDKy zlcO5gcxQ93(jwmB!Yax9K}7}-y?g(H&5pN&@DI|)m|_p^$fo*k(W@Z}fhVhHEQu+Q z);WYKq8AY!ubsxM^hsK~9JYjD>n9Em)UEl*4I%ye38wFmZO+_K40n>BeH5gGyyCrD z)A^fl3vcb0uz{cD=Vh+AdYnA}OTI!eIvBoTr&0P!E%jvj;0-j&3gO4O(0;Li?I%gn z!M^C##NF!ROE;2ntm7>(MtUvb^IRj0Bk=z96T=Jg;{#MIy8L0Oy#~j%Y{}p%?k*y| z1{sH5{_coRouW%PDP=jqM3&|w_?JNa+jNUiuKFdr!rEx|>G(O_8RrOg7L&a=$*XR)jzqdSBHAVGO(a|b*b-Zm@xr|N~)BV&AyYO+E%St3d))5?8S7Ec;u z{6FDX!(Cz%k25DG<+g2_AN9=^b{9QVI3l7#Tlv?8Z^eXf!ifAj_}f+%{(tB83G%Ky z=m8OtUpMD=>+?T0&zr5@nQZPrkr%==f8V}_hu2Mpms@_Mw3hipNVlWVQg!9hL0MU} z*4s{k0L84Veq7}Qs&?Mug&4l5^_||blkSf`QDJ@hC_lwYO{eC(oS&dM6a(!#KG?tE zq3UAvqtEzz1aT1&?v}f_qu8&SFn?xQXn4bt_pIISZ0dHGAnkn^$A$AYR8*9s^E*dv zv*;@Ls^$k@fA5wN5s}!r)gl3o|C`swmnK^8^l;1 zkvQqsjwsKmHV^65khDBzJ z^6=A^Mz4io=f$*=OBVOi&Cz2}i!x+7s;!CW^!oP5wz|FmzpS`gzY-h z%`^vVKpfB=cD-#ZPUr}`9g>!NDR%;VDcSpAN&1PYxg)$5oyV?w>B;<^+-wKJ2|vF* zG!))XNwz<_B#SddT%8L{p!=~Nd1bOr&cleztsWzbm*eO6Yn+Ha-8lK!+zC2hDDKMYQOp zj7=o3dPe+M9O&~j_E<4DN$2yaD+|NVJhf{4-he1I(9#|gU9moFCSLks{BeX$uD8e` z4cQM(%Nf_bbo(d+oE=hdn4+Kgt zUex+@8{P9@+3`e*_70h(m=^w#DmV(TC}-(`p}QI z8;$1~6b;pl)P^gPCLlStT#h*@tV|YIu=go5*Gy#b#P&$GMX(I)A_!31v;gGm85vZr za8nGN&Bj)S!rAGP+9hNvVPcM?)soP0`pG%@R;ll_-2w6QLI+R&w$HFx`vkqSR{ZWa zk!Hr%I#VTao*$!}ee7Pxr)pB4D~K|KC+@&rd95;IZ?5h*mkJ#HMb+jeV`YKSIpGgV z2`##)yyID;tB7^h(8T$`^3!6dGR?%e)lISSZ;l72qYl$0&f-BjY+|8Obk|xBzl|=g zKGZj8<^vkCdPnr2%XS2p!}ut|ba;loJH*|shUhmj)vvrL=|5|}!;w&lpnTP0%gsESJ_7JjVutmf>%Qix1-~IU9@)tFLpU}iX{v(ER z(`K@S0pI3tA#Sl59NTHFEl(P4Mbf*-knK!$gAD@!e*Xf4?wpUp(?>O($*JW-a*m zqu!k(=eJUHSyzVA&aJlzae;TX)fTJvOkqXi>z9|hZ-SzlZ-zc-sL)<4Hz>iMW)YW- zZ9EJn=i*NTvZUfb#>z#}h)I7rlb8d>g22tH(D6sYv5H^!J2(|S{dk#Qhsj}1KxkL* z6uGEs_B94eAuh=*~7-~`W5|ruvw+G*VQst8)6CB zKsE;a!&O}wldi@U+qnB`&8_KtJN4U(NOV51#ipy|O$l)?BgqEZaGBtAcIEMl} zNG=o8b0*fN8Y}@1;%E9Zz`;^=7Fk)V8=LOAN5;94hP^(ONAA(Sv<`XpV;2;<;`?j47j;B&E985DN`>V0$kzT22sAZoB5zD z36EnC804j#Qo}BD4UVQ}K}FgycKs9kk|%?Q%ED)TES1VvB28~}-$Tb|mvHFk_|k1l zn=^fHtG4*84abDD$1#&?%SlZ18e3`Q&{PEVqQFjA2lcSQ3+=CZXN9l4u-+?)OQ+tz zN%%oZrQxCZK)LfX<&>t@ISOhFwMM^DN9Wl>H9et^ zeCVb(9=(K-I8T0`xogRKoDAsX3O~aIcGnfw7sdlDdC@lufN5XkN0?#ejNTWH$!5ENcQXo3( z89RA}IT+N`^wq*|cEx)#Ki&tCLTEse?Pka9h%%rwP@kpJZAjClVP>|l-r5!mZwF7- zp%O9jsW`n<76GrU0~d}?h+`P#`7uZn%9OZl9JaJ0oPt-ie$gH!qYWqGw+n=oveV2y zcI>9Ie%Vsidpw*E5u6qL;?nV^#M>d*p|6oscBtOqLt2?HgPG6OeXD}~z>or=ho2i0 zBn}4!2-j^+E5&h5=|y30TCNn?!#rHvAZy*prCIq#b1k?nz(8o;9bRo#(?-7IRW|tn z->+H1iJDExw{woq15mcYC6QKQEeS1}IWg|FH?)5>8h3xzz0smOH{rug8}Ck%2e6+BGo>Gq z_j(+y9B@wCpZ4xEu^Q&)hGR; z1IP08IN2W%o0e|xp`9FG^_SU@}A!LZ6gP4ZAh>N0dS35`yV zQs$=qyJPI^?zaRi?OlJUNmzuj^TgD<8dCanZc~@J1feVD1p@_HgpERY^?##*5E!c} zH<-W~s@s6D9XWpR62aE=JK(%O*Re%cDc>>0X}kYj!CK;IRt=Jk85S?xu#N=vAr?D| zwxbyZN^FYyfA@6DESyizwS*ff38Y;*npTQ64fp{B#McyLR6*o?LE217;;nvI$OdPdn3;2w0;Eg&Y$vObuaDoFZOd2^OG!=*o#@R!4F zxJ3YO-f|7Cw~{07^0g3nN=FJ zR=iQ^S-1`cgk%RoK#(uPm*qMd6cJJ~E5@NwV>K|(N}5y`TFl8`LlfH(jddD$QHo!2 z9vbh4MzbyYSo&$*JZy#6n89rYYj_`CB@5|1z{wb2A7$-NhPl_X<=V2(l!faOmU4}@ zsf1(NpqCVk89jejoAXeEm|Z%P+lPKV04QPn2KnOVhmQFW{aOu!t;iW{?|L6GLUTXH z{Z0Kay%Tb5%(iwzWl>-G(v{f6qKnw2>26v!EZ(fITB4BR*+`2Txemz;bje}I{gkzK zZ0*BPed;?(kK*4o=AKS(=QdR3{poY!uj6zr0;gY-Xy0GobLEY=;vG5_n{!aNaK%(9 zg8AEd;I1Ok?gugIaCvtkM-@bYb)@??_6)@_(`#kYb1y0d-c#IH;6%-G8k4p=c?S|) z<8`oD6tCvrX)0++J{=5#C*~#>J;}I4PgFMYM;5Ag2UHI=FW}b(@g+Hs3T#%%@$SP} zL#p%(cd0G*W1y!6$KnM*$8;YLhtNX{5!H+QjqxGtrH7#M6r zecd#=N?b;S94omA=qgz-I)z)LPPurIs&97!krQ5NTHtkQCT^rwbJ68%a7}#61?>S7 zYukk*^tg8IbKE__L~R>}cC~w%L2&#u1*F(PoEsUZ*LScFVSnU}Pb^F<2FPQuWc7wi ze;4>YU6@LXFN#5hS`--EjeV!NC~J`z)@K(k_ZZf`Zk4;Lbt(E4FbAGp^+J^= zVU#tb2hB+~c?LFhRLy;bxur-W>#5;>5r6fMOzG|Y4>rJ{TE*v!+nwuglqrfh^L+1q zY_%DkI_unniYSkFF*|CEt1DAFQ39K-Z~hvuT&?&zvSK9WI$ANR_lBvD6)Z(doZ*TY=4kus&i%eC96d5Ic2Q}3f@E8_LZZ|g7BqEvrG-5}MN zR>U%ZEE`e}ejE!NPFc-sijF872`cMwLcyN6T_@?dYo*e2I(QMxJt1#z;IIy5rVjGq z)wG>U{#w<|ab*j5N_{2>jLyqdD_?%>hSwQHHoq=o-6WqT;cKdVdQ~#DhuJkPL`pJt zK=}#IdpH#Dx5ph>#FOLhZr3g*dgsdX!k)Be1?(f&IG7gc3?0s;64x8BlTQJyWj-#f zL#*GH#U06GrqYEI-5S|yf)`6r6_L~(W@ zMy_aTyG7Ga&+nDR+?h90D)dExsbiB*#UuGKv*nHaol3HOWK+cU1DBuQas!*TtS=#T2HlT5~IMqLyK5iFNFUJW; z^U)lFCzh6sroHX@8EwVxp?w$$l=*C{LK;M0uO!*zB(J!Puj+j!eF&R%nu}P-ACfvp zC?Aq-^BEbDdzGhMNU@QwXmS}Q>l8JuQC`uK18VTxK*8Qc_FGVf{!Q%u@eZ1sbG})8 zdkCqbG%tAKVmFJeI^c0y96t@xbV9!_?-)NL*rOO&7NFUE==`(Oyr{GW{zgT`NR1aV zV+r3~h1#LpRaIWq>?dhT_FEWnqS9G-gP@!LFs8BIE>AN-^Cv77J3qGG2+va>1-jl< znkW`M2M@3Zra$4VhK~1PR{ERwiH8&-4+FU;x`3YEv3x_-0UF86rLPtqpmD3H{=Jzv zav9Z?q6Z#KgC(NcK;#PF@HVgb%l9B&)T`qvNM0b+pL?m8@;kOXaLO*!?<92qG5S_z zdt%y$`e+Vfm3w^Yn3o*&u(DJ^;M?&w?hRiX)IeH5JFUt$9Dr?Fd)=g`NLSN-Gv*0D zu5{1hNqdLhzBjh=YtvkFRA+cqfM%|(&yDogYN_^BcKGu(GMT1l>p)`_zhTER^)dZ+ zMojbYsEb^Kw0ncv?X=WLWraBF6wCO2eMqGw?e#U#!d8Udkok=g}&Fb)-EW>?kx5SJl7&wf?glpYdHvMVOG zn@zr!NQ$*Dhjyb_Wfev2ryEX=>^y4S4FdM1K{1xY4r-wI^Rlq3DVMC zp$=3SM}zMYSfF!bW2n~#AJH=0j~ZRU#h~#_yAa6|d(4LY8Qexwr%Pp}_BlxLJsw9J zo)YpD^3`Mf{nXi6s%KV@WkUXl#adE}j@r(geC(*6TrrNHX+PSuQlDx>R|9NYL{0fi zv792xag*!w6btVxdRGoF`XA7IUR4P?%(&5W;PuP!*W@G}n2q^YB=CSW!&2^V8LwfT9k!-xnvXB8x_4 zvs?vEuc!NThtsCxQcqI@v+lxJ7q9(i%W<0#s*q~+zsd~yRy6!Kn0)i{A2`hB*Z)#p z+`J?r@;?N3?q6dIlbT`Pv>e|xG%&EzMvmQP(m)+X;!?M|dxsaoK8gx%t3V;lw(hM9 z=TqQQ`t(j!+L5jMi|2(Qzv=Udx49pMIn5-m5x%xEbAIdAh^;V5PfJF{@ypKdoc!>h zH^q_Gc61X!a^mItgt~qB!Qa1KS!@eQukfp{1%V3Li)skn$Ix*Co=G1eIZjoM5IbssjYwA>A}da(7%y?equqxZ6HKByGX4m zv|I+IYzmU=Wbbo_Q`41UO1el5*NG+OkM0_r<8nJE$?g}lRLg?(;UO-c3S0@E$~u#r zcD~Q7Gd6woj73EM>|r0R;0s#72yTg>3d}(P2nJazl^P6#@CxdS*A}T3k_?=z+*LWfW(?Tp@zt<|h@hoY&QD)A*36IO zpu;tBKR#)XoE6QL2H6ia`IJ@wy*kTuLhduJhA|RHxS@=P;cCq`i9d0ykSYRXBK_06FYS-h9D8s#`TEiU9P=dNKxY*OEUD|lfV||U2Y z3PgJily-|>B&WSXwH;uipTlHm!SGJWLv>BX6b}$0Iam^MRs8G@sZVyL?*1X2lFh%1 z21}w;1H_OSr&+EG%vFELV25c2&I~ibl5%T|64yJvd_5qZG}g9ZWKm$=o>m%Oy290E&j2A!wJc?@s;Ulq2g8{iD){^3v08;3{<)bRY;2>L998k z6^kPpxbwlCdVT1=u2pK0{^DJrETPj63)`?Y`;zE$Z%>One@+NyEJR-@=eSp_M37Yb3SM|w}` zh#QVk8elHp)ZO)D`)mgaA7JtdwJ;kT&*Rs*nTv zC2{rA@>~%xh~WU|7n8Hpsny)Hr?WYMyFYToNVqL}=N>!8{EkZ& z&ww|i$7oxzovuOq(+1W^I>vCo(}+mJp_5EovbB;9bc)KPEvnp(gw`#Uxpkfp&n!A8 z?{b_!IhG1C)oY;8U#Mzd3oky~ZqCEitrfma9xx}xDl-uRKhPpIU8PRB0kYDfZy;!dn!SzKrX3nK%>>Ef2=md?4TVE*Una;$U_!Lo)=iPNUw`GFKeC#q^YKf?{eT46yu-ZG7i<(MEeu^B4_)W5!duHL zBxgUKZAnsUJFI_n#yj?#x*-YF$I1&aDz-Q$EmG4S=X6$wALe-NgJ9sfO4vhjPtx{k zymh;6#(1^(LU0o2ZPNny*8yNY+9l|ycy8)$PzqP^;2H$JRH7X0|3Yi%s$x-HivESj zYjU89lZ?}(CH4`Jx?3XAHTMbqRBmHtl}@M;N%uyldZOC`zN}54y;7B31mm5EPVjYl zEZta^wdOCUeTI2`+eCcTVv+vs7&l8FgN3LJzM+}ozOJkekT$;Us=s=nN-clvXobCR zR2k$X`e0D(2|(+HWMsSYVMpB%lh}M)*@QrCmzD%KYK-HgB!nZJTR1P%>YT24|I5zu?pblm0YDCjMqAN^n> z@q$v=Y?_y+IOjR9#lVm!0RneE#pWm`e$W5ym+`TYlhgJ56LQCFLCO3Wi6`U9OC1rZ zI&z?;_OR%ue!k7;z^xL>N+fAx#jjSFGxDqLWKQMpiWXA0aCc#ehdx_Q!H@4Wur)wv zXr95KbKfZ{Ag!iG#B{pvLlxxO=tC8!6swe+P@Sg{3iUe8_3a^7cxr_iRi9S!Zy8uR zexMM#Fl(ysL6Ad%U$_Z8F!>a8Aos*qP~iqyBDx)75v@Q!Hxf>!ISL_?!t0ZECRp=; zEWVXu=(DQaq9vwdurHw2>FoG=aMH?=ugaXnNsgJ1ZHj!LtbVy%uI4;A2(10OoT}RL zQ+Qgl4Sq6#BN>C@ursm#LX!f;Nf!_sNkyL4OZ4|Qd{Mb4jMe$HqQs#PYbVf7AXR5IfCty1bC+O;nUG@42>(cu-o`oOrlKV$JU$lBAEpQbe>;eIG|7y5R-dX?Upof&Fl7Y0hWY z3ipr=mh8yA(!lPDT(|5%rHI+Eh5Xoxwj_OIFgUxgY)EO$II5Yo@wf@#Odx;XG*VY# znI#G~T&j0ip1DXq*wI0+tXW~|RjUMyqefvlhMkmVydj3i1kY+VgZjt`1td)rh^z(ytN|cRUs0Dv^R_6EE z73RK*>nvK=Kewm#X!|F6Ad)O$Xz`pzbm?KwuXF5X+v}7-d!e6Eqgoy_I@h?9oVTkf zm*@e+SwQq9xr)lokBm$0bqIQd` zm&Lf)U7*brLqGiR?!v&0Y^lcyyPvo+DaQRjmv3jimp)7>Ta>4}e?VC^D}VRy=w{rT zzKIA3CVA5-J$xS>+!(ZDvJ?V5^C|3zZh}xbd!@ki}@36M+ zD4rGu@ih<#apeoxA3OZ~BAowPHxQ2~pPZLdMLt}W+A(eYJx2$fcV8HhZx@oe+Lz3< zwK2bi)mfo*kM%9OKQ{d67-xU^Msda(~)-C|z{(A%(8`*7TJF`Etwc z6wMz$QhNyLy+|Ari7FBD;zUI5y9=c|FE6n?t;-pYg?R$cGcBkfd4COje5)nLZICxopqPK336ptgZ^+2aEc)i1%n`C-6FfGt&lC)Lu98(buhrA3s z^iqx9nk6!Zgz4pCzVYC+#Dy>Xa+B_Iju0@cyYZ?kWz|~5dyJ~_`F+ej%}H$2?w>{s z{Qe%M$ex)vtC z#xcC{<*^!{Niq2PCwJfr@P%x=i4Y!^amz|LD{A?>=W|PYsR4 z73IPjxS9eoL5+KGazt8q%*I|wDv8JW3z;Ip_cjq1TR)4EOG5#n`2iQG)kJIvOm_49 zjbku*C~nyfJ3iqlon=3a;7!CMHRE%x(~(MBn#dJJmECBo& zrOi=&Pj-g6`*M%fJJ-qSX4je!@rWe=9Dmb8%LKa?+%ucKSX@SJ%)-t{WyWBTD8xjM<&szPw@=pINqn^L$*G8p6fSo z)#Yh-VEp0`tBI^NEVavsc1@5U036__Ld6J;D7oVv!e9=OvF+@^lN-&*DPc8FOxs7)?OJq|i5(N|#%a3R~p zUm?Gxyi8iG&=QxjZa1nzUQ%_p+m5m~fT#!^0!xh+k=;gIm`3&$w+xfTwR{@~h$D7m5)}-V~uLYn2-%_xO@uT%Z2Fza^F~x?kd}Q#< zl^D#^cX+xoJmHJdElF`T3zplb%m-EhP7pn(iFyNYeTJ!Rs}H5>Z+89%{8GcG#~yL8+|n z(0C#5Wu_|+l&@ZjTcWl}pu`;Oj$m5S+H1tZ&BD8sP34xNM#4!IHjOP_)JG5{L`Juf z7qz3n&j23in2{!}Nk5P6WcLJY&_6&A;-2B!wN2RR)v%0VHIE{_a;h~>QZn?7rHoR| z=Suo&u$4hz_;bwMN#x{xnR!C#gACgn@a#*-NuC- zh|XRsedQ-vqL;dQ>0L-)=$sLGj(ikSuw)Ih*6jxd7>ppOS^5w6J3RUm-Eaz;HU{u2 z(_*T^^3IE^t~RCWl9fC=TOZm;sGbLYu^S{}V@}P}lLB3>SjVr6KU*DhnoXvw(zv41 zs{FPn!|_TNwC4ill$>fnqtj~&KmMh`0*+ynqaxJ!88R&1e9}&-x(b?Z=g31kB*tW0 z<^mg8iPnOKQV&FQ@QPd-dhvy4%4ceIxz|L!%j4Hz1>{H58U27~qMpgxna;b1detUW{dQvB@Yh1U&*Wi7>| zh$(wEM`J}NH_+wP;jDP^ju^XJUKlT#r7B6n=Q?vAZM|~BwoL8^)NIJ*K}l1t+HIR* ztP`oPyBC+h*;Bz9GQWk$M@AB>ibB-yLH5vCuj1Yb9sH|#Q= z!mZwrxkHUb=HL-hLbR!51>z&?=j)OucdUcV#A0I|S3)2482!a`j8Wu+8O$_j)19y4 z=UL%{{;vu551bS~Rsp3OzLK?7;yX2R;?XHi>FMcKSwXIM-IiOmROCv$WBs%h+@AW0 zO}1v{X0c8`hg?)zE!G=JkEBr=;A$f#Ids?y+meM>Lz0M@`i@AS6%r>A6qztJ*O4{~ zRiN&75f3g&Ph41KIB@52J-)-%C_rY#9!75_kwr6XT$LV#6sF(Q{>EBkw3(VuUqZ{atjg{!v90D@S-m zzBuTfKI(mMO!)Yj^%yA~r_q&i_7Du_xwiW?%;>LI#~Tns5-6uNr-hSU9zXHh!>*zorA6zY;Z%(k>^V{bZ4HG3TlW!yryZ&?ox) z+e4*?tCwn?oeLz>4^UrgH&9?XW06)|Iv{DojwJh)?%i5gsXWAW{V62;p}CM#jl0jB zHMh;e>E-H?Ynd`#M&}KHO2rPqEOA1bbP}w#6g-E^F)@hWADLM+TGH1|8CM6y zTVwV|y!i{c>y0u7v;jR)F~6T`z8WKbls$9Csf7`b3t_wA6kJB;l$-DD0?oHxnZ#W0 zAl7~48Z2(V7Ms7I8<#Pode3F>aj73wT_xAheZ!B?00srDirberb>iaL^R0TnN567X zT%WC2u#WeFMY4gp9C0dh`~5b@NJ~!(P?j5hkk>*~q|C>xTjgNu1G<_!UHYJ>sF4@Q zS7x5`#+t3FWA5>^let$B6sR=o_hqDB?NSHJm3(PGJRrU$-4F9t%qw>+L%F4`MW;`3 zg;yGqP15$qHx8J9&5oIjp>pMfUHgu2Kw7&?=J3s_5~m6en?iDvBVWGBon08=f$+d_ zk8_9$DjqF^J)%yrYAcQQISPmf>Fay z0^|2br2nmUfPf-s;_}xpaz1{P%}}&a7=dE^SdaIQT^_tb%eWAMl_tQ1 zHV78h2+RB!ftMyv3?78x0^rA_wvME}pAsTT=?{b_OIti1gt~;~H42u%9{OuedI#T7 zbDt=j0WvXsZm65jmdsngmg;eLejEbc)X04x7KB;vA}r2t()XHay@(JnoG4Y%I=Tnm z(KZ}0W4aO~%rtVAF&oWaIS9ezDB;dlH^1H!o>bF1?cFCg(LB!Mi1A-~Ek`ppiHDJt znqfn(btZ3YV3;#$IT;F#ZV)V5u5c@F<_k8ig$CX4k&%`TmdE2%@Hxw~Jt=a+!>Ou2 z5uH#+fOa8rl%XTfApJEF86V5ehnE*EL+%@h5{3V{NW)ND>3P6?DjIbRxH;_i1;W!D z_kR@9v7>(A=cKtTz}O$eG`co4KFh$^c9{E;RY0l85&e!(Xtob!q0(vHbm&xDw6!D3^BLPm$!gu_XU4 zJpW9;glqOBzVXB^raKwK{5->TTj}Rlqjw`zPZ+1xnj6%K=((5Zb}&iyL}_JzA2j~E!|#r5iq>5 zLcs4I0SjvvML!#q3pxn=rNV&R(zRwhJUsX7kRzClbG||66L?kJ$xzt(OD0g-3UMJ2(~odWG&9z{9PzUBHj`#wWRh>#ugF z09PY?XDveX@s)TL3++PaqmZQtbu?ZAav)7_cvS*4m){B#M-d>+y5Wx z-aIbJ{O$X$X{woNpB8tWmeDLXGBsB!C#~Enb4{frHCIw{AqARgHMh*%w<%3?C3D4% zN`+jITv1WU4O9dZL<9t$Q=6r^e!uIwuls)P>v_E%{?rpVIludHe2(`A(nrs_CW$`i zayYAoPdnBcHM!p?>)x=Gehg#Gju(8i#5Ej~QWfITifgT2+|M`w@^jgG&A&rs>n4Ki zH16svYpB~9mmnja7Zj+yJ~}5u?q`j?MmKRj!mxV&SfYc*4p_*bZk9ATAJ8!w z{a7S2yU5r~a_;)x7~_;z?3wBPUZ@H9z%vG0}bF8A*y zs`_iLJ~XD0JF0cC1w3zgQ_eH!BYtfG=L3_C{nS=EC|}*m&3r5ZPs!inx>7#lc{w8o z7sAS{?K+!Wlvkp4Cyk<;wReKw{S-xBfMBMW7EXd1z+7_aR*VOp2V!n)j58ATv+?m>w7Rctnp5Zp}L#RB- z0d2LdDoZ8KiGH{~0CEQsa;O?%6%1nxyE=9Fm+=l^R3-X0SQogbu#_X!Z_Sx!q*qOy z@wvf(eykid=)WmReQw}^r5>FK?4mFvJs2lk5Ylx=YzBhL`(uqT&)GkQi}?mac#QvH8-_}*OQOhE zfs*YSXZhjRB|5><*FI+VMCFueuv&q2pbPKHIS}1HT&*PPAkiw8jtZWW&tFU+yWly< z500vO&#luOqK+hcqb>L!^;2fkGo-lw89!IKWZCd#{LhKz_Sp2Py!{4fxVcBD>kx5i zqep)UAm{gK;I?QAYH>g~OEjU|TaW&XZlpGdqa39Xvznu-TN?}gfo3ZcBoBS|b$F_w zJAUTZhA@znQj4aGO%CdPtacd$uEssc%sGuX7x-@Su&|#pO)slitPP2|iJNSY%{jQfjy?g7LZ`&eha<~H$q@o|EuXcUOy3L<4 zeo1(tgJD#9uriVB-K=%I|EwhPxj{qiv8p*R@)p!he#ro%N;T<%SqlMk#S&ii4H#A3`6?g(J08Jj6_sAL!Xd2mOlz7hQIMcgs#7 zhB)dRCoV-enD>L|tdq8Rw?lM+Vl_B_7;c2#xITa z;p_5?XJ~;OZtP{ntn-YkD4fUQ6Z{=FXnIP#LQVN(2~^B(aJI^!3N}jb)i^wvoE7em zQhfmVB-m1GlqWhz5pQf6xF5~*b;r?Ceumsw)ZEUNf6sVhqm4qAU5?h#&3+E$4*NBf zK@WnKhV=b1Hb_Nexv|(O!LduJH%}dflfr*a^maSSc`k((4CK#|=(R&Tf+;Jte(7yR z(x;=vPVnL}v9>9Y9Pb%;LmhSu*oq!DWDa zts0tE|MSpPlfEiL3c9WMOtzL}+-P4KCwME(R^~TkqSduBO`^-;go$S>Nv)J}9y zb-u*PNcXbag^uzJ(>DLaEzD{%?n0k`iH&QLn?(erll0sm>By#2vz4f9tdrjew50xA z!zd|GMo*kk4SELJo_UbVkoERLQzr#e23xc55`%pw+o0`51_s%lEZ<8Mg^64_~9(Us-TxU-J_hH~Yxc2h6(vkOTnwvmHL z4^I?|ZR=NuhYxrIM;FTbER_=s4n&=)GpG`sru)MW@lArHf@a>A);vmzXpXQzv{`&e zfZ4j*V4Z8!l3Uj7 zK&<@WFXXrRZ>YlA*Y!-6D;~TGRh?+_?~eEu2YEl>A+j9tO3fdxvI|fZXwp3U+e+^m z!CLYd7m8D7n%v198FFXPCT`{UGSWMPq|0DBd7=$YIlBwy1R)=aaVlwe2FOO4xp4<} z*loY0gdlz2?J!DEZyN{_eT?gDPtFgta{1Aw5H_w#gT0QN(lz@umuHt&?fjO$9ROF_Hu41tFh^kfSNAZIgFy0aNou60zC`FV?aO55_V zYXl88q9=7|yJQO~*`i@M8TYz)_Q4wzLbj)Z+7A=Tv6<2$Xk=KIa`2>7sEn_Sh0Mdc zCy)K_jq$%rBOGoxtOd1*F!wGt*gQ6VffCa)ZLx`M*L?Ar;p72)A_X==#v;ZSe(#s( z-F;FQgla5qgLPU-PG8|%*L?JF)@yF)gMOY62vln(8%qss=VGt;mBu#QwBFism69ZU zpUgllh3Cp^x*n2ix){;X$2yuYaUkxE%7ipZJp!w(##X)?*YO|8FVjHG@x6$f6Bc(4rn;(tg+;rmpOX0VLvdg-+S%sioDcg93^lf;kq973TqWPF9g(#50x7@k_3XBz;)Qo3 zbt9U9Rx$5f^`*R&i1>)X?9by-nga7Lhp7TUrx^07RC`$v%E1XfKTKD4eQBw~4+Vc- zPh|m{E!OH`oKIi7c%AL)O8xd_rK^w5B zLhsX#(TH;4)I*cr;|$7;%3UK!iLh=n2FGGVaMG!ZaYa9&C`@bWaCjkXIT3A6jL z{fxIitW`{sfTAtd6{;W!t%0_n3a%ir3E;fi#`BFt$P@4m$3CeArq5!2{r(F;RUh!K zJ6xbxJmoF9aY;wQ6TJ5pTZxhu4+`1dzpiG>#Qghkc!DHmc$PY(Ar=iU&UcK?SZ{A) zB-|RVtn(HV12`~d8-uu4`+*`uX8A@(&U;(|B*~is6v76jig++CwV4~N_a%Ypr~ow7 z_m5g7D|B$S_<@^Pzdi{;wSz^hOf)Ku9fk1E^SUiGTO6d$9>>4C?6pA?ub%=`)eimE zV5rELN&lwRybcd?XC;Wd!eQHRW$KBM}TW{ zC-Ot&|Ee}DN?F=Rhm#~GjF$5?tPq$|o$>psQkJg1pM15IAUx{Mo5p)!C!5JXT8x-O zza)l*+X02k9wXi`e8dYZ9Aw4ljefTg);QR}PbK;3thj%k$`J@!!rzx%sb0zc)=15# zCu2I52Gg<+qw&%O1+62rVrFhNh^vNv^Ik19Q|8V#LLiFDacwz%sybxEX88NnH^mV(d z*i|eN{#9Ydy(w14c{cx&{9q`JHe&{1JkZ-RUgkdchBUtIk-+NCIPtETi)?vp%$LvG zyV@bvgXYK>$b6}59SvAUi4AAlrl>8+^q>`}lF*TdB_RV4l6zUQ?ie-;r6s)Bs+Bz+ zE3OQy9#NH98hYyszQ_mi+n+KE^|tysy6c)3*T- zq)w?Xf`qsCfuXzFqW{}k<1cUeznmt2eUmj(2f+4L^TE#8KQk!*C@=hi1zbxQ|0e{q z{|x8Inf}5h>m8Z^-o9l1w@5tA+&$I}EegJ;(Xa;dl>8mA`)Kr^pq_yN@CUi_Y)8EG z&v)9R=dP`C5tv_>wfxTzFeB_;!L027xMzZ~JI*SeK?kY}XZWdth$WxU>7jh_rawv% zKTr3uLO9FOL;88&59!fi)FQa z;nG;Fm6jQ0`5d7Z`H#3t^86)GQXJT^eHROGUdN9vY=|H?d~R0llc}@u14@H9D?oJ-FRbl|Xkc-86tt zvAS-5LkZfAeN|90G`P&HY4wxh+#(c;AM+iMQULq!?0_yNgjLdelOQGpQ9o4nAB6^# z_|N6Ma^Qmc(SerG06OE^teTl*@&c{*b&}-0C zU`<$sqej@vnA)e1XB|lyEo8A{v4iZudRs5yB8eDge1;?47oAgDWCov$iL7mmG~E^w zrXYM`5ICF{ukKzrAuVHgULZ|G&H*tww4s}ENZ82ZB1O&meQ+3UPWZY|FkkXAhD?LR zpoGM@hXqco>F^$8Z>EtF1oEx4sDbuxsc35?@4uQ9|9eatak)N8FFvvLs6YlJXjpjK zE1d)t(({iCrd*c_QM1|+Y7ix^&8`*TbbB~fXS|&wpGCgGf`Z)|#6r%KkoytVZ7Y*{ z$BVD8fOfkn$ho#Z=!*00f)qW>=YRyEZFQn0R{d~E+*JC}4WX_0^U(KOWa= znM8X7`=w;CxAtKvtRP_<-x|1Su9csx5PwrC2OB2}Ybgtogw%sJxGFN}rgrH;MTKZN zsHPjmW`ypTAyvfD5{#xmy26>&wK3@ony1L9QRa2aGt#!fIQ1;1H5 z9Iiz3>ZnYT3TTP#oU06JSNo4`ud}sC_BDIH*`nNDx}|M$F9E-m{X4&6YVa0CT4)BD zP$yW?-uO7kjeK?xGoHlzj34s18H*m2`_e?znu)A8J@HPLa;UL`yX=|K#*0;tm~5MQJkNC zSjQ3=^-??+t3@%5u}#$Jc}?(5DW9NF^wvM<=D-H;500-nM-FLzoag2ckQh4E19Ff! z>n?7@Pj3-xpyo8W6NCzCEeTv%4d~qd@&Pa{qkrtK?)wnga3;_FsSYKf%m@GJ(E!1^DVG{OioV`ZTUBUQ_xX z`QS+4(;@%5xc+~XoTBwJS+hAnY0|0wF=(|M_Xw~?0&=dl>b96_?9d1+5#aIf02UF$ z~atHfCeKO;6eHzgDJh}9{nPi{yBjq#o>=6A!2$NSdO!#F* zCSQ6Fqt@6piBxVrBx~Rh+T}EK;NFG5^kJ*u=gP4k?_!B_neXmBzBo91L&3Sfl{tA?MfP6a zQ9Dm>`%^LnJX6m~jSp5%fuW$J`*razuKsW(c(!UZ`VqDq12rxw^1xTo9Dm?^}{lEF4Qv2diS0q;Q>GdPp&Z45<5HYvgNk0Fls zTT-fmbR7vLMRJTnQo572v9d=CR%)Vv_A`Qr&^Pd;rb!aN}hSYvlkiwbvo`Ajx5fCib(g zuCCNqayA6`zF+gS3TD4CIpPwH2Bj!Lk92Qr(EfhR-B>o)Ei(l79OdD83EPXI46^%A zlv-b_h<t-oh)RfC;ncx?1#`j?rka6v=HodFQQl=9dqdz9IK>ICsnRf z+GXi8+!9vSh*Y2rw4qDW=|{^ZYfDz9mk~zZP{u|s&lC(Pd9z3OQIA z^D28=VU@y&q-@l&1J&_9m&f?P(Mk%}z*cZ4vaB#?LYO(u*w-QzuAoQ%p^gPI7nEy6 z`(?-;@g0`(yu|hcx?%LY{l~4o+BDm~eE0n&PPf6nXT+8ZnZL3hTvTmmga~e*Nb2sr zG52zPH(lL!4_^A%(MtV61SlC>Q7+dbxh|W$a8j$jyh|-Y(8{Wx<3e2CojVSL(IYhRi+AucVkH zC3U6CW{0zcp?H(2-j*k?%34a6X-Wcy(5@)hm26vJ)k**Rd~`g!ej&cj&+LBu&YtIl z!Yv}f1jR!^1v@|v@|7NDM2so*YActGEa0UhX(x~er37W5A%k}v55#aom=P2qYm3)b zR`yO_wxm9HAv!)fO0yN9EeEx|{?v_7Mx z)NpOE9l|-`Kf69~o zYyH8OW&3|-tqf~GZVp9n$LPc{HT1Hn z5>K8U5$eQ=?&}VikPwxqv*OQJ*!8YpC8ff0$_aIUx$rudy7IYHg(W->w?bq=8i!4E zHFi@}mwp1OjHCWiu>o#BeNR#=r{J=qIQ|6AlGb5DwZa5T*b}ytP^LM(%1d(y6HeA(tyw;LH?&g(z^kU+zXHA>rigRNnfq5nS4Lp^i1NeA z77z&*!HPw|#UAR~o*ye(H(71X0YUrgU(zqBRB4MMWh_KLm&2g#$2@&b#sqE?wbXWLJ!q5*1j<-53fpXc+)C6ZFzKG|-yLBrSCv^~ zNWHqvdH%=sy3vQ>gb^c@3hnrmM$1c&n6fMWX%lUndJ|RfCEN$E2n|H3pwm|&P8c{R zdjczdv#Z)y`?F`wd zp+ELv(mm3^h+<++KL}$bzEtX(jb2tK26hIQ?JJ$92AcK8X2#~5gvvR@I&lIxs+jg5 zrYXGuDc8d7sXPx#M@$As7jn|rj<_U3VF_ZxPwDganYA`Op>1c1wQEX`q02)HjQ}uN z?TN28A!c@)RAk(*xEW(&o+C3YA*2tH*Dm#VWP9D$`=R;wjqpSv@j(e}pnRsC3&$>{ zQ%>}Gs&`_tEMNg8$CyRa<+>@lVtI!TQyh?#1`RB(W5HY``|Y(iXWJqIghT>7yJ;dR za7VN4q71x01Cq2ziMZP`m+B_Aa@C>XI9_PmC7j2w8_GHOL0ge%*jYGS)mGpSY?P)? z>#SCitZAv9^N(L&=Z_E>$te^-WK7jDTl+7dD`gU(VpbK%0c8m>?{GzJ_=(_dnOy-w z>RRQcRQ95??rM@9b9Z>1O!v2~-=8%!uy2YL{1~SjX=1Gh0cUGHq@IJ_sURO9sVFMR zkmY8~6oU{>V3KdIQGh6c7%iQ$~XqRXB(!Z{hdBOzAZQ(P@x zrtA;xil!Mj@55UoKa`!o(Pa4q+)P%na1T_LATmwX(dEYQyo^J0gb z7qDULsYNJFOWW0(VbRqlXg{_$?U_||F*dv;{CB5(h4L68Ekszm#M4-vt-hL_6_d0K z3|mtc$5}UB=dTsjUWozXcT?9Gi`12fggZv44x|Xb)QJ2YveyvVGY)PZOHI8`cW!+VnS)2h5EE%L=(l) z3$F#VmZ7kS#heieb=l0XY-f{F3`XyrPcf5q+j+u$9-Q;)L%&OCw`u<=U9hD z%)DeJE3I7Z>3}5+k0r-(x9sTibA&re!*t$uMJsP`lO6TT>ia1v`-cng^ldW(uD2D+ zkJTE=Ar1F!0rmn3Ol+Q}JEzt4xbsGKqDpvP3ZMK|vmUFq3O9c!Zj~w@J+@$* zt2Bi}OB&G;(yz|hS9ZK8vXi~#`}kl>=GZ_fY`b|h>RQ;wE1^bNqbGDtg!R$~7vl*G z+sQnTz4tS2F!f&F!e9s#xrZ>jA`J&0FTD`!&vB&pc6~^Xbs!)HQ>S7ZA$PZQMkK;0y6g-H#N<+a|X3RjYO-@_WXN$7~fzt~D0Qg;8X zi(IvhGobw`7@RcpVP7!m-82v1{;h41Xh+=MEb^=z&cMVsjUYJO5nN{G^dlN3e!xy4 zLZRvp*tECPdebtZ6l#qw0%y=6@Gq^QFQps^w!{J_&}_3D^o#IYasAhsMt~tD$_g-F z5S#8^&&rK^H07Fv1VgV0@@gK4&fS{&L8>v6CjI0*G7NhYvK*Z2$q`^kJwKp>N;*dG|tU=O)D^Q3NR9>uE@Ayn{gZc)9HzNu>t zDS#Wno$sg3m!{@tuXv6W=Go=a ze@`4$uisXioXx@Jz`o}%@)KN!kQZ_Gme}I-()>^4i%VBwmiqZiUatL}0D`mInEm0P zcsQICK05I;>1D_0)G8Qe&8H#dAAHn*73f4AOfwAKFLV5=pg#4HndxE6t48}MN_?@i zvi8n4!PNR5hlLVh>`H$)r;}mPgwvBf{G(AD3{tiq}`l*Cy)Ig8nzl}G3`S}C!|CRj0 zd;s9oTTTtfG^Q+tnS+Oe$#jv8-J$5N9ofG>3LlEwO(DC!JDC=)S$-_x?43fN)J9@D0Fg#&w1M0-q0_vPU?WD8RWG4^zn1 z=*FF+Z+|#1S_Uz*3qEfmr>!ncYrodKHw?#>LU$dXR(A>k@ecqb*XLq;k98^8PSIl3 zb4pE^0$@v}``7pH;xFfFwM;Vz%Zc`x&b+LMZZdMexK6O{Cd%biSDaEcxsIc*jR~D^ zA_&)q{As0eM}a@K13j%2%FpNeSb>CVdVtYC^Z;~1Q$2v^mReo^RxNx0CEmos-MY{^ zNc}w0D#1kgWpKy&#yOj?g%&B%!F3r*U(dV)@pYY_7*wJJU}OiR-HLzXi|rfP5%HFc z5HhRl=8^N^V*UT{mXx<&=>sk@pn|q4&B;1mtBv5cJG*6W!(0B>t{!*3Hxe!OjNSo< zafra=F1XNB992B%P?fq;H;+d1K5@y&5g3Y-F5b14NL{tW`|>j^KLI&wCte8**$z&| zy;KrjL4ua-OAPGU{^H+O5bGe#n{R@yt_5KKXo~|7;ShO+%GhEnE@%MF0K>iK8;GDg zc?G`i1p14A-j_L4YZr*04P^Fvs2|(G56Q>o>t+GP`Y`Wc#MDv9jN9#*m&-q_>y-Q2 zlqlmHeW!ronq83K5sD3%i38z0CLbO`Cul-u^CLtIhz(?E^E#=!DF^Q@odLE!KLCmM zXaC*A`FzeM2s40)_=0XofQ*B;Wj2S+3lI=sECEEdZ)LUfS&~L zTB{zH`6sS*o()jzm&c(jEl5YL{r?Vp-Kwd`>g$i3 zb?qvf3gERq3BJX&Hqw1hw5rC+WZS%t37u*dp)&x1MMzW*ji11p)>=dlnXp_aw*Za4 zRQ_b|LiTS_^1eTMs^{Hgw7pa1B|YWcN|mbP1q7!9t|k)i*CMctF#b)B_PpG>btep0 zJI9@@vG0{Vhi_!Q>m44xwb`MHQe>OnpdeJDscpJ|b?gZZfks$oAk?i}Kgw;@%_?v1 zpF_tYft)^kO+|7;M$uL|G^%Gr?5K=C_G}}xr|{rF5ZcRb>r2KB^sB(pnPtVfzQ}v$ag8lQ6soVg1b9YLPtFK|T&;0!X>r2A= zstpL+LU9jDJ5VY(n!h6$_Oc-XuQp2uF{JhMh>hj^^ZtmO_3KUo*@$&-XV00nya0&U zsQog!zCI6T&mxY!anJhgdsVA!_m1rPAdolZmyX?ifFVPy3V=WoIIW+ zesS*D)YQNwm8FTh@gUfY=KC$>KN7P{mC%YC2uzPP*h+wwk44@<9C5C2QSw(}mb zPrWT@uXItYU{^)qVN1_5T9*nxYNVf-X;+kT%IOnaK7D9P<;m8DgVI%nV1=U2Q-xAL z!{uA;UO40-zGw82ysUIWsboirJyM}3eq5DzU+2wvH;kFJS`K`;idSeblx#GFcyyaz z=FfqTa91Z9Qr@v5 zAh`lRcY%#)vW6lgf{x`Owf9$Q&L$(es_sJ9uPc`S;)(L0Yd2?ShqYE->)Ep-ZM}2$ zgvCK=Qo@ja^QTv3<(`BjiU6f%>n4MLU+-PlcI#Zk^GuyccKvaOM(aNNww@K^{fY|O zl}81!Q;peeDYeqJr4MMYrgT-3%Bqwl>N$>+?F8M?kZM8caEbYH4MI&7pERK>C6Eq8 zPJs@X!i)P=u1%=Aw}*SYwuxebxd{_QhWc3qR4EM)p)gDLzl9<3HbE)R~?({Zy&M(yphpFvgX2@Ae z3X~!ZW4!wb(y$plt{2TI3yd(160~Ia)icX-QSrX(?j)``_|@Ecg!N9p;&`}!;2Xf7 zX02b}u`ow$-j`%mW7;XF4Zu1ASNFebum5cb;mY)U9TmAUU*|C1-T}T9Cus#A&&u9q zIQnUzsh*vPn?>=Cf+I23QR$?4NifecLZ{gXS~=jq;w7H6=Pg%HIn|*|G%9B2bgiTO zp)f+FVSCo#HQ4G~S>ieKg_c8>e)$7;fl1qMbvyF<_JfXM_3WO{CL9%XVn-^nQ4TyK zo?9sJmyHl&>Zn8S?j@PsHaV1?AQ)*~)D;+2MjD4_k?OswO1oyL%_(p&FdebKOiBx$ zOGi6*ip3?Y>Wq4)Jqa%{xEon@(9sO^nf7Rz?QXi!k)i{e!S+TnEz$1yOX$|( zO>kaK6c!xoEA-DapU$6dTAYX(&0YzW{sHh7YI3˷!GXS>kOW1#^|KY zqoJd}d=4&}z(^;sCb;&e!@Rk)$%J!8jm(vuYHG$N2U($f2xtK`VKwcGkp7lxqxx7cAC}3r7h+1k~x@ zL_m*y%$L)a(boALU-QFEC;E8w^LaCuvKXEG^ZawaJ=dq#h=wh<{`w{sCdXJ5So)j# z4Vl3YiXI*d9VSkMLal9Cmt36trR)0g^h=FMj0E;UZd3%G{*+!gU*8{FVG^=Uz7*%z z%pBTUKM0-XDiK2-_dx|ZqOE;{isdHB=ES>AlU+Q}6LTQYq5Nf5-LUCGTgkOvdaK%* zBmWG0p4w&~_^_|Cock1^hqpY7*SplX&(>?aSAQVoo}lvM(Vmr7sJ|j|<3of$J2{9c zh*+Vd0Tn*(>Mm3qBl?wsp@I#PrCWNHSVzpS*J!WYk?D1}232dX>Zu)9AA2#_%~o+Q zQa#S@3TM+vU22IzaQ5S)HrPkOo5*%F*phYP-#4k3`0m_;fg}f#FZ2dPrH8B?Q!#kuLQrC_FD&^5|I+NHPLO z*Uq8aYZ_K6X169f2(gt*SpP&@%09p%^Gh&^_+)*>6qn<7D;MRl)ws0&n4_tv&(kuN zUq`{a@IgogP$+-f9r-8_^0%3C?_({+FU1`B2rT{p^2CNAzx45K3%&TN!=bs$z6sM4 zw>VtR_wePB#Z70!)!7l_3-N&s@d1?EN=&fhIwBOEdr*=B_P}kXn{-jY}$uEZ1VE;1#Q>S5rOd3t(oRM2tq%3Bf3VXSwDd70_?~irT+et;Ze2MHCH6 zt%YV!-x&N$eR=U;OKv5c#Oie97ZT9Dq>?|C1X6u@js5c|V7d8pYI-7DG=qfb`YdKQ z3@IqC@_<%pKTN=aq0iivziOM!;>N`E>azlJCtm%`{&GvS-aiwKQ9e*WR*hO@vZQc7 zFmVf+n+qa3rm3j8k21EP{LLePyo3mf7JL7arI8+Rix4QOCfybFF$u9ndOX>udf!Zt z?$8!awUXjK)1I$H>swieK8Bq&Y(@&iBUyvP-;r!GvoEpX0LLO6B|5=sn)Nz++qC~I z^v2w^i}9RZ*hGr$GS=fIY^6%rU&fq|EA|IV#^;l2N0RuH6WF+ZqXma7qY;yI&lP>u@T#n$LBg2VlT6>`)O7k)LAQayXcA`(p9kdYH_@I< z22mM3#f0tj-ys|L`rv1~ZFwC-PpJ$1C0^SL1V?-n>BZeAODOPnlM;4J zCv}i~`^BjoP29BWTR`x@YXCU#L(3h#?6OR>tK^%giCp&0 zu}iVOXs4Em+wr>yp9xTxnQv4Tw*)3}yz%-s$GW4Qr%29b`T3n0ejc+VHT0}(fIlaT z##v1(ZL?rIPM!~%A-}3U$wMTPflcnaz8aNoH~0^}-I`=kLjT#eU{Yk7(3-R*K1=Qr zEeo9I?+V~UGb`pp0tux9G+T(ssv|7Jre?aj0ydn z!v5i*l>tr@E_Pwiz%;y0A+(6e5>bM(A>{#V=UCrS3bL7>AA%S?2Xa6^8%j4a9}Em~ zdPSx*9gwl1B`uZcE1zfB8dnoM)Nf@n%MR656+WRD^q(#<@z2PCJ|3@WsJXJx`zBnA z?i3WZlG6N<3d!M@kfNMRur+T!Qr{XmGp@ZPAUhwB9==eDG^LMpl(a^HvxBW;B3c4p zs*!REflM&@=j?-H!3*VW&57-2W$GBX^d2a4ymWG z^Eu-nv)cYj-IBOwsUTe0#Eo2)R%cW_668zLvvn)Zxfp%4oa>eQ8OGNRAz$Hf<7aj)2#tzjT}^pl55 zb7RRiU7h3@@Z^+~*_=7*+yG=;utitmej#z9H*hczDOv_Bg59;51lk1v>a!$Nvm;y} zf$O&u{6}hCVPepO@nmT9ODWR!g*f8+%Dw#`4!bTkN4>7WU&7!V-iz5J595xZJj2XO zZZ2nAQBOjq8mCLr~QR!&}lG9=P36e1}WFmIIXv6m$l_b zNJQyEeu%O|pgg+%QPX70v;5kE*w|#9J-n+F1;IQwmG*pMM{gzKbJ-+Pr=owX#@8z- zqc5erA~HBUeBdY@L?WK&xxY$)O0|ZCAd4Dx%rdXMTncj{n)E0R9rH9&#B0HKzSMb) z32)=DF%0?b6$(U5+;cQw>S2pUz_t=|sCiGD6$pdQBur6){q5Mrsryz1ZnO z>B64*9>90v)lg`GO}R!I^_W}!k)#TATKHSM^!RyEzI0*3<(7TV$kuMcKwF9ni=#62 zqs5#lYP-@Bs_H)0TkTBj%EGaSx|%Jr+j~h2X~r2o`&p0Cd`Px4xYNe{@X&cI5#~pc zmdgAai*<=3ekb9hcmhrLsSmd31?y{{?fi2fqW2WG!OAfrZfEhYR=C%5nwrSXCrloM z;wodS7;y(ZmZU6_w67EMg!tn_<^b8vm&oSU)!KKLHW zGx%&ZCorZ3+>7s6UwH^o9^QJ6Ezf&Z{F0P|y%}HGCOlf-@A5FXSLY*&iQP3DIcwZ! z3)3__=Qm>%k7_qA2)+`yd~EmK7{j8u@-Tn4J0~e<4`o_zOMwezFVo__%d7Wc`X z#f3U@(cv}BB{9RqirSzvP443-BVcoSDg_Cs?Ug}$c&BA@VjZ|nuGjM$Cm4rpF&*d& zH+o|A3LaOFZZSQ==)+Qud4h0nSf5<%8diq5agya<_=A!+Z6|kJT*>__K1%xUCSXA zqCgJbM;AVvsLK4%v4xob*U)tOqvBVDkq}mZBGfc99JfjT$jXH{+@pyde&Nr50?)Na zF_*U-5MNpd9?|r|o=9vwP5FIsi*kXyd7Gc4Vaqe=P!^$rhYKs#mo@b4Wt3l5Fhz@* zwG9JyePO1e`|JUN#p#N=vP!}h=Q$! zY2c2kk>`@9RKJvXF;SD5pUOEOocXTGJNk8KKuyYI zjf8E(PeIA!qIEFIOXT#ZPCJ2~e%I~Q#+i-qDc*qW=SE@iRm{MTh`-z#&QwMwj%xGUjrM)7na*E377nJP$f!n_fNF*_kbuS-6xzHq#yI+CJUy?&8`)3Q}~W4m!Zao z6G{OGF`ZA0yIg^xyTa2k?qn54Ay|_+$z@c z=!PKkE!r++6o@a#dr)4}EnUuCa%1K!mj7-Sz#uGK!Y;yw23>@r`B(?eBHg;nt?eQH zJIvh&f^BO$M>r)~Q!f#s0HaTVP3nbW(HKP=^BI^|Yk5>|4_M`=0HXtO9RNfS16?UF4`YjPcxXXa&hV00GHE>g>#q z{gw8Yek1CS>frQtn&t(EER-tUKrB_t-;cqaZT{eyQ1Aop@GQhYwD1ceV{xNbpJoF4 zh4~&~+Mc>Ti`LVMcoFuMLm%D;IWJ#Ba96C4yD8 zg&pmzh7vHW!$>g^EmDqi$jI(=XCf|9Vq8#g^U^kUj0jdzH&GOil z9@%F_cxfLjiOa)5;QFWIQeB6?+!$SOzklW-Qes3d>(8EIt2@s>KdzO3efq$8}@{m%}8 zdpINKffJI~SGvTt`n>*^f8NEaXD{%l5{tj3KL3@-=Ks8aZ|!^j?-6jn9M=C^NANF~ z{>O9uTOWQWGk@2R91s>bycXI5lstdc5d!|{e~N)_NyH-7yStmeb9HW2!~-djJ8L1k zqBCDr4g%q^wFsy4*Ga#1>xzIYh3i(eLO#I1wJ*rs|0mJvt>Zd1z>oRw6lBM}6h2_@ zxWHm~K2EKBD2s^^sD`OnyngLEjOdCj-2EHxH}SjWJmnV`Y-vwlJmKj{&&p^AFTyc>cebR>MVb_Xaa` z^Xs@bBhym8LoW1zhYpFtOkvpaKR$3zJ*U%fY~f{cEd=%Xu9Y^+4b7F1(hg`X#bzpLE5)S>@t*F)r5VsTZi5$Twq>Dk~ho_`kHrYYIZHf@qF zzq-dFXKq`iEXcRf*VI9p(>9h zmMMg*qvM=CP@Rx28#{-Xl^L3I=l;s_3iijt?fM1oJ45CUUXVqmGscjhf8@naY-9(D zAmSyMUX1X1!#q;lF1%Mgdb=I$cKrVHS(!IiCk2~`7s>u9gI5hULZ{v9s!pl5dg{xb zkDoCe`WF7`!OejaKVWffD?Soq&Xwf!i0Dq}As7^^nq_!9*x$&*?=D=yu}AEpV32=) z$_P&wDcSL|((OPGRX<2M2kf1-j=uTNj=DPxNX3gLFz9*SP@d?S04TPf6e3St#=k+0 zXak#o6wpgiU0EJAK18P=+xL>Wk{%1hgUDLRp(9uVjh}-Vh#e`^_1bhs3=ygZi{U>& z)YeqdJU>jwbyP~VhvX>D(oCW%3!sIN`EK(U&JPE4n>7p|P3Vvu7_a6hY)SjNyoKe7 zxKK>Xd|=txK^2pQ$mJsdp>5qASs-H_`=_i1d3KeyuqLbFeUa5jcjZ>@i5@J?`*>{| zg!H?tsa}7n8AH+Fpx=-{I!9k#SHJ~XcxY{=Bii_JmA*v1rM+U>h;)maD+Q*H|Ky_M zrJD3T{5-#u&1gU3tx>&nt$=(AG*L005y_81Ju)nINGv)4R+f5$w_}}_ql6ARa9nT7a*ij!{=S{~HIm(?TQuydnW8IWtEb)pb2EhoekS|MzWg*N~xwr z5RFP^VuCBxhWRieq0GOuPu>~MB)0CN?P?!isP%ufo7Yuk^240LW#8^;uK-UyL0$(* ze@eC3d{nO%qVPu1Q|t{ni|~UiPLVOPQcIh#z7kd_j*_kEJ~vf))~YedX>~5U06g%4 zU4XB#D&(z~w*uy+WODS(IPrI#q^vgSJo3fX`jnuV9Idp|$I~ws)a%}C2>JOXmY7!- z;o9Ou%VjoPLb$>Prh#JI^MSBT!pYH1w4%U$czcH17HA(qN6J957^lQ zolo+Oe-tPPxgt2cZT79ftH=5sq`{cRNS(rDIh&MxFpa{zy10A43O3@E;@lR%O!z$S z!$CGCQ2y3Df)rjqiG4O$w*qJ&zRa|SpK0kZ0YOMICId2=zKYr2?znl$Vm_D~_gdq( zbC~GQZ_~fg+EGsJsy;sYowT0dH)M_}<1!5OOCl^6@FD+a_2M65kIg7{LiVybKmW7y zriLW;s@Ly$`AD?*D>cvi^I8vHdyQ%d=xux%(M_^3hW=RrDcNMhNZ2y7Z5>DuaTy)+ zs0>Z68=V3yim$WR!qKaO$&izO`ZK#(6lB8^Rz$c964B4=GImILE;8kG7h*C$)2v>R zk1uvBixFoQ^aN+Z2SQPwGo?}`Vg+6K0Zb0 zgLCE|(MH=-Z-E#-E1Xc(nkBZ4*{lMRf=AUus5>7KmIqAMma(;_|Md$IgaR(ff7M#; zQ8oHxbmhHN#K@}JZB;sxtSti+(f>c>y?0ns+x9l9TeoGapc|DADhetBA|-UTq9D=~ zq?ah6NC^=lodhc=RiyW=2uO{g*F*&p={=#N1_%%mB!!X?_!fB1KA!U3`@8o!_xtDO z4<8>==2~N}Ip&ySyyJbh01n%$l4o{OSF0wtn$yCWAS%wifmV!IwI*}-%VAdEgzkRG z_@|vv{XS7Jgj>G`Myxg&#ml}@U#mPCIN_dC2QWCU2EnjgKY$?w(XGArU%yB1Q0NAx zKXaZ_dm{t-F4 zYS$bJv%_YFST2CxG!=fBZPNPd=3>?XL1YSsRRUWh)2o?~&>~o__*a;y+24eoc{!1* zz|JrE^X`A~5eh-|*jQvev)?r0LVuQd=8xV4)wP^Ze}b(w73SW{%K4;CF;8W#E(Q@% zv84#rL3Mq|thOKl#9qr5DQEqniknY~k*O;yh(Ze1E7ARmqdhFe!+jtAynX$Tm_r)U z?FCkym__PSGhP1PWNq%~WbZ=`(WiJ`u5o8iX!)P(r!TW4A2KZ)UmSMq+o0AAqAfN7 zHh-htQ5)=kvdGn`tF_)F-H<_F7(mLhiCa&K6MwaCgb69grn69?nuy`aYkY=Y7@dhr z--mYyGekOll)1wfI9iP#OQQmoaF3L}<(^w%;=01d4A^HURK6?uY_iY}4eY$fIr7Jg z|0yWSc>F)rqz-RM>0K23_UUC&f!2QKrKQ=C)`zM5VNpm{>&}lUi%i|e+FFh?RQbkw zu>QOw^YRh+(;m#Xg{MS|%!GQevp(fZa*cqJH~g6p28it9Ow@wMU&=MN7<-}6Fs1_KMGgxc>yQl^2b3Ai$bjT zAeIL5$%Vq@Uiqx~FHP5qY!2bI2nYaj6+FB7)WPUdch^1`(D~hW5D#&m8vH{Ff(4qa zeMFoC=ZTbe>h7#_Y2QmYYexGmyZ%N^BDTePA}GHtwq4u5Ifz0IYA362%)!_{um@fH ze=w2&wY9B}{)o8$rhmA>5us}<)CL5BLj+&SC5_ps&&4p+FGMU>Kff_~*E{BOjcgd- z3-TD2bA@P(S!oK9pS{-6e{xc$Z5nZ4NO=)Mu>c%S16iitBe z85H3|{1su5Uo>WdhUu;(P4ZB;@8mBZu5ASvJ1+9qd^|nj!$0tqC!qi0i2C%*pO z$16SkWY*<+du;6~j~)SOGWL>col9wU^gw~5=%vYm#RSH(h~IfwW9r>y-RFpR;!oTl zM8^;=$KN5GpvXtKs^xZzC^*V%ljU>1cA!qH)Cc<3$fo*%S0&@iN<_$SEr}fEYa3%D zRkVwvA?66B?r~8zll-hfe`fx(2DPDG^WC(IOuxvpjL5^WQT!vGUTMo{WZcStUY;Ec z&~;SThtf5wSbTI8E1dXkwoP)Tt%G;Rmi`QIn9=l+FOihAv%*K($?wx_I?dm@c1op^ zYQKPwbhmU6;F&|cvyI6H$j=w<9KIq7LdxYGAHILOqTAiUeWPjY2IFOiWrQW=HWvg} z3KNxHnLcD7Zy}Py4^J#laE%XsBJ?_;saG{Bk?f7gj#ecP0RZAO7oQECY^0b@u+!P@ z#`TodV{;1AADWd1EZWj3S&Sm@V^BNVdb%8@G=Z0Vd4!yi!b-CA>6kk4Cjyu3HV)xV zAcrfv?Xn0b8rn#yXwNRiy;+5JodH9klFH}AZ6J|zauw|`jkoN0_OQ21q1MhX^sNW= zVIm}2$L%*8{`%bgXZQ0j7v2jijAUHQD&fEFkTRO`i_V_=FIBu$jg{|x47gV-ep}B-8;kW z7f;2i(LOt%?`dBXe_Z-(xcYIa=ngyJObXPheVA8>C;6*!r>hJvdwVrVnEB+bR8cAH;XTl9o!bNUzI8o{MVFRM@QQOO!0d4T_8glVfTPvRkqQ?Q4OOETwSIp+Y=OcuLVNI9psP zWx#1bq!VoS)T!F@$yIFsy1B>p zoab`8nta&s zp2k}h$DTr`vE8zC;6u4~geqn1V^NQH;yQw;fw;iizGm8{6O-|N8;|Y#J8ov{Ku0MK zG-*pcd>l!(>b_x{Gn9dL5qmpUY~TP37f}eld=9tbad@7|NNKNTSyv?nlGO?j3_CxQ z1rfu|YuVRqqoMaSF9eEB!}Wyx9kpA$`w93`iv7%v9kNo}%THh)QFs*+q)$o;Og z>WEL@2ae91`qu7`M|AZ9BmKb|^2U9Y`(X^%CQ3cr`U7c$kJd6HjYwB0*ul6H=o zpSia_+c0xRtaqs>Lp6+`cw`06KBd)&dl$!6U zUU8hA``pxFs&5LoVcxA9-l3wMaZ3d)+18_Absu@uh0o$yF@kXjz-72@Z*TXF$J)fH zRkNbkqsY&CvB5kZe=JTg!h}8mLCF?%7V!Enlb2t}0BA}722`;4i5lR)ku2-cVE@QG zp{tKvagE~&K2G|pV5zsSQ=;~LAeTivQpYTm>l+^3_xjwYSuoE}-JD{r&pNrBm3n|9 z{lo*eGr={^%&m{v53v9Jm*OHtw#co%CiS|)c72eoK!*M4{8Q&GW1qtA?F3cVFS?ub zzsdkduKd^Da2+hStZ#bqga*)Dk(_z2Ro55Aiur@m@L{K+Jatd>P=3|vc$1T@_!(W! zkacB>9m*`_<++) zvg?EOhgq=L->tM(JmStQ_r}aeSIbWV+E5e{<+c6A8J0(ZaA(;KBe)RRT}v!>9Jz3j zsI9V4s+EpEPzKwPvLOx-T;ZdT<*_PwcZcv;gnW`-i&o@NpNd2v{XG07ef%?a2ECw7 zX1EJ!&$Nh(&x%L?_8%?iI#{X;Hgfjvn4l7Z%+>u34;C(?B!{trhdJjDJy1riML&L& z;#hwZ71b>?)f?!h39VM;f#0A~MaC)LI-?2ewt?r#rXBFN07aAvK`8ib=p?UDA3$iy zkQ$FGzWmzAUs?=k>ibi@&QA)Hrdv-1$mhTRIXd>hggX>ieB4z~Tz0EHL*;+~xBV|A zZ-DNrcOkjpk*Iw3#8JFYTtf_EcAPsPTX>Oe#HZ=y(Bz?Nf$LZJuG@roN_2kaq+3;j=myUZ<<#eDS5R>?I%hT=$1LfmJRTvEb%e zR|$_Z+(j>DIOn-9GdlcD301p0H=$W2D}TVhS2CF+GO%`kUKpW7-zxOw-0Flf>w!Gz zm+#Hi^tO8jwbtSughe1-Icd8Q=bnSW!5t1YNR-b8QJQ4QbL1t>L}p_6@GpwwB~l z--|qJ;;X4?G4%?u&^=YkNo&574Kon4=#8Ot-q#LMAcBV= z7p?Uv!`UGPD1v)?FuR5e2$&af*m#^Hl|$0#5|@5U3{*a zq?)S1E6k1C=zZ7a#cWq+f0bZ=xe-`H6=?jm-FyTJb&mu5E#AU7heD1UJ*NnLNc^mLO1`-xZ8YB|H-@k|Kg3-XNRtEPAw~6nY~b^tKZ;!Ukih=%UR_1yx*7&3wKEq6Y2SN`#;FAKt?}6y5J+g6zeqS; zbVemU4YEb)=qQGR)Q;Pa8-9k{@DpjhTdalAYB_k^g9#5%<7PRE)VxkRp_KOYsS)B+E&k8<$LAsy!m8T9&sUy%oElMC8s(#QeDd^lN+Jo? zVvm)-J)ke|)oR-ail~wdy=FX83$22-1UD_8S%WV6b{g1Z6C9-3gp`?C*mVfZrvjhY zAYPx*D!@X%g1p9-dG%IgB zwrO+D7>h-bAkys!?Se78?-ua=LNPMU5XbKfQ6cH7l~-D%8nryo5gR#tB0Y6v&#~#e z68mH%PdHJbA{xOCnW>>#O}twp%i@Lz>58E2OT1QRyQ51VefTLb(1-#VE9|>YSTYV8ttB7@oBj(H)5~jJfJ;{MH1Ng?}7JwxRD`$w!D4j-rUC;A*oHM(XmHRcAh zKb#!)`ewuRK`pi<-tK-q@!9Z86?-iB0h*usX0EW^IfiaSwt43&0@2Pho-K;Pv!NOJ!c#X1?l)2;GmG5tXtdA#htgJt@xTWJVUxL71KCfnSeSGKb2&l^9L1htM)pn>Ma_>srfP8H+q11K#fz~yzYm#6y zwy-G*fai!-w*{L%&(8{u=qBfS@zYc0IZJJU$2>?Yk8p<>CEV58Q2`^Y17z(vni4`n z9+003Or&Vu2AktkRvI)2oX(L+4AMN#5F$7FYCJt& z{EvEi=ewl4FArSz-#MYsHMkV=$U#*6y!b__jZX?`qJfR$Z`*zi#@x3s>-FHr7qwHL z1;a9KJV75@I*9KPk(hp+5q{S0X*K@rNc#HxP%RQWInXtQecl;mj`Jk;ElYRX*HX-) zTb6t+LCf+=Fy$(jE}`j?ARTC9$V7)XpFu;QBP_ukaE$yPT_Cm61Eez4pfL zVf!!T0pzf3SY^C?X4EQ){yh$#f0WhQ?c1 ze7`mOfG_(JX#nph0%{+KBjzF6a;3{X;z`P(SzHk-k;Zg$v7oQjbpzG$7RVU1nr^rtko-jY%mPPhoD};KCJd13%5|b58U}IB*!~wAvfmLL{C*=@nd0oo6?+92(Wq z)kLlUxc&8VN*70IO7(k2!ZjV1^AUy=lbOCWh^lc3m1J=q&_f81Iq5yCHl)(tn9P=2 zzUf6FPJ|rEj+UXmz;#D|)p*|4AS$w+Lla*E`q}`R&B>z4St9OF#@U&Hmrx0I_vWo$ zt>PDgMWu@~LOxzA!4@jVDI+Qo$Tp?E_2ZBg`lFudzQ3dR0lF}?=!~6!#wKLM<-uX0 zL`3CcohI|2Zx2z}4Zit@lH7>}WHxRMZ6}e}Azr(>0^MOPWvwZnukAHC#}m>8q9Eg=$fR z&zPNeIFoh-#CzlaWRHmYrjJLHbccnzMusA86)&FW$2CA7K-H<`N-iIkjVdD?R{QmKwzv=nhmPRvq^S`MS|n~bC9blr0k&hDSV z1c!kHI+AwM1}pcJUmSWY|2c7Of!G-UnU97k)}87Puh>6hK6&etC$cP4Icm!dF4r_ZT`whmzM!i;bK5*i zx~|&^k)_zp;T-%@u{E_@oHFl&&hJunKP#;ph3vjFg47!se2Xl-*1sUmA}ze$yer{l zXmPT@wwvRr3x>$eWX=d~T)iyLf@~l++<%8Qpci|+p*$ppPmHmbtN_=$%blr%^o@R6 zW89K18#Jc1SKvSMQvWE%d+0^G=zKiLBm6}^XA+cvduM!+?G~lu`p(c+oWv7Wqv28z z#rUjY0%e+wOYoN`v=Fs6pfFQU!RpUn?=PGbiyuYXpjn-eqY zwuSEaWs72ZQfiAdqTUjWP)hRKs7+`^=Vt|-PujD!aJDMhR;nKjEpR%W4-{jbeXRgY zpC0q+s>Mvdm@w25(t%!-#uAq6g}sH%%uzAKo;m|;dM}Y!ij0zLjG;!d(Q=wq^}VQh zWgq*}>6@iQd}ZU{&;9*`1vW-2FWXf9fQc=Fef=j%sW;UeHRsw7m?sFkjO6 z^wBKqTMG86h6U0$T!s=1#1rQZ;UudKrsJb9!e`PTnhxoMw{$L?Y4seX*G;_dm74(s zLw1`lJoDy1pOe`UB7~oreWy-eI|vudwoDA>jGUXc=#kG{C2(H>T-u5g8Zsh+fy+zX#n0HCS`k6Y4*e@%^G5G5y8-5yf81Dc=BL|w zIf9+_V(N8e`@`(oDeCMeh^rE%d#dkQPM~FJL5qjYRFny!&$?P->;)GI0n_8FmuBvK zYez@c*uY2Ao|I`vZTvIcNurt1@Tyv>fl@Q>;ctnr#b`RC6f_}yhYj&gwEx{tzk0;r z*>VMt3Q5F;y)9^V^lk`EC$yF~lA03$Khc;3@m=uCy6^C_IqpoKF1PNaW#q`Y}ufL!d&!fk)LnFtykf7p^=)$vxu)$F0y%d$?NT- zMgp54P?r7BCaCa^cJE^Lt+`Tmk~%xpJ~}`Qzv8y|ZIql2$b?eOyFCO2vAF&1GZ4WWY?2*Rns9#-*$!hzmJudaEMXzr0LB^FN2SaK1+e9 zD~(Bz5@Ek2kdEacraEK4f)2E8_+a3gTTkDP9fn(I&EEGBt%^9)Xcy=A200lN5T_?- z&eyrw_n>)y#{sncZP`g+LSwwEVdE>!R`ePjw2Gnqs6Q(9O%~?GiJ=C1$+iy7eYGv0 zvi+{1+wxe@p3gCJoSrIod}!pq@g-d#jC5pEKRSYWC|}HAJ{H{cE~B|EU}krwQmoo8c`-0$u~pH zh$9uS&P^so<^5(~P}0Hax7p$SQ>rsAc)MYGj)zpB7{FHmkgfy9igBVvt(lfXjIu#0 zRmMTGVba3#9`~LciNHr}NSG$g*U9tbeC-A8n5qHkyf%+8kJU4+jcth*#Or(87OFUn z9p>;r5t$=nH!}Tf0}Z`ZNonMfwD75hOQjO5_SHA?evFs&f&9gM*sJi7FqLtUjyh(H zt(p5bH&kV6d=3Z@qxU%JYf>E(cxco&+~-ot)^&DTLIm3q6UYIGi3*_7sIpDBumf`M zH;8G1uwCFKO|)^h)tP=Xp){B5s#5j5Fd4z>H_>VD?(AcA6`U9Rd~f5a(*@}UeFJEx z)#!*2{M=Do<*h6qQVh(iPIca{s7^KM<>sfWb!h~39`tIW{;?ya~zZbEP$v+NJ zqAv{)M7`xdr|GA5^`rFd^lXXC5Xw_;o!ZW1)FN4$`anC=PZXZHF(m1q1zhO#WfGrX zK|J{`q}BJ?n8__!xH1>mm4>(XrUy$A=T}*eyOidJtCchA zDe*2m`7^a6SQ^W!G$LR;ZM626zg^=`{$}gH4>f=J7lNd%zy3ca1lju1zZ6pc4~Y8g zlet;KI0lHA{8VS{l#oA)!fvQtxp(=~ti;oswm&88^c>I9Cb5&60pE9=tk}`I_PiIM z2Cw=#@7{d#dF_se&L_wcy5c9Fj{Kb0{{)Cc0MXBteTO{$kw0ea1485rTWS!BKPPe| zfDNo{TW#U}&%X{hu=ZbaVh>+w+Wuil_ww&u2jm{CV7b&{a#p0?FZF4W1bw7z5TNK2 zu&od6XPFHZ5$}!eWGd$qx0DX>aFv0duZPPs>lx49-pX< zXqpv0wikQzUw&Bd=9BMVXyY_u==Z%waP7BSz|3)VpoBLPD-cc4*TOQpR=xel>UA6@ zl|W&NLXbqEsXJLYruAdpgAdl<*9X~a>wj@F^y<}9{I=Zr{QJxmfPFJ~!NS%StIXyi z@e@4)Lhyx@m|&6E&B=-W(qtzeM2+gQ>H*m2sN&dA(O3^#1fLZ0u|#9(B(Q|KBop>bT_izUr2Ru-RdLW7i3+10=fv^Cm$`p7yb`Mh&1e$4kB%CH#14jvV9w zq8UQ?%qE)~qK$g9j_ypfMSK2&TriT70Sb+3_TpPon}2^Oz8w9jn;>*^ z1F?C}EprN9bg{B>=a}PZ1D!EY(b{T&_Osq7=-|QN$|#Q`wjo})(%e16(l~Vd5!!U~ z*(!Z%9~x~pz_>>=DTFJyH$%03v%mVnja{OAj5ar^nUn2K_|!=k z@af(}*~j}y#ExgB{Pw$F9Y9@Ff4<~-_|l$of!6CfyNk}&2`ENs9N%3Lm+@%d>kG@Y zFNq1((eEFZSV7#T>{m#tdV}sK4eQPXH%-iS;jgwP%sST8%Do6ueY`r3UsS3fBz4F zM>IQxVrx#)vR;{7L^hZJym4}4C8p}FWOKKpmYQ9i5SQPi!&F4YE0TuTTNz*lylVcQq{s<4b8IZ=ef##=xB{sK6ds{;tWsQJXvPl0(Pg9MgK`MibMS z=p~_Z@a9=Eyv`H)X;!@-N%w@cAL!4vr}CGJ)A*-rq?wYN?|PGOm(DgNowB52mn%`V z~=yHq$9f{bO z!H41DgY-P*LH5lODGIpJ(BG38{nXj5Tz3*&ODtlf-m2Ecz75C$8Xf98f)^W!2$JyR z{cbt%CYzW!g?T$%v<1umyA%FJJaiphpNRcj1PDFSKU-pL%w=M4pyo&UYBfHRlN5q? z@$q+L3SET+m@H(r9dc_qSmefBa`sJ(DE-rfLP|E<%a=t z=S$O6b00kFDPsYg$^LZ@`VDXi-fsEd?E$ z6jeu5v3n5!bzwQL!H&Nk`}dOW4cOJ;?!rCx&b^D%(v_>GbZ+S7&=)m+uK=Ng-q%3v z*#Rg&{(Y8>rX<2YozDStzBZn7*ut1EAr|seP{lp8{*2#? z`}(Ud6N4b8?)YLa&CQ0$U`8is+YkU43fKhvwsn|(Z18;C#4qX~m|tkk=0>5uc)Y2) z%NgxuDLa5;a-3l70~GFo4c-%gzC1nrV`V7S4hx5HC)UNqku~mp*V^jlEI{HRJuM51 zi~d_I#`R$J)-AXb5CGW!G~?fK!mt|KwF3=lxA+G!v8bU%Dv`Msi=6t_JQX?24?F?e zVoW=$wquDObGq9hn5yLZVR5W(5JB(JF)x=ba{*gB(_vcQ|L`ZTVExgSrFP!cSAZG* zw;N0OpeK$P*vj$JFd@mvg?hH*LW#S)1>Ixgafs$0q0dd;{U_`30Wb~Au@%-c^U%ub z(jUsCTgsN>mjCezuQpF<1KONR>P)(SfD!{!sujHMZ5i_&5Ek`a#BjUG z596drez`C``|8aR4;nwiLl<*q%^0)(E}K4Igu;n)$_KV>|GUnk!y{UQU6w%lp0*Vn zeR*it7*rWNlj>U6t;Ok(0!%Zm7K+UM%Kt=8e2^$U!6ysGEMR`WnX~mIZMUYzByYu9 zD!b|OoUJ?_XG!Dh@+eHbU+&fB*yj2RsWC(?9Tq1(5f3`xZb?rZ(T~~w+F><^?Ezng zeE+z2oYAelc(C4Xnz%@d^`?#}C6imFvPD9quy6lmoRt0Y3;eQnvt60$WW$CKvcu^) zI(F3u9HYHF1Q{>y)>2~^ z!Nz{BNb47=<|Xph;~SB|l$hYx;H)|0iSiAN^>4jq-Xc79WaHU~9xmyXKBdGt#yW`} zsb}IRCC+UbnUg7rNG3_K$@!1i@DO+V`n-VBdH6^(1E~dN2Zp|J68UEHo??^5@R+lG zyC0rH@SnG=n&?y+df?wxL;P@?P`bUB$mDO?NLivfbxgf-B1|=HwhgVSsI%qQ%B>qK2XeR_9p| zOhZIR3FOC5DvH=M4?&x>u{e@VUL*FzHd=3b`_b9+R`|IO zO?hE2OG4_xZ%?QEz0rp0L{E!PkkYA*dUJ(S{2-LjHnqesEfVSrSt^s#Or$U5GgzA&l6@^A);>7QF0_Z zV?-cyV`%9GLK!}I9_}6@lN~uIAk&nPi~b#?A;6R99_`DuUU7AH;MBZPk<1hGHxvWm>_=aArdN5~480C=9=+6; z@)X&wCex*LhxV!D`+mh=iuw3>yFQj=w(a|*y_6%3Ofjzwg(C#S zmCt$SoK8=FISHHjggfII6q1oZ>Nitu>Z*K|JbM4iV}YNCc7{) zxZnb{o)SJD<$}1eWDSl|L^S&J3FKp#D@9Z#1kvb@^ZFalP5Vrt__kJZy};<7#o|@e zYr;@$k+X3$ueTN<$-7K_`kPsC!ZFYgI_u2^Ak;Lg($aCr@iaUG%V>Waq*@ZhA>|>1}} zNU0loyhXr?dn*&n8p%KiuWg_L!D|*K|FG25CcKpDx{s*)O#)+AD=3U#jS+`4H?C17C z1_Su{zHx#agGodBsh1^XN)qi%!=oOBb^+*(yW1zl_HFN)nh1SL?=-IZ7$M9veEn(4 zN68xu1H-m-C}vDjkMc5L{O#<_=LB((j6^!WrNjBAK|rY-&0DExYb;kSsE}Ugqj5FO z(yKqLuWI;4|LF8oI>^j;*0Rd2Goh_RInKL-9$;&tERN1_l+9@KX+x#}WIa8~Q3kDrgmph2oYfU<^ovvcU zZX=455(hon-c#gap5b0B)I7x;bSys4m7!EaMsHL*KX>Pz6_34lpXL%+8Hh()eh13r0L&_GutttqKnjRU%x3@x3Dxb^3%%vYLI{+pTSRtRy7|Dn8Tfz%xFFoI~;IG`EqpUy{fgo=*ZC%G0BtX zO{SF_SGYjghBM}#H)oK=1 zS-PXPi1+6qQ{E+qJOGnU+?df+xP}m>7p)f@w6}axDP$g%EJ%Duu&I=f_8DQdX)u=% z8R`?0d0NNNC1p0GTdmw8=>v&{JdnmZS3fIT#Y4y%1a7659tFs zLagm)238HdHssiqCp?xBaFUahOnP*+uhENL=?PDrl0iM>q z`3<6NH1a;Su@H)u4-9cIE{V1Yn;8_)p438Rif3z0EEX(nc;BAXTZuz}BoSgD)ZK=% zjr5??h-sTjVai)YUAonX3gCnL3yCe)>znMD-hKJEO-zeJi+P9F^W>u-I2|zVz8o_yL|^9Fj;e!zPUf za5kEi?#`UI-Q|)QxE3<3(p+b%P7h3caISu^>qhF6Af2FGS=E{O_{r$!YlLEHk$CR{ zf;FyQ>2{P^jdlkZycy`J7G5SFNj1Ws(VP}d%Is5`h<#)rM<`F=!{b_+@b}9HTD_s6 z#nqQe)wh#fKSG2wgO23%I6) z$z;S0P)hd&Vp)ac;P!$bZe&vF=4QBEAN_IwHXTN^30z19R!m8cENuZp#qLZf%(zVIlh0 zhg0eyZqfN_#7L7ekEUXCK84DOlu|?oJHgDH#UTGFP2o7{wn$O_5TjdDob# zM)N{li}%L~`0*}}TPB7?pNLCMRxKL3th%6D4L2DTbG*~gMu^?{!YXSg_K*OB%?5c~ zDk8=V-`B{f5K{pE4(T4f?W!G0-vbuVQ}=6HPV*KlMo55;N6QPSXZzjUN*#KtR>lKL z4%4YB7!q&7VCn~V<-$L^M*)mb7pW-Y@ z-Dt6+EXmy2bA~OZ(Xu5ahZaNSOe^D^qQ4Hr462 z5qrN;dDwucrCE`#)|f+2gFCHcXA;MzRB2OrJk2T|Rel^( zH7U8Hrjs94+@3NrOq%k zWR%spFEJsxPZ7Le8MPle$07Amg-=OlQ&A;yEbe{o7QszY;TB@=Z|l#b_O4NEJM*4O z&eDRBJItwNA@bbd=-6kADDS%u;c(H3)6XqSI5n3X#M?`vkLfp-1RxfiIv>1)AC5nb zc%FUl{`rx)x1X|2mTld-n9Hq% zIan$683l&VZ_%z+-1%vOLwxpFq7JH;Q=pCrJhL?#rwHn5Z790D zJm+}7a;$HR!^DX8-bwcx>(A%cwQfH*Y8h!c3_51V(Ggt3GoCyy5F3!d+4c{)rHHoBszsd|-k6BG-k2{J zzE?Hb#6WmiEx01d@AT89+Lf{5#&GCN-vrP;!%FFjTU#Bh4MvP3gpF$$I$hY{`tr@$ z*w}u2R#rgPGRyOg_}-ieqEQrU;1b!bY1+#qn=uvWoJSroDru>0i}tW#Yd67HQC-xM zKrNAsff*>kpq+UqtG2q^a#UMyhd)3Ru_b!8xd2FBrSobHale{uKKL`8SEC29%w6>7 zXm197_P*Z)778v3-Q;p1g>RZj(972I87*bcP}Z{jxLA%`ko7z zo##;+b1R*dy)g~8=tLNVhOB<2EyF@74Dk;Owg8hcY|{}NOs>W>gwDgJ(PFm5Sq}fe zgjKz?@iJy|$BVBM@anq?r}yYY)th1VGnOt_HC&L057?j$IlWMr^y<6C*#&#-Qzh3g25Zn^NfuATQJ)jL$YL30UVeKw9rY2%H zZX_v*!$DN5?B!)Ox`>4@=Hh}_4Qsf@ppcp@sI8gsry;w(x{6qYJ$I>mM6!QkA;jaY zE7?ncZxV~K&)a-Oo`5Hl1Y8+M+SP19k4sV(I^z^ql1)~s$)Dh@v99-?1jZzI`;t7e zuw`f-w@z}Zg?(j1RVb|{sQ@9G+ArWid?m&|?{UFEdmI&cF%P-m)Np0k+pr>Qb0FQdw~_R z%ZF37dAELa5i^RQXD;6ETtDA>47p~7y*Ri~6u7wzMhtVCSnA{0-~sK8Y)gb{b_k(X znj<7-GdW9%ENnOt#^31(G50d;j|_-l$&G!zrWAP~{l&LucKW_jWs2k1pRPmj4;WuY zC?kJPhbb4k7u7CO(CMeF#Mbs)D!HZ43tuFpls-8sH@Bqm$`^9*@rmhc@jWm;hP@c~mlJ|@? zUM?@ct^$yoUMO!KsiM^2%g%(VN!c5U2j+A z8(&!12L{>I_u+1aMPVB*Pm4MG=2bPTMz3{*{Ps$&nFm+;`{KwgoI&w`;OKNeB>h+Z zcs8Fr0(JdMEv*ErzNO^_#22FsZT5E>zJZ znTj^?7#;V}wEh=d_bQo^yP2aE7H^FbS;t3TIy!O^tn`rJHUg1Wy!kt+FSlVp($Z4I zs96>-g-|#cA74 zS7v{t3kKbT2Pn*cRcaUlIe50KJ-yHgwJ}XESAGg{i@#XhjyDKww8QF-2;uZdd((NX zj(hL2_T&k6I@Gq_&eo@V@bnZWzdE({z^vZCKn_gVPqr9)h*N&626rc$U_QpkpXZl$ zo3l$~7ebX-2hfN5FgJo0EI-7U_?6by57vFgiT~DO{JAqK6A;X>jI082vX*;=IC(EIOfoFlyoRpnVdQxZv|@!yhoBjOxzWJi#VrD z34KS&FPmu7I>_Gt-Vn&*@4c#3y4hNdF;}9+`)+b+c+OLR_~+Aj>6K27{{|y@d~x&e z@4K|uhN&H2ij?m%xg=BiCt>A%gZu+%NE2XnBZm*1b@pSLatzxMEYd#z8$JZ=3D}(v zC$-$^X?kb>RC?RJ`wz?(MlGkzc--a! zrEQ6#HHD`7QZy6kBik3+|X9tgoM3e84_pawD~dx`va1LaH7(oTV68eWDQ z{qZZ?BZl;#%Z9L+Aijvak(EQNzN&7NYBAUx+tU zJ5xeZYnd2h9Xs%~kKtFhR0JG(Q6n3-btm#eiXF4ZYSk9Zj!UqH$PqV!9Ec&%o(9M? z-p7v3M!1n#)PzM>gXmJ)209xRB1>02G-n!az;}AQoAsX8CEBe)IMRojyP;Ob95`N0 za|}J24vOvOpl;6>GINJ#RK%_Yd6wrHh*GNZkN01%W`#c}0DJWh+2Y#3a1jF4G6%X` z+cYRGj~+v_lIXQ+hQng%pz&_pDGxI-K8`ta@0~edE0+9Id^mY=kl0aYt}l}}zz=Al zIcjs6X8!8BZr`Ts*_)irDQ%3UJ2Xd5uA{ENTP~$_cm1K1aYd&!hSkb1!rRH{D;Zi@36NW+adU9?ax!S`4OzLy)ea2mS={w3r zXb<}3xbt*6Zdzc?2XK&DE{u_s{Iw7P8I@c!Q+>kXV+_}gaD__cA3AR_3w^+ghc0+c z%hBC+?Q=EggDACgl~&S?g_~>S?D|o8cU@#6E((LWShOeo&+k`g;IaP5$|kSf5s<;o zKaw00j`egJ%Ag4OP$v58uXeGi;0j~885a@(U%$93osCzPMMu5ydI*Wm;8ik%pZ*Lt z8>y)$Kazm8D_7jz=|s7nl^=c5c3&!bd`G%$D8vbNb(OmZh1$UY>QE^UH>@Uxc)y=> z{H_Fz7$#!JY+JH7S>N%?7ITSMlmIvP(UH9>muPjh`^fc{T%)Gw@*uFz4W%EmcMj9|}RnpEEsJWd5YowCzD-9XKx;pr;F6{TfcIYS9ku z^9^NGSC5;seIH!dZcYZ`?}reeyn5&VqPF{khG`q6#HTa?2KdT=UoV?A56L|azJb}4 zTledX{r-b0V~gU=gKivJwvQr&;K*}-F46vAZb|_vcXy0R!C0D?CATuG%qs}!4bWcv zHW9)w@&}-)!0Y0cZg*P4%0w`2xvMjMT%3l*{wS~JPT@D60t{5Ow%Z?kxOMy`Ou4|m zvw|60;ccNl|2ayY?Rd!d%lze7>|`U0U`x~5A##kqIX(l+`WC7l8@CzDzIFe9)pq6K zY^8fR9iuB#b-M&5W7_H%OG6N?Vku(_ZMAf!VjUIxbSSMLwTmTb zEr}(l+C!ujq1KEbNU3|G^W58epXWYv|C#gOcTS#@bCTcp{=Vh?z3*#kRnX2dC4_pg zVyC_==q+`H*Hf)jZ@#xISe7NyG*g#g4@#JqD$1&|{yf=-stkm{O zZxSA^!vsuZtfhgm-+@K})4S&mn;cC1F!dy^*v;-%H>IL;iXHj(?otmgn&(WykSG22 zy!}?H@&>GTs8#$_gy%WT^5H@qFe&di`uDbYcXS~vM#=R|5Evg3TB)c)o#D?S1lfS) zW{SqZ6E$_L51Q2flqJ}%4#7Ox7>{WK^6=t=a7(r?%h))(GbLn` zk~3(oK+t%Yhm?9y!wn0vj0878m2C840;HR>9o~>H`<8KiYn^WDHP5X!p8Gj!T&STp z&-|SO?o^&*>8B4_-{k2ao?dOtqgMc~jw9ltpKarPeq#NwLo|z(&U=%HLp#Jb{isH} z64mXHMB4XsM;y=)|9KH8^xXC7onY6#K+T7tBsUS}9eq(=iK)Gii72<;L zrApTE%udOdw~P3tZyA_uk# zHg)I~DDr4{^2X}~pDph-fEalL7y}a80h`-N3h7*lkk}Ob6o7Q|LyZ8y(?^kTA|siAe(%+4p08dw}lxN94TGKN;5w+5;f!ENFSkCBz5+1(klFL7_3!>Aq2gM*2gwU z&Zl#1;7tndW7q9Y7?IT%g_^FkEw?gT+?Sv`iz16^(9|t*=(2O@K=21r({z*u)osc) zg*VleC{z~tGjEj}f^=`TGH&f1&2ZB$eDLa*>9N8H*je-#(T!|^2vmoR{8%^B1)oRqJcvx`eY_*dr)+?r}NbAwP)|uG8nl506AR*vc zf0|9J$!P=Z)nDM8)7-=aD|4S{6`r+R;p58l25W7W18HkrQ`mwc@-fDRD~)nHzl#E0 z1_<_E)8w2s7O-5k(p%|W)!Jmm=yUFr_yA+v6QMP@1@m`9{SD=W|0NZ<+3Fy68D&^ZG}!1e=c#u zG+a-~HS&iKs=jiv!UeOW>$IjKuB5aweOe6)Fr7Ir5fuT&Q*xfh23Vq`_hT1&e%i#` z)dIqpg8uaAc}>GsbY=vEIz0Str9kHdcYV<`45-h`0+`7szW^i(t;`LyHbX^p-9b>U#iF^=z8c^Ivf!x*Xo` z=AV~H(MmfAkO|C*NXE>HreG`_c@jeH|770!Vh`{id^!&Oo39KI2mj`iFY*EPXE_f= zCYyb@va?YEJqj@9fl>rfCe;6hAT|OxV_?VY`dAd4J|dQLi3~V`fk0mYMO=<1ucXw) zGU%f6F7UPs>c6kVBY^DoXY$cM80#+sG!wwSU~T00lYX72_8fM%za-b+*8Et z1><(t0bh;-pA9)G@lF$Hij>Vj)1pGXe8>Iidyt>($e@5TD6m|2D)tXy+EVA5KO_Mt zDg5jUI~RZ}{j3Sxdhj}{cG$p9;{z|7J)hVSKx$gy-9MEzowGEHEehu~@RFCV=uVFL zDDb|{f(p@;8Two@+Sn*ng>@yR8T9tTyp1;dG$r5d$-%=)x z)$8&x_6}qvrg!lOc$+bT9=a?h^Qfi7X7^qTBJ#Dot4_WlbkjIhM+^P*u4qkoeZXPwUQWh3ArPJTDn ztT8ChIo3%+IjKZ#$L+_cU(*_?KPkAq!IEURaQyj4T`6B;hyA&n- z47@wzdl?O7uj~N{*U*-u_zVp@vXd4%9OiOd0_`~wUR>BC%_IdkgnG+X*2i?5>_}}2 zJ0e`bd-^@JQeX=hjS1DY%^0LZJHuyyuv{Xu9f_#aIN&lfiQgjtHsoQw{PuVfq~D)0 z!SfulO6ny#PdnZ69bMC(o!$=v*^t5*`HG`%{hTWL9OOxj1&n<_(UaAE7$<- z{;U^V$QU>Z!<`<*%8iVpVuz1=#Rx&x9Nbl z2}?9unYiKJn2P4?kuX%@xa@Wy3TJCql0!VUW&6&pT}xqSloTqj&@^N;T$t!7 z(`{%XepJqtrQ326>F_*jynIt$Hoze^!CX&C%_lo&M@XoN|2P-E6)syM4=*qkY!2uDt6aozglE?Jdz;`}T(BDw9*knb%=~Lj>3Ds<2|*ubON zGIZfEo{~ULutTgP>=VeVBj}F&;3=1s?ov4*9^xBb7Z=^~Sbe0eSy5w|g)TiTpL#u{ z9ovnoH{ALBxqgeijz^7c4Voe~+X*re42P!L>2fFLJu+XD7I6`3t1(m+(OTusUH8S) zd{h%l=OfH#wjXkozKgd*LFP?zM&qN{UuoC%j0+Z%Ya+y0wZ!woQGRbQ;+Q;3NcDvx zUEXG6!RFxY?mT*1eMP|fz8YVdlU1-t%p#JY>8 z_&33Ie&p;s;=X`?!j=k>!9B`+clT~w>6f1Y=QQ+wl9jz0;$VK`0f1NxltBD%d=xjX zlYk0=xf(D{A_G}+;ahOCE71H5vqT{NAISMPLG>lZo|~~(@)HyCc5@mOP;&%8E;^dp z5WtCr?f0l%dlv^mrqUY~%s)>-@nEqk2^%kZA731JO{hq?ZTGk%{x2dNIKI6j2038U#cR-Q9>ZhwcXHZt0MNh_n)i?(Xgu3F+>Vu0x0Pw-4U; z|9YkRzn zcQ|>M*9OW)$`Yr0|KqdJH+V~Qo)iO=!~=MI55M}8;^vRH;x}XS(Iz#aqdmk~s(_kn zu-CyyE=do_`TV*ZR}C$+{Z&qb#`=YO$Ko~u1r^lwJWbidH|(1T*l#}E?(Jo4xm~nbSYYprowdE2 ze>_Gn{i9~Fw&<2+-g{*hAoiYgeGd9IlAHe7^AP5m#Xr4*hn_!J8N-2QZ0=TPyR~zF zp^Hbi$Yzijpa4SzM)7I70+ci<$kus1+S_B+O5$^sQxnR}sdwvMe7^AF%H5CN=cI4( z_QYgZ-17?8wq>s3yZGYm7X01IFIu;&f=yO$WA?0@uPz}Wazs0azAnf4UVAw;mf_d{ z8zDgZ0I!LB!LIA#Bm{;Fx3l@Si#Lou%3YYASEuNq%;y5Yc`ZiI`v#7_kD&47?lOZ1 zwqyy}UtsN=^FGg+)bqZ$lv`}F4yile^J&8-%6SQOfrvl)sWw3abn$l#_+=nLB78#u z&l|;GlXsJHw!Fi7<|xg#M>2+cMK__r0+%ba1zLz9>Ji$a+&X;hjXl@%S`UZU;OcrU z#ukmYh?tYKzk#|6l%Z1P<59&vhA{1NV5W$0^LgqlNKzsafKuJ zvfJMy8vG|?Euk|u;SRnQ6EkmmDxBb&1?~>%8q|yKY8I$B?SrQX1WXA`R6IS(Uh~ot z$k2DD6RIaaEx2MNiU6y_*)+WX1_2TqHccfo%>xYicFTvr6y+y0IxSuMy%mWXgfzYf zeUZIu9Mh`EnLsikQOeETC~=vk3n6hxVV#(Cx2x66>+rj4@vB700i4rD&3QY#26U=c z60o9=qHXxJg{K-uy0ajw6-pLwHWf#k9xQcI@Iu(aiPt=W+%f3`mD`og)x^YvqQy#d zkhfEvuybdnUcF;nDJ<|r2^TxM-ZLhdM`j~R$!LYrjm8E`lw4O^S>DDV>RtA}ZAe7` zLeP;~+ccn_9ckx!Rjh7zn}RJ~w#V}^ccUq}v}kcPcb%`VQs(e}OcpP)b3R?$EX ze(wx|lw?^y{+S>5=$zAPf|d$U_r6fEr(4I&^%b68>==8PHlW7);$x35##$X`ZZ!y! zC)2W64z2x(xycI*(8jb*xFb)cr7Q}kgG@(CuZrKh&e|VFddEvACx&9dYDOtp&h)Li zfitBtX1E<8>5>Z&JL7R5#x^w^z1s_G!@c?D*Nrhtw!oBHZ=Y=F@Qr&GH5%LxPw~DA zzhRfQHI=%H17?QFIlP6oxvA7s$qDanZ5zhi0L+fN+N}=8yU6=%!I!gLb{%iHe{qF8 zOE|?2Sl;Sr=BGL-qtpsW;vOC?X$ZcZQh3Pdl~eZ-B46$(1Hq8}mTPa(f%&=p?GH7P z6_f!rkqnUAWpQmO$fFb_Sy2;qKW}#DF_oK|rsi~;mQ^3n=vth~33`3J7*7eaN${w# zwVjq-oO=`N!Kqf#a(%Q@z``t7@TO&#}?06G|TC8Su^-l#^<-~LaFS^x}0A9LHl=HRqx;6@4g;2i#od3uawVF zG+fNC>7XkXDDS7Y`x&MtseHNMe-s`@2jM?oaFxiY(A*e{HvN^!mjMztMVaaKbBAGnROUc!I%nLUCXw zlhSX2-lix)^vy#tK|W2BeRORO2}2nxJI|B_fgSS z#A1SENAOoy-s^mzNyI{Zzl8s9k5lI`krI__XCENeX2eMDR|>>}e!oxywf^VF_lx?! z_5Kb3L4y_Dga5z)U_=P0aKH2-E&v|fLlU5IL1zI!&t)IZ3lw@){bXuBs&}#B)HhbkhpD?|o==S>ALZIzeMdUi$IpBa3EujHJ#}T;>-`munb&^V=FK(sA z34yL^V;y-hBbnn{ea5^e@K2(vwR2~M%SZIiyJWH&20J$9Q*ph{7%?qTI9pU|fVt;e}7RH6RcjQ$JY)kKO7Oox~iSn{=)9#Bt);ov6KutEEos zC*V3Znn!PfnFf9RpGMh?S(j|c|MDB3V4x5;(h3ycu36rBaa3Yd7zH`?crfc}dI-6Sbnw-8ZwywhsYOztaoA0uS^FdUK3bOT8 zyzth~W`_=v)z{- zGqEJvXW@?#h!DWauA!J*ZItQmBFJuOr`Ben!4mcy?>d`%1w5F2r^IT48SYw9zS_d0 z9?3<}xXIJ|@>bzJ8E#l;>dvhbYhP0u9&Jkv5(vRq0|wZV@bnLLkmeKZU(*khdCq$T zM>aKkEXI3h>__>6mWvw66!vdDLyQP^3jX1%o%*B47DQpqPI7p!6zR-HH=TdTE|1G* zj5DGgE(b%oVDcwdi%)2@fBD(IFW=2962oxH{Af69?EDjq8^LMhNhPa+R>fzuMu8fl zJxIA3TT*L8D5JdWDHTI=)NGxVSL!ppXWpyDK;8FFK_*mnTa0oUoFA)zP&x>`K=cS> z@1N^d^XxOi><52E452Xq=D6@8F8;MhfI7f4-~e>VUwcRW;a}zQpCbRA{z26Er1S*P zNQmQqG?bVU3LBk62j6&_ncu6%Pt#SPmQRnK02P7Okz&mur4uLh8c=n>H!!jihzh``toO(5cW;D1|K`l$syb4Y{YVqPq2bn7PL|7)%RlTx@8gq+%# z6H{YO84eg>`Y28l9x|E&e-$qU3A0%>Zahak6`^qVk6`y5e>0OVQ84OrLeos)7S&jaSoT2&a4C>a&t2D+jlvK-;vU zrp9P%JsV_GwKEhWW9Rfa!b)VRWwHQ+jRVY|osWozS}|kWpmzD{jDLBizYTl0Jo|{3 zfXS>Y>BfNR%_99K9WMV3+&JT`;WAL2tBEZ?5zkYo&m5IdHg{(@CP=DDWZDwe+A?+UE__MEKtf1& zU;m9{p-KAA@ zx@DlQUzk(3-af`}wm?B1ZO?IzI@_MY9s$zWnpX+RcIZf3FqqY|rwV^86_HstWK$29 z6+Tb@{+V1d;=24owd z05ZotOL;lljA~T6)KgcAoJ>MU*SDSU0>NFR0O?&K3j4QRy0b4u?D1glXcV$>_Xjb% zn|W@19a1M`(BbE4fyF8SJiYng*=Z{MgWzwn{g_zG0)Mm; zw02E)B|MhI`tZo^%kQ>fx*l?Od4Ek+5BeT90!#?$*;v?L=|pN}u0q)O_gd$#{`lwa zpIQ2ka`}7r?=1bRdH&u3mF^MDU!4Q{1oR0={XZJuZ*4>oV3BHMZ~||UxVx+=w|=Ny@Y#_5T8|DVy5?& z7$MVU&cU`#lhSAE5B>a2Z0GR|`y3kTxL8bv!XhHB$e;UZG+tAw*@I=JbxGYJqwzme z`867n&@wu*n`}EP6+J|Yf1V|8O-W3RPUr9HQd$t+rPpPD#X0!{T+lOsxBG zY?EL_lcN1BmB!^Q;&Z7wx>8EDuK;z2l=DTwR`)hN#Qiw(I*6_&GEbsRy9*Q-Cn8OR z?ZMzX1;J{Tm^bAp8rFX^TzMr>AZ__MJuzHlGo;{Bh&Qi0x`C|dXZEflTAAH8KZC{W zI==a;=%a%1i1R4|(YW0Lezj=$?Y;=W$JVVk5ou@Vzru)XNw!XPmChEX8JhfsC<0la zDV*niH4By$-d*a$85$D4wF#a>vNKJMj1yj2t1?fk)(uMFEbEmJyRSneXEjQ7&*0jk z7RODxg$E+vFXuzumf^+<5yws6`8|eO3U=Qr4jof8pkmjpi+v7y6^fJKX1@lLE)l6h zwYIn&sK%@sgHmL!_7H=|q^Cw^{P>beQ^r5e(hA6!KjILC8>gl0ZqfAXrs|0Y_ctof zvp-oIlD^X`ekV2i#pRbqmN=(qa#`(X@umwC+cKSz4uS3d*@j=yeEbkB+k&p1xCyty7^`>Yi_ws^jlmtY9nf{b429 zh@=xIP8|)Z-xR%|$6U+K{;1W!hT_|T_=v{nCj{L6G|sO&*th#B-|JEtP|*mBvSLT) zW>akUnhfSeru%kefPEtpY@Zm%`s|!HKGBr=)$+|)j~cB)LKCu$eFp^MHD zR#_bC(eCGl2vfoSv!hso!b2_^BDHI-pjnG#(-sCRd@*#gENQ8k<5=;;CYN#tD$9=_ zAXGNjJ(oWKG?FN0#8kQS;RyS~&|_L}!5?8NDuQ(+GyXyhH~zWUf(4pWpT?@D7vGba zwV3LP8y+4D5)^fn3vZ&!1wGd39K?0d112>U3BlZ(8D%X81q|@*J9Xovhi^tMscS2lv#~It*FR1$Wi+!pdf#-|oZzmF|Bbr)-;N87t=e5#Z>_wYrF@!5S`Bs=C*RCs~ zQn87Gk^1(lmhO`eNF*Ig#Aqz+u2-mt>QSX3bE+N#Hw64o6hBfNdQk?|U%%WKm-W7| zC~zFKUh6E$M=ZLn=1!nXiKaW=?Ym^jaqP407dTONj|*PT_FkC1W9BEl)=<2{6}HBb zeHW6hYLGBj@3xoZ$aII7v_neR1F+YEsO%t** zX34j=ZEC0phg#U}u9#iV8MG8VF|{8gS`*6Dj?ulv4(BRyhCXE|8NX$AZMr9w@09c63^2V)XdO(yrsgbn|k1V}7~J^;)%G zj~2qqS#Osp?YR!PsdZ@04?{j+Wa4euE~~2Rz_xDh^<&Y_h$pXh6%6lid$+uON*B!01QXQ~Y-TGJiuy0I37JU*Yq)~& z&iozbhVhVTpIfhDR<`_nYa5a7gS}lhH<%w%9Ohkmqk+*=;*IeRbLW#QNuFy@&zl{C z5U@XqW!h)4KMrZ0#87(Sk5zG8mF?L$AnLj)7awR4X7E}Hf0QwqXRgzGhz21>5p7WB z(F$i}u|Wx=;2~T3Va7rG&#GcGa6F`X;|Q}Fo1kw|zJ9Q(4tdy0dF^a6(N9ll8l;-l ztMTIKtq_2sC?K*%&=2`_RpO2%vV*vIU*&@$umP*7De{66M9qf;dAec=zjjE zwm$4Bx-!&`#6L`S$Dyi1D>Lx&iSI89&DgT>Lp+GgAL#TbF{Aw)ygd^`mx2*S7^hd6 zvYPy+yRxpRnF@Qxfx@FbMkrWVlGl6;Lf{Yaf#Je-el1a^69&xnnGF`ievIFu4c7?2E$fms; z#%m|94}ZapEIR@+0S5y50LTAB%)_;3g{b!lFxmb)ml5LC|KL^npNcGHszXmtPlIt8 zz0029GU{sU>20_n`UF7rD`OM}-9|1v)NLYOJXGMa`xr48fD+0cOwYq$y+WTqxGjG~ zlX3s;#q~rh(6E@5$fe~)LnyiANYZ^xfZ&6{}Skbd}T%&RhGZ9Ta5mcMNr zUlI>^IIdUG)=BkZ9B2bz609{c(0uXLoViaBj5M-Wc4dM`v_*wXtLRU0(vLPRXe#RY zhmU8*Fbfrt4Bo^hm%Rt$=5Eh!oCd)rmPR8H4*(mWtP~VPFp#_( z9o{I(cA^_))1opHndB8+-D#9c_L!~>wdaRdkd^58xC$gP#eIiUF zywJO#Q>JOgyf3|t(0Sd$=$5o-}_u@g~;>iC)`^wUn|Y{y8rSv#DP>pbn z0A3EtDZD)Ak^tUjP=bUvOjUD)^0n5(m)2|5rVUx<#!tUR_+~jt`D!7*n`S(>$YGw` zGM!v@wtKA07VaINnRFcyyuJYnnia%)RV}^FBRtGxRY2%W7-~cLV!MFFSncSxKON_) zbk@x2N`tIAEr=&{l*D;9s8^#SF|rGM3W%JN&* zM*>*2JNB8XjuaeS6{f7b&eAVt%DzecjXh#5ZCCwfi^j%UYke7uBSrH$7DM-I#hFaN z_p1)&*Me3muVi~&ky@TUny0(n<88})!5Fgj2{!;0&S)u0(!z?DcGFG#{p^BD>6;tI zYx2tfnTp>z0Io*z!wugfYu@K&Z5ABZhe0^?$G6bQp z(j7(qt7W-bcNZ=0xZJtZd6}DS37rb3M=@`9r z8&2!iiE#-8nT6#1y)VbS4~Sk-&kFMi^U~E>iqO&=$4{C&jgtXdqk{zEWVm;rM7Fd)dLsOX?&!A3Ja3qMu^ zf+1I0-7oFlxLe~{OOS^_O`CL9{<=o>Nk_SGka-R)lPY|>fM;zgQw0?L82U@2=UrD+ zkhdQGl_q(_n3fQ(xf@bAWkll>R_)g`YfBeXe3ZpvG=7}RiK|)^J$`BxWQIk}bY=OY z)>~OQTDV#o%_7bL$f0)93DndV-QuF04T>Gkh6AJ=jF|NujvVMfDyj4C7KB;e|#Hk$_WjeatUtbtxlG(kLns=k_6$oDXoxR9j zPPWZ%jn4ftY43wX}L488?tF=(`VV0l#P7PYS#4cVFsyl;sZxYk9#xFi({mQvbjl*wL zsJr^5ZCy22-@PF{IT01O>Hbzpf|XG}EES|aeo-yO5n-m^pYUwAE8R#9O9qFr3S>XN zf&Kb(t@1`&3hQ>x(qdh_Pne89OX}+53FM?9ErklK!LsYJw@)-_x5sFPkIYVMJ+ubv zny#IwNunZ2Dw%;WOTP(~+R}OJ7{U32S%v_yeZv*I)d6s#ScniD8Q~|p z6O{M#((DuFMG_SxO4=tXHD9n{OoUmgG(ZR%fzs?Pr;Eq7d<)a;^4}2=%vJH-O$Jl# z1`rG=N0$@*9AqJ}4Q%H)F{5JNcpn=S)h=MJz~y_X2WMO7d0nK%yjOu5#Iq~QaC>%? zw`ODs4Fr|TQg-`sqF0&G)ScxgA8(89i)5*>#4C6feAdj%qKOeu+EIpiP9H=OJv(45 zBHy?mifE+Injev8W>i}idtRcJ?_9LpgYBr%V^27-A66>+_PdU>K3;w_;f4&YV_Y_m zQCc6p>ao&=X902c5OQY|H(o)Z%V!{Dgb5X$>k&k_HqL#WGw(;irmS~m#bh*&YGRr!; zYbb$kXApX@VwCP+hy9y3@rZ-OXfR13urjZ^y>#{~bTaxIlkt~NdfgwkF3z)YUNL4R zvn07#Qd?J!eDORHEm9cv1UnK#xo-2_2el;H!(`dk39`}*q`p6KB%VV`B6x{aNn-6P zl&wAfgp((lL&_{t)tut<>5C`%y5e7C-RC{@kw8^lN+WV&*&)e zYl&HoAe>5V0(3%Hee}f4AIGhWj|x1bq&j&z3077e>hB&JY`4vt-De!XL8Cy2Dc7HhkD~Kbc|*xHZK#NShlRTvAC}}R=^4OK zMJWut{DY$NI{RS^v}6gi4I^sH$jM;i_RL|dv+}5}$`4xdDj)Mfk45>F+KS>I?}#T| zw#gg0J{OU5wO$rqvnI|a;;8Ov5W@l@PL?V9L++!KvQ1F3Gq&;i`7)UjJ}1AKTJduK z#JTm$%WqZ^bsVn(bBua@Ntd_v`3nHOA=~^fxQ@$ik7M*8T*4JxKtxv}yjYa8dA+9`2W?_wW?Jj2RVxeRU5@{~}(%D|qkU z`|ok8kaeS4beS^-Py;~5vXS7Y3sG+JJ28*`J}?=^G%680Uq~sRF`ojWZvH7&4L%5X z3hYY9_3C|D!~c@S_ENR2gJ62n#F+6@-%8jurv-gh$3i2^E1*0;SA`KurP}X$`E(Y@ zkgbOOqFm7nstV9=UlA|@=OT8Uv>w`mTJx?kA*9#B$zO4E5JLb6j_qhoD}%LW3~Lls zgKih3m4U|yCo!rl<6ccf=J;T=*SI#cnWI|XHVW|y7%7tyEEVq+#{9LUqJU4T5rdEo z`j7hnfKp`OJ)+GwkkTp@?Ab{CFXWO0NjATNgvs`(2vsB^fGxAALav`82#5_V7k$a# zry6j!&0a)Bpwq3Yd&UCh#QzCn5hFu*WdCn?|No*0qR~(75APejcgZ3i{3YlAsbzzx zi5QmT2Q~toM%Tk&_FC7&Wiz()pNJR0_Cq@2UY{wqVnd$^xFiDuA&>V)Ne5tZbUd2D z|EC-cU7P+J`@Zv_p>(0yt9@NOI>7GOE!y`A&_8!h?mb%~4RWYUBA0ZuzbsP$++`8u z@U;v%1TPUg-A|o~PuH`446wPJEyh)Vkc$J$K;l0fcms32;xZPl+y1oI9^gKiCIP$g zW+qCPGBKAe9*lvZ<}J%{a`=GxGi z6QeSDZHnW#1AD-x6{2MWdS5}2R86P}>wXP(OKq{1+AS*jjKaxxrE851?USVe7j-(c zs+I{+(`4+nIMOrcS65Sy9OoN{oC#0o+y!SZYJ!u&-%O+24vyYBjA#?B@zUYo(-u#v z9ZLyaTts=*GpOdf{Gj($4$WBb)O`&X#8u?|Ceo{0QFdq>-%M1w;nDP%aoehL%8KD^ z=HhoX{#Q%}0(HkSwUYr&fB1e25&KdqN+3+$NKU(ie@@ptiN5#-cMGI-E&Q3Kx8(hf zZfLL2{Kzi7>4wGGMDXjQkWlwyH!W-zZOOVoO-sfrGDg&wsIvK7Da)Bh7&qF}8tG5o zYR;F(2fRy)5yac@czdC*L87*Qh81r}eKfr{y>~%nTkJ6D(N6}skOWQ_3#7C}YJfhK z`w}6BZe-86DMo8?jJ@ID{jqW?yo0kh)e(MA%i>BO`+`nluBs;b;N% zq4bb)67-yr_@FLnXR;z!1zWGLCE6v zYCmC*)5}&v)>o79mi3xV!RsGh2=mFWA8qmb|2Qh+KSwyoB`s!KwSTXwZ4`D_;P-O15oLE(K2rl%jV(0P^*Y#Z-_#(x4c*f6 zbT&>Ey&~o!7r$#7MtYO>qnZXB97%1zQBxy|JtSm%Qcv>wgCCUTCgkfFM|#wzHqDIogH@9YPui@RoSlVhxX za&SoKgn0HqlYH_oa=ac|{uoPE_}U!z&*CXdO^4IxwqVrzI3qMZJBca~F@wIzbd=UZ ze(k9g$hVY3aTYO&5WN_u6b}Q53eX1|NU=iDAAMr~hU+;Gqv6NF8fxh~+C-KpKcGil zB=6N$LO&2b1o7Y0*iH=DxZhqb@6!2|Nc%&><_1Z{v{Co*RlMFwYCGvFR7Dg z%i)oS>=`x+HUXHEZ)#j8sopMM3s~8|67`i!Cx5O&S^Ohh?U(I0b>n)6=e-)4INc)S z%28t_eCE#Bh67m~cs0ZRg;Wo`DH1XC6vN2|rJ4e=6r3K2P|!ENr0F%So7WxC@)%x^ zUU1qVc?jR@;GJ$IztN@oWi++kl|MC~*+EFLeNu0c zpG$fuBnaU-EyPG!$c>6zme6Gi@MKQq?v{iQc3V-ET`_!q+X$$fLnC{ba$^?xy4219 zBXxlMXa97)z?APF)m%f493pX->mzTjc%)Ug!ed~J5PANX;^E)|`JmkEw3o&d#cyl0 zB%8$T84v9~v#h4aglpJPK5wE^G^?D#Iu90nr@+^~!q;&1-ub%-h0Lj82ToSMT2k-A zj9XKU2id3mOITl@+{HXHVwrCH$vdh2S$P*nY(qTqg@}X=S5vLky7o{9@c?)TMYNm3<>p7&3yaWhFKfP{vXqL&#c71zbgR`>r3zL|{ zb1)4WV|;OBxDaLWtRTAZWakSgl_zz0X4>gzLyTc8+cF{ETcW!34rDCQT#`aPd*`PjivxoHc; zbHc0KT^7TDhzyRYwT;nJDYLc6anTBM-t~)ouNPnQpQS<>5xL^^) zndi_|X9#$>&FXR@Y@$*ZMBA!w&^~4jlKJq6+RNOwGbKm9u71#fG)&bfouz{aYB+#>sqTjCKfVE0v3_|UZWwzufW-RlBbIpRid*Dxntg7;ZM&6SX31l&)EHs} z232=BT<&N~oftg$7w&X*zNmGj5otfnWt_v!zG1pSf+N8DvK!xj1x!C5VF6I)9(~{A zO9U$V{|3qKTlnAn)SuoOJx9D@yN|O3F7EX^;t9|<>%d+pArL#yepgudw`M8G?wM7q zS>?@cMa|t3x()xO+4aSyi;v4rUXHWvT(`6L!P0$H5CVo#no2JXypqe6eRud|V*sw* zplXc@glXQl&9q}=aoe`OK40RQm5u)`WmfOckG&bqINBu}1Tb#JY_+=bou9X|Tgn*p zG(qeU~{j+;N~ z_|sZcVS2ugTrS6<`i=X=zYyC*z{1SYQSk76&&KYw6*xU9>GgkJ#dyrlcE(-?KOevI zblRKqgTsRqpn`e}7wQ%fKAgA5Wn|lAHB?m~|Rn@u1~2>caG{?Ivd9F;EO(Zgxx0 z5Ws*Us?^1cBzT9Yo2v}2{r<&9D07YNV)7Vf;zj**ts%!=?4o=A941{BB6c)_;aAZO zn`A`YfL%T3jz!LQAe>aM4AK%!4uq4|mmH%ugl-0fv9kBP0Qvx+Bimg4$6mY&udR{T z@4h8oGJ=iC;M(IqE1j|Eg4cFrkONx!V?Cebl+E*G`YOK1Yn{M3G+prO%V#oPKQz;zUB8B+&0qvQTPIlS6y-V}* zjq8)qgX(g%9G!JV_mG)cJ0AL<(Zchf@rIAoNe+(usbY#=xMPh$H+s9|)I?)`?s7#< zi$UHw+8%h$>lD}61wHMndBC;{T1rt7y~qWjS5G)sL2O=OM7K8l9S?*GRvs9Ep7ssa^6p=bM%S8vCm;3+Jgg z-jM*w8!^R?xJ0KaM3+it%faI|RKvt)D+>kg4FH!}`~A=b@CvrBOb0x-(gK=KhJ@$! zZpPQ{E_{-wF!?Sw2dXT$-wDN$NZe5fc3AGa&qnL{lbbsQe5V`0cFw^Qw$n2{V#8DK zX19!|kc{x$J9Z9OD%*t2?q&*I)`2&(FR596Y^;>BnzjHQ_Twl*$51mQ^10DY8F2i% zsv{L=5D8LMZBHz}8?l$@~-Ux`s)Y-WyE=|#V<6kW)CwGjTHB$7|n7A_?-9nju# z%^5Bly;&8I#b$nbtQVB;T>L^pH8JKuf$l*c9Wb9bI_LB>;>>i0f13(6AVci-J8(mp z_nXdjPLlB6IF~8`jk{RbZ_je+AqOO_zMX_LsOy%f@|ue9>O)nmfJ; zKa-aDExqfYcc}Y)pCy!fyx?S-MUQ{j7@0=ctPnk`%)a-xxJKC9!+2Cu$Dy;119G#Wr z`5W(T7!|Y94Qgdz&smm}CnZ*GU3;PJ{$%lu`&CE}7;<>oEW z@gjkQ42bsOuzhk{0p>~4oDqEkc>F#b6FcI5rWcP@fzP(KyFNlYJa}&mSIfk(J+v8- z+!Jp?f4~053T`2jhmM@ZR&KjN&=IOVGZ1b6iFqTm{SKHF6>XiJUzkly&9^Y<+Rm~d zov|r**Bki=b{~W8mPwANJMc}LiNlDadN-FO^Sgd`o2H-VKC9eyg^-fp!gBsJwWjIc zveY4gmGkWl&IgXp%w5qCkq3A^HO-YDH8~`&w6xl7W;A-zzrD>{ z-D*iUx^DjEWNvBskqb3wj5h-lSy5a07e>JDOy4m{v>TCI`bIx)S2O8xR2hGX%@xGp zC{_ZoFu3Q9jf3&lPyQQCVH&hU%QpgZF@9-}0uu@_FWySOw?a8-AhqC5 z<{WBPnUQo$H3wLkjbZ)Ln0NSQ6MJZzsqnD2DrPL|(oTM#U^t(4wvMm*Pn^;qt@yB< z+&f$tQrIg%R+E|67lIjyq2Su9)ktjEQr~1h<35hqnk-jV?HJ~tmIjS;PmDvBlXKLE zH%YO8>H&p&w6KmRk?p>elWIq?(0Ir^!RH*6x+*^KVn;j!1Z-iriY2tW!&-^=#9AY{ zbeI3AL#6HAn<8XWel2k2h0vg?eM(9k4e}Zvq8%KO__^OcTBE zR9Sp1)%)GUVi88JZm^nf(IWQjcC=wtwxpS)_r0_ZvWyYsSbT)(a7ZQYBrcy={!Cr% zO3#4S8XUlEtZiDhO~xV97q{o=ZJ1X4r%}x7p_~g;&xs<6Nn;hYO;8Mk;&O$ASed0T zOnHZxKhpUU*Ru{&`SvX&)3^DCU=k_8M(7GPT!+PS3VuDEmMO;h?o^6xko!kfQe%rz zS?LTUG-iwIO^D)z?>f5aq(pdQ(ECO{t4=2*GYxBkB}x!u+5J!GcopE-cbwM%`#`Fn zPH(6bFC1l8xzLUKH9%3=mv$D&`j)M8tSc$pvS zFsOZaQt4aL)9}ucyN4wDkxcnVbAimpvtA|nkujSQ&2z(FT!9CgA1u`@X*Gc&Nd=i690 zOIXW*HdLSHhrl|f$d$;9X3_`kF3hjq?%cP4h1D8Q!U39lcf-d5D;QrJ& zS`UgcoeJ)7X>g-2sz0Mul&|^BY2JUOK>J{S0Y$69{dZft(A9$=*n?cF4JqpAL^bF4 z%uRTJ{`zIc#?rYPCI*BpJHuf4;wXi*>Q|z`Tb*rywt3)=t%P(i`f@U zvMk|>swNng|9AoA^S0OaGD1F!K&py*xDK02vK> zEFHF0F#WTzK|UOI?q2UctQxA^fU-8j>+r=`H{4$UR)&ALtL5`6W*0}IYWxYj=C$B^ zoq|360eif@x45K1@mXV3Zp-F88~ru1*9tL1?9^?TTJm8jGxk zECvSUX3x+$!4Lq&nYq|x7Jb1?D9d`hPc6eBo5NO2O|9{qN+QSL_6va!7UyK`bwT!M z)ZAmuUX(6YKj$ou*i5T~>hv>OrKi;)D23ts;#DA#tjeIr{go5Mlgexlvv1wMWN?nd zwW-1IM&~u=YXAnDxVs+?41_V89FL|5m_bT;34jFPxmpEllumCGp}RwEzsUA7_blAj ztvZr`dD*+#)woGCAmIsgP?2)ehv#_yixPbd69DAe>+cr4ui&YtK6FW~=$>>*C=k2r z?AC{yugAL_eye?o^bsUJuvuo>n#Aj$#B@5AA+)C5=g2!64S_t#GnyO6_KkqO!lU+}oi6B(h1I})U`kyAh z7pRrkSXoJ92`KM`cHlDL89F;V>$?8--xc|f$s@|a$(iD@S4Zb*w)4Y3?~gBUxZth6 z$1L7))4rFjwKZH_3rgLhuI5&U$XElcj<9%_1-Ffc#T%QmbHIGs8%3Y8z%-pJl^H!6U3`t)3+c<8B2V0c8GeXZ1S?9sGf##T;9;(5?EaNg1a*i`_saUu5c1gzm|MxFZe<=_T?x9)6e zJz$i}9l@3cD{UGNDVv2;mY|-yK3ON{?_J(U>k-iw`p*-i<7Psd!3U_nfJhr_5_b)- z-BX}5z~H8HJ?`gB@xI&w7QiJzhXdOS|8AEPEr8?Xe*dy`T7QO&dx8YfZ3avSILzmD6U4 zA(aZPLzwc2ti(Rx^9KTn7pzi4GCM_Fs{>{gZ$y2TyV$XX#0$9)r4X+AJ{l!&2s3c= z-)?|~0l&cj9RJmQ@i#;dkVQnw!{2=&#QFcXBKM6Ew;`s||49U(No4e7@!@aQQ*;-c zdy>K;!G9jNDgzB5oGbtP4@v-}GFN~a8XBS=Ne9o*>-;m4zn&Vz6a%UO5{VclFsA=C zPa`#A*nsuWoRP!^ZNlRN8qO0B8OtHr2%~1s@?U%Wc{4eYMmYjsS?TY$)#TEO(Hp$W z?(;{0-8&#uPL;ys&YB^tQ{p$jg&w^1U4!Y}yyN9n4QQvyWIp5PR-&*O$>-<)&<^+( zBw($v3bxIflTUbD<=mToVD3Wd_PA}c;^KCldf^0Lp8fOt5CF|4GnhtN&rYe+-Di3y zn2c7hP;n|t@$u0rndH&wRDJ^;yeZ7Wf@$5XeZpY4gD3JfoYC1qJ>2Q1P2FNrZ9@!Qs ztMS~wwI4FK*IF?M1(w<{gh?6LN{a^6J1nF|^7hS6)qyxfy6ExZErra{r2t@B&s_>y zFpx1e=@g}{qekA#J%j<9^uFr+s(tuWfX99ONTHu8IUcNT<6+IRC}38gODo&<;wg~M zv%rRTc>cY=_ER4c-}OQJ1h%^1!9hEEZ`z~3#GKinNa?9iKurrRh%Roj(_K_WG=Pv3 zYGfJ@8vcn(D0kh6j@7-oiDY9eYbH{ z-4G7VqRsiUQX{u?LrWBq;4}6n>qtMqyEvp{B<{wcKb9calNCp5_n!>;B`5pJoz>Pp zjfbXm3H@%&o~tbq#Xm9sI4o9x2G-DUNq5^c<;XmyF zS|Vo_lj?z?QY?gYxxvi#zg9y;ARNg&e}vCiX=R#lqHe#*_E(aTTB*xHkvw0W$NGJi zY&j6#=X*UxMUO}UEZQSzb_v062ec2Me2`j!m49ug73X;!3;(}LiEH@Z>4%sYh`NaN z^PlW8;OhTSks+%6+sk*&|BJJ?fU2r{yGIc*5CLf<73mHs5s>cgM!LIGL8L+H1_>$Y zICOVPcSv`4-gV&h{eIv5#{I|LV>mo#vt#Xj_Fn5*^O2qb^W#)JT&bU)s zQXmN^%0QL;_zzv`*>~G(!)^WZxh+GEv+}c%o|xU>rt3wmQ61lN&HkievBv8-q~aez zW@$5qA5+p-4i?M(sGc#mYri(8>tYB{CVD=(fa8vVNDdS_jJOMAl*QUvL;yC=A%b3J@Svv zruTsny2vT590JZvP~9S@66y(6ZoE(5)37j6YwfZWPDMBxr%7^d;@y1OY@z9ZTXkU+Iw{WGfrSRwcM#>XVvamZ)r6d1Enu&yYxw|oI&8=vyN;OSY zdPMJ4Ja691OG1eqT)BnfmTa-dZc*1Ol(aNiNVO-;2U17p#HrR7&Z9N4Ca+7|eyQ+W zD=%Y~Xger3V%#lqMd(oz53R&F!3G)6m4aMzZ{p`u}=;xn{T{T5of=epj zXD#pUEUe8A5ULNj1I}g)3CLnq+-~Ha8|wSOKJZ)8xUpU9XYcdfeR#a$nR~Tj%xM+S zLd}9S8F2ON!tUY7g6vR}Fq|yS`cD!m^{-sjTnCKdX?EMDMI@To3aCOB&oL>}^kLJ8 zs&DOW7b21sl)=CfO4F*vuDO}k{aU7zM*ZiX`CynnJ`_ybHcYO)e&T7hIUuyy zFI0b7ttQ1;=DH|Ye(3!KnVf-5A>>2sQ?;K-J}$YxFESDn>kjs0vrswX4hkoEC1_-s z7)3Lw7c$mHaGn0(>8B2LYucOnZ>e3W%6E(`EY^(58-b^Ga+9FsB(^9$e@8q7VfyZ)$TmroJtoN`6GO z*yNpseVW%1x`vKyN|}&};w#%>9PuaN1@j(f78W-xIb-Y%_29x3{pzxSNe*uV8vD~1 zSl<)YzZ1)3i92g->dJW}T~FZK$bKdr@}ADotlAn!jb1<;HgYtYXo+-U>4=F8EUl9E z#cOupxUrC>)pD(=`16!GiN0vSB{ih$3H)YMy~C~%GA;MAG3^FWfn|yOTp=_Ax|1#? zleh=xmDfIWTlsl^p3RrOc5!dXlle`*!~MwKi&|-6htFEG3%If=X7(lnS?1J@sJxK_CPS`l z={q%7CgNW%sHSj3(%(YruCv~kw`2&Ds9G}Tq`c4I801)4{7nIg`hd5cR;rc}OJRDv zq&B(jgqT_}nqG9Y;|G+w*~%7KSN0Eh&P^SQY8)vE)iWtgo&tn-@ri?DFfi+~a65|a z-)cnGOYUtam{L(qrGGH*$1Y(SE9J9z%$p^5e3A1;hqUzUt!5I4cw)X>p6=r6I^=6i zxos73UOu>-@HkOvRtA=K*+vQ3j*`7q?y_1jA1oL~gtnhZ#_u!&>TDH>+v3s|042 za!t^kps<2^hxBp!pShcDXaaa%vfgtQ`L=K+-3w$s18|@l0U%O1@wFF+=b5j*@7(P` zC=2&_Cneqfx)c)>zk<%DUy{UMR#%rRa&l>(*5Bk=US9%WcMf2?b2pINQHz?A3S~}d ztG}7$pAG*sOYLuNST^#f=SH^K>gk-zW+mA5TFPw!{L?wtx(cknIEdDG7a29*w-}16 z%XPKK_YCi!W(i;}+yb-%jK#;jFC#s_62ZS8+HGnl#c_3@6{JrMQfPUIq*Pi>qPG zx@>~nGXQzGClLHwe=XE|Uaaq4O%{x>n*gjQh=J8&`d{M0ufnP-lb}j4h#X&kaxP#=pRy3Lwb7)O8R_i!1hUwH_e2B;>w5*M5-7K!rp@^HO)#?NDOJ z0oq=Gxcxp_01O4)o|Q~)PKSdA$$CrVs|(BP(Oi)JM)Sel4iRjN@w{sHT(a;*Ywj`~ zJKKxB@Z~@NPm9&~)s`VQxSj3?oeb_*+!r$Cx06%_SKyg&+pfReC5!j4f!9P5uSY2g55lWMAnJA1r}Iw|9cVz zU_3l^x;`EYWK$rIjLVQrVCHJtMMhnNPzX_G6U?8j-w;ioj(^F zEWorb+i)$hb$2*#YjRdR&kJtt6YahxUz@EH2}r&F7&I|G-QyMUA3k3_m~^#AvMilv z;5E|W@m%~a1WmTyYJg!u z9Nf3j^FEn>_M}fX4$w9@rVTX+jjzG9;11bg8>l(#-LnHj^%6B(@NRBh-&C+*{WZ(GvuC$HzD+#M^W?g*whXJ4wnB+oEj+pl#OY+u4hCS z*YARi&$tqfQa>Smn|i&+45<@al(wnqc&r#;P)li*jj>z3i_#8#gI>Z?PH!$o?+xzB zeN#TGS3BfQZO_)aj$t2a+uB|ZX84oh%{edl&y+EPm!q#Qk_rmwq9!kVqTwmekZz0Z zb9f*S`>~_rbR80aDBBhIFkDfKlfHuwT((8K3ar$^Y1+22>QXMZK}1S2sSHx|bothc zmmea#Eg+#gXb}hn-&qUv`29Pd^CQuSgb8MDs=$_w&j^~o{V;5=nUpw+A`}RiA@|LT z{gs!;dDz3ma&g=EgwRZ@Dm`DygqzTPg-H#I7Nq+-kt&@JS6J)MdtYg;S<&!>(K_=g zp1~Eo(em5%z{#53vK)hGFv7k_%19#V7;(@ld+{;f3m-^5c-6YQPlLX!h3!HjK8EKY z6m(4$GAWs%XYQHs%q6)#{GPG4C6--p8?*Ww)d=I=Wt4W|H*)IdCsw&gn3Txs7Gxr> z4QPmWjr>$=eYnzV0h!u77EJp-a|U`shq~Kq0EmHV231Dz#iAQV2zDM^NSAru;s8jia`lG}Pl= zH<>O;99peKtQcHuX9e4A8{Zg-UJ8$wq(D#1mOUQ;!Cm2zB5kRtMWT)8ebzm=+0(UO1 z13%1w82{5k@}Ta@%C`gc3~S~5*>%(AQg5J&EL_#_+RaG=YK!4%YDvxvR#eJkWv`cu zz+|z}+fG;ajfC7CtT6A?f}#OHa&RUfR^B>xxrQRs1$lYbd%oOTr)jE-2h&mVEid$0-x~V*T95U=A!3{ApFuxDjJ?v`Ne%6X?^FzT4}}MOB@nu@}E=@ zT4(U3a6~Ct6Kc`LT!GXkknr?c^|&U02kZiu8F;bZROL_FoBmvWCKl;SVAs_ET!pq+ zCPQEi>3Q@14h*wONcD%_A&`RsPJyaW8G^sgbQR~iW} z6Y5^dWz~LZAI>NlC*#Flq4l_o)>gtPkd4?Xe3=RKQ9Rsn_=w!Kg8JnoWuqzg0MmFM zFt~1kn#Za_hAPvKh9@Av>{+nAu(gQ{$jJkfkILDf9*gO-*`1C z!+QIRSKrwPP%V6+a_YRc;;UC+dG`Ne)?gJk0FY6EPFAcOr z5?FuTw+VQU1-Q*%+#elm4-WRXXM}*e`~=9`0)pmpu*3BdM+&P>F1YHGUUu zek24RaSgek`F?~NN&$Ahd#qqe4B;>Gn&3NFcWD8m4RMLuyy? za=JCMO8Mm90h)Y&AwYbE{=6EI1Fd267|Z)fnIL?ZhR_NtOghPYv*8Be4mEVUC~Zc) z2v2&%4?);^Hub}(S(kcHo9&AZ}8~dHn6QM zb~KyfFCC_&b0{d;zFa4m+Z~W8kP;QrLd++@qLtfC7bDbiMQSB z%HQ^;K9dNjpvn6KO5T0)i29Hg>Upr035S%H4IU_vXKR9YmA#~?Hpx>XX4MG0?Ufha zGvCi$(Tu_0BJB3k@vW3>zr)uik4t_$-=_@$TuwzTk>2HYa}*_X5%N>i{ZzcDK|x6P zq}*BkzJ;{F3cYY+t>XLbrI`&Ee~N5@oYXnd!3+-^KxxcO(U2M3uv-ZOT(4i0MLAa; zKY_!j84COQVxK8OWwPMrn<=b(gx>TrxH;uEfB6WJ`jNF?n28Hw#)BKHWMwXI`%DVe z2HGe~Xnfz0R*DxDDIT{%K3Gu+IQAA!30F6|Qfe$Z?$$saq0Tv)WROd6?oJUn;Ccvr zDN|JVbPzInf(Nx1;1(+!!0(E7je7e&&u_tC9;cl1_leG$qmXjUL0=9dOl$2MiLxHs zJk+&x5dP4bRB}cvlxeAWs?bg0o0XPmSrQddmCJM_IfLq53fX^vJO#azn%SIhzm z&u2Ig7Y~LH(KH9Zh47P}MkW6^WJ&d#e$A_dQI)wX(pj2}AEV_pqh$(TSB&m2%%Lhv z8mCVwI#_qk(6a$N5_*`Q*^~5SnxlR!pP4(Rl{5Wz92f3_P!SPXZLr3lBPN|CYmJ3< zn&@O~kXxV>Fj`9a^+}qloL=s(E2NwqKb9VPHn=)khuBdNo_IBMg2TU zMR$uYrP|$V=mJ!E9VJSz&J!;E$*Ca=(-zxr-l5z*pX4v+`yfvv=Nd$3vP1GdFJuF*6b{fdzDJ8F>7cC&A=P(ybO{>T1CpEasOvWJ8z+6WK~&K+ih#$` z8l-9@4{#M!j_qUUDu>O)RMb})M;@zWvadrvaaOyG3GZvjCs1Y0w?^M2#&7>r2$(G0 zXlanQd-285PGsO5Rs%^PlD)IAIKn{sd+=ml{@ma!+=d_woB)&U2v%QqA<6utx6bR* z_E(@=5Q8b)E&LHRND)u_$Ts9~z?{UX%{}*u)Hr+=JyOohZUAdRNd9^Pt@ft8Kob7( z3nvXbQ8VxHUR;siBSD)vL54c%?)^?n99hdRGkylo`VEU#8`NI4D9Mjjvx|7VkE93` zK2adsz#Y2GBY(&HWx|N&$1iwzPv&y*1-RNjzh330`tfV5dP#LVP&eh!$(esEi<4WY z(Z2QD!Lj`5Yx?>Dc#{Y^(G`?eUAkqmJ}%kUZS9%6PlZR&T%~K8~dQG2#)er7 zA|09vD}6X>NiE~Y*8cWek4BB{^%n`$T*mkqV5J#MG9y0hT@Bc(xyXQCp8CNDjfg%= z6vo#VqI{3i+%{i+Td;G#c-*+bZAAj;KnIo(iEYT9*mW~N8-=#M9VWwwHvFf z4~%(2!<@Z(kUpr`8W!tAJ0y(x;-W3FmmFOtWotnt_~eBy z(Jz@hTzV<;>!fde{GoQzrPI>$AH6PTmL=Nug(6d_f5|gQzu@HTdWg`f7gVu^9$sFS zLCgG8Dv;9j@gH||uIw&MeUs9`gCFI2IKX@OefK)~z=l-Uns4;f%K#kU7YE)>$;U#~ zJ?}{#UK*CeE$kajmmK93h}gQq?W*4A{=dm}kj5Artmi4Tr&Um9iuOBM7*gs1818=L zzmH7*$H)&>{O^K;|JNqqD@=ko*a^DaANwxx2>p5=TR@KpUG5`{yPyO56+~%w3z&dG zm;c%|0iE{R`@d8j>K9L*L2HhHqmTv0c{Ei06S*{Wnp`iMHCS@$-%NN~-97@FfQw2X z60=&_G*}D)q70ACY#Xt{X-TLeCgXU${*TkEAsf5&sMa^d^x`^lt^l5WfH^6ufs z+pmghc5?bt)rDia7P1)KW!}sxOtsMm3nkdpo-=8kQ`W%6_RCn#Y7WGt5>WdQq92Q> z$zObDnSA#MdrM{aM17Z8V`$Pl=J1Jsj2`iw0 zotITHEs%E_=U>sVT<)|pB9Zq?Hm6J`tIBL!UTFvF|9P}wZ5hmi7U5x$C_#hf*ZBIt z0-uH@{_v)E6RV7#C6zLIO77g6Jx;KCY-PKw&0T)^sId$MxZTcNe$qu-Fn5_ba%+^t_y+bwr5w7!8U~*^HZqAWa!DUyH zOjTmm7>&pzf_Z$!W>z_}(Htr{$C;uhfsgDK`P|1p;6ybPEtab+mWz_1CBto$46d{5#9Vzx zy<&MROz*Cbuo@sR^v+U|#5#6fbdgS5wB`0HAE9^x#s#1M6jgX${v)c;E}Td3`;hlFs=+)$@`Ld06^|TwJn;;#*crxF%7L~=>-JHc)V%F#F zK(tfU6hiElkzZQE9`q|YXGdAC|p4ivcU4XIy!{fZ1Ne$u-6mB z+2@zRql<)-6|-V$UI#-v0%09=S#aB-?pJ)Sg@+lW1$Z zqX(CsEeQTpLD>moe|f#3XUsoG$%CHXHS8Xs=Z^o&>I`xt*7)>&K#ia$bONug|Ow!|(H2_d-I;P*4?<9quXeQD_N?@JUOFhEu; z$M+T^6!m_HS2Xs#CGUC`VJOogoS&8G_-@?)LSet(Gp%>|o#kE)KB;@mjOJ5M^%dO!R0~*xS$X*G;Xw z6FGPi@0}mQ*7^{U6B#29zmgHS;E?-aKc%#70BNu96^K?a7kkkki$Kj&!*|oH^1eOo z`zAl47v&t698)P$FACfRY0!cd_v6_b&L5;00!H!-GPHE5uj%sg1s0EBpQE#5S8OW3 zHsa> zm1*{dBNheKPOf++rbNEMm{V{`gk7+ZPX0T0c6jDz1KGB$7_{<)3g7%M-S^6b1g0Ih zADab{Sk>;5T*8q(^FTt%9*Ej1V51%Bj9@jcrEJaPoXEq`dt<3O(I#X0gSCrtQV|jb z`86tPDYfidmQx1zCV2?!7vdDO zC2-sPYWm~>b=VxyA8zQKG+;C2*ag(<@WPNXQKEZE{E(1WQTaLKRlLIZC|6MZ3JF;q zUVlYOEt6=fgmX9>34Flm!xY3f^D4Ed#0yox~>*Z&UBcMFo{64(bChMiOvs`W(u)w?I61^`~kr4P2RF+Y~ zk}P@=y(Jl)+_X){_icITP3ec65elut%$;9zRyi(v2``6oYcorN@DX#Pl2k8JPpfQb zZQi=_6Dp8v++^KMFEEUbC2N|+XVfKpav(rTt+8Bh>Q-nQ&N#Ro~x-VHt#R*p~2&N`)tZ zR-z!H_fx3$!_TQ-_%^-ss6WDig61dyiQb;ediWe&)o0CWG1xL>{bmfduJw~Ya9w&* ziPOeA6{r+qOM7{BCBPms;BqyTNqN1I90=UDYP>vmP!m^u3S35QURNOkEqj=(;^>%%dY|H5C?>wFMcbMXnTwb~MQZel7gG5^$W;AIAkHV2)C}}Eyy?+| z<`zhf+w-m`KWk3YB7KhHsj4{3o&>@xa#H#y9o&Qv4ik}?zzxLMfZ%kv5Kfm{XpX8T zIm6ybsUh12L3HmryUK*^XXH3X@CkvoAU}!#OlDMQ2HM%@&Q85m*4e_;aGxdhsT=U?n*cz1WR9?#+ zf-L^7$1)Xj@29Kjn0o|X)PAz{WXte!!qB@2cE^ED1J;8qZ1{Urw=E{aH%>H?k!`%%>WYl9w9_?iybme;qwH}cu*MX zt`Olp)(R9}|C4CIBntfn!3N+SfLb@fYNBhi2y_)`qhk;(EKAQFTV^s0t6b25|C3T{ zA5SlWciqUQ&Ub-$qU}xSw9C=JfaT4KqsR8xtmkH) z*(Kdj=_Km3^Od!351r?E_d3-uus$BNqXqb+mg(w4tU$6cRB`1`%rrbPW-5t-hIAsg zR`(NH0P)(4PfjwnK@~|pDV{rvgttK9;|>*kADY&aLgt*-GpN5qZjPkdX*um)74i9y z4_93YBy_49Rxoe%R62$Cnb3>A*xEAwEjeI}k3=CX64zR_)P6G51FsjQoj*X1y4H^W z=ftkka}E7G=(7I!;UU7h1CGoK$&<+F^DAm&kS#u_?C-vwSr(SDutmj8fwWE}{pj{| zl!{6zl{8g_t&9(17R}u3`Af4+ASVDq6-`ZwR9Vs)F|t6zG}LNfeXfTn1i@Xay!uoL^rjo=IN%$V)^A$Qj}aAo-9wP(*C26a7q+ z3#?~)Npp*Ykn_8}*`hh;kltGAG!WJw!K7@69HfhkcMwSt@p2S0tID1_ZbI53R)45@ z@o>aEXPCp?hk+K30Z*e*rTZl)YJ=@q) zB)qJed8_QFlsn&A6sh=H8e*(<6rCx?Yv?LE{BuP=jlVpK%`FO`;+mz8~bM9i437K1cwE^U8gBSp1qd${?nb^l*nulu?_BqJO zw*|NzK)n!fkeJ_JAFYsav(JjXKVPz=`CJ^8fl=+tEc$JGD5l%@ky+G%+!!_qIm+gu z5Ii+VjFRj4;@B1sxev;C(e!H%gB5+tftNY&6dsEVE5FK!2q>g=cWL{j?4^&TFsu&h zZT0|`^jp`>fg%g3OY?HuQWS$`WI)?r>3O;N3{(RIiPLc6&hx|7yXrun(pK{zvp_KE zc6)hD!*kmcOUHTiyZ-j9{dRGc+j3~a<&RI%6VN%|t8ZgQ6T?X-1Kx@bS0h#vR^41) z*uu9d!{+K}JP!>|BBA8oA}zp?&Dzoeb;-nNc-|L$K>UrRvEEo?Vk!E;;ZHG4b0yq> z-q$Ky_%9W^WBGFCUtX8OX+~DUs^xA!SP2IuyA<496x>c^a_NWXoSS$Ng7(W*+onqDko57Z zB?tv#<)~U`O`>*8)V8AXH4^bICr-;g7%PO^_^cnLoqMMREh~UK!V;rlKc_|bt!7Q0 zaLjQYz$X%RlWeS?xIu*^5Q#db%6R}*>DVdp;y!q>PKv1+wk z_b92s&Z$yAe}?tvyDvfG)_)xDimI%nL^o*S>L`QVkwkfjh#NC&=2_zl#vB|)o?P{@B3uMkC-qqvlnZTb|Bos!szUCo5nVLCJ6qi{P}TNAdOS z4vz*SBQY$T8c^jQBQd*nOCDAGrT8SpzkX35p|=#k$B&3F1_o_FluKJW9@AoNdp|y# z?}uNt-|@!A{l_Q5+heWU+nefJ3-RIK!MJTPjoJ-}$eH8!8ZAIB?3}4~oO4HtJEHA{`#QOFH=yyvb*wA^pelC#)O0Pz%C7l<;oJg@DcZGwhX;KyWY zhw3LK7;o05D>sgPk}l8M>j8CXVztxrrau{c)4D#^A}paFm?)WOSpZtn^|Vl~g|7fi zfyP{5Y`3ieJwQRtLBL&~3FvjF<*$s7H=hco4VV_xw#@(>;C?*R7OZqRHYrCEv_Jcu zo}7n(6~q8S61ti_FNPHu%QTYfJmt%F&$Njj#5USvuz$4~DG|NBy{k#CvjV*R*@qa=qW5zCa#>Yyp0 z5!~NrtE~S+&JqzCcj3*Yx|AW~B-(x-{L-Kn_SaIat#7m#xUEPk&lW7tCFiz+j6H$E zv~1|NB&bFRfnA;bpjWo=VOJIWpm#R{2JgYW0#zLI+A_%bf2lz&z0;s3l%J&E7BZ1l z@6C8#=9zhpiD^cMWzs8L(I9|C&#w@RNjbuQ}Pmdjx^jMGM7`X5Z5CYxJ` zafwOYxL*Y4b|!w^ocIXL@nUA!QlYf53adXrAzQ0i00gO**JWj8gg1M>*B-Zk?K5`< zs6Q7Y1)6nk&ieW!YHdeW)Qw+k;emziFGS%>3qc;t9j#{6h#ry-2djtZXniDp26Xh% z&|n`pw>A&(Th^VgjNDOoCbu0t_q++!YhCR1^_LSJXR~9QfcTVmVNBUt*rNa4I+H+t zK6Sd9S01RXI=%EokjlKmYEik}rrzO@oNK9%G+#y}7gH#$pOrCfv5?lZeKgE3H6W9MnuS4UCz%_N+pGw2>hHD~ zz(%*n{_7v4fW1W6^Gc)?H?N4pTLPFO$;5n{L=pU&C%5d6x*-vyPvrfFvJ%%PC(-5~ z-r1MIkPpoP(nVUylBRy1Uy}B+N_FcxFQh9k@>L_p@dB6X?$jBztPgcY@J=B%gP%sQ zvZPW?7vHaj_~jB!(h^(qV>yKl5qP7rXjcdXtxNQ=S=UM4QX_f$eOUr3Bv(UtG^N1q zy4v(1b0>-^^x{OZfOq6CqInBFzp1)mW?&$4*q#Tp%|gm>WD8p-nm$5aYeG=V;Z)8N zEpC#8T-!=>E92O>O@hZudhFi~NCVI6j#-A}(hF6O2vo&*QP3f{mS50L=~~hjI6w`9 zl$zD5H`;pQjqF7(Bv9_&%ul*Oo2i(V#eo7FvT<;nA*slNk5MbIgBGSd#Oho*kaUV% zvXTQFmlRHo9$O-~WJ zU%#VdbN99cDv3rkiFN||3ZyftS~(B{9g}@m2VsTzALJ+s)zP)81gau-&gn=EOReG{ z#>@YxZ|!T94l?BMVV9?th#|}nY*D##tQT%H?=5$W75{PUjXE0Fbw@mC!jiyzq&8!r zv7*Egoa(0suSAHeo~9Z$RUc;mLVD@rsF&QygB)l?g zGB7fM_a=l}5fLu6efMhU5+#E=It&n6y!M{kLq15Mli_oWm7Do`;GDxb%kUVw&4@>Z zD(Fp0`kBe_`^@I`edwIliIrD87_i%Tk3$@%yNzLN#*$8OoEF;Um4>QDvF~QlTXXL7 zGE}C8D_xOKwtW0R>eAUt$>RA{QJ{KUVDM~N`$K$Hj|Cifq#&w+P}75_Z+_~Gy?(bI zn0PId{oXA=&avsC7&M3vM~~f}QsoMUZQ>LTj2IaW1kAgUpQo zn!6e?n?t^NCsN}?n#I|7{WZktCE%^QTZ>Z zni&y=lk(H=F=b#aoYHeF#VeLHCpJg$LHsV&5co)UGT0=>x|u zV?aP=d9RxFjfm@Y(!-qGs6pfB3WB`A-tFzK^YQb30wxt>crX7XqK$W38kpagJzhum z(1bh`<|lJRzglc{4m>+n&TMOB(h2*7XK6i$$s_uwGNQ<5zw_(ob!J@In%2M)X!(%f z%2cQ8ZgkTzlVFujy@=%EJtlVe_JS71W@$LsY?5DPBLT7PBip0hns4Lvw~GEScZCII z>OsRHKvMtp9hE2F46S>?$oVA}(txO3_SUt4{ItdL4+@^*k?W9Uj`8^@!AX-2=Vagt zK_jIh5!H#ah^lD%_#?K-W7s@GyNo9fhzH@nFc3^ma`9CsNhu}IPzB2|I@nVbI8M*a ziP7Z$ev2r`0@%F#Di&D=e1oPEPe-lVDyP|##uM9_?T42wyssjL{UF71ze&AK@>J_6 z0_ch*1QNtTU*(uU${j=vO62iy)h(6793G_?J0IS20UAW~#@A0GgKdBHalwlVaMI?v zTa3#d8kG*k;}qgR+OT&!MGd?;}VUP^nzp zrOMq9S`ji#&jq>zI4rnr4e;e~=X13_#A&s^w!eYtY8y7NSPe_(q;I2!pozV%17@>f zZ(Re;i`<9fA(x%}VJ&0VDx~4W#YPN%Cys z5J5V9moXbN%~1m!081#d@ci`{xZY2o5G@Se6R~fB_K+EoTV5iLiCX#&76Vu%(j?<+ zGuQmeG4COPDJB})i(^|vd{r;;>uOL<;~hug?}c;bE*UR+{r)I^75w9sKsh=H+A_{^ znICl|dRk8o8$y&e_2Affl6j>@g!9bGTzqIxjD+68FgPnT00=jM*9oqk?nAOpoUTJ7 zw~HL3pjEK+4+`1laZPb(eiGFX_z1OW=8Qea;Y5}eWle{WM$5>t3D%y`zC<`Os_f`5)YWB`9ad!(e6a1cZi(*a7|@_s!3X$nu; z`4A6wwLf`oeEgdlfC~npP{!RH;*xZ2DqkPI2UM6{iFbxnVRV5Sl?6Xeb>LHJ58;L2 z-TsunfZr*W@!BKrMg7uw;f)<0f_iqr$Q~Jb;s7q$MlFHk1}yJcxeW1rTkU z;K?i&p5@QeUw;TAHtb6%%GcJ_UF?Ykk6Qw_C&53z+7_CYULg57C5_tnr;}ndamMo5 zO>Kj6dwnD)NbXWnu&7)DHK$|GN{xWDcRq`(C__Kh$|8 zOsHkTvMTl!$4%@dwj^~UO4U8M@K4ERo*Un%m^n#q>TpPamEjNr;EUJQRVY#Oej1-Q zfMXbV=0MNYuwDu$YV=#1C)RHPKgJb?wRSxC^_Qp*Nqv1(4XAiURMOYb-tDd|ESms$ zO5*Vd>kdD@TJ$L`^Ip<(vCJtdU-)**vLkoVx4uZib9Y=&xy~87)BW279Tfha?(SIs zH>#g^U8NceCUn+;iZg`gXP z1#Ek_{14{P-P-#;9NJPC(1Asrr0BGR>H&4EImtV`B@hp%Xa-d?QUvd25of54}gsHq{E&y&n-Mr5wJn{gR$S90P5)7Hl>iYsUUlL)DdL28l< zIUVlq4AALj(gQ>K#Y%H{qnMQ$bl-qSenHT}39Ym5J2P54IiBqKYd5fQ7y=FhCM1 z;$-tl{#l(x^hn}UKn{xTQwJdYAJps6CR4zVA0&@R0ZMzfo*ml#@t_s2;|H3MusFW-i8@T$+UWx(>SwYzILRl zMYtF0$G(xvgj?tin*5{Pc(YwbzHBgHK|)6sXugXyVo|k~I@z615fv$TE=N_>-kKFs zfe$sj>FB06v4IW{Ft=mx9EQInl?sIN_lS-yHO9R%YvgE{Oyk5YMR zgy_lG21!An4rBo}YRdmiG(1V4Vz{WQ&D3eo2)u{;%cdj-Lv{jWjBgS(k2PNPndVkt z8wGR~ic6VhlZv z*PU1r3w}r^EzCw*-G>@;K_p3RQ&*EPxCuQ%(p?3IrIF2-MEB_lIcvy(W*SHPClB$f_5cikZaXN~DM}sk4-m+B>HYT&rou)K+L8+f6G= zeBaW3y)UjIf*-u_AXeMcbkI#|8QJ~5)03v~w)y@iTqq1U_{^#=EnsQL2$)R!c$zu+ zedCb)y;RjsXxqVZk=cPHW4j|ZLYyGBo%?6{grDLvm3Ywb^XTwJ%yo@31-WgY{J^Vil~pNzVRTUHfj}1*H@HB6Q%;Q9sBThP6N~_ZvZaLztUwmj4I8 zb^QUu68m?{?sdgM} z&!5tW86Yb%{t=ELDdmgs{#iTdj6a>qZM5@_XJ`Cbk|(j44P1A8y>6W#rT4JqNOV7s zQA0Ms00lQ3j$yx?L%O@t0A8Jl=SgMYDw1r-qh#q-e?mxF9^OVjt1x&3wU0U;3)^S- zwD1ohuf((XWwFx*kmP{hN5;F31+hy-!A3v01uf)eUa+)Ymd;u_m^DI1vBp4MImAJW zJZ=`EslcmF!N9@0U^1!#i)*gsj^*dfc*0wXy4OzhR(JGhl~NCuGv?*ijM3zhG0GC! z%XR4j*Y%}Q@^~^DCAx2NNM=h?S1Eo6gc6~&MA_)LDZPPrV~o@O<5`n*{mrVD?iIi5 z41)l@qD>q#y0_iY$MU*l5%apy^SpF1RO-b^LCPgYuaT6I4_^Gl^Rw5gJ+~guV6rF) zDw{f##fyHV(%JBOw;`-BH4B#`B2>RDC1YhI#gteE!T1C-w^<;;1DAusn`!QqKXa7ROSNFxnY#380o`5SL+~8>r>9X_G9)D2p3RkS~`Yj^CCFc@bekL?FGQT2Il}5 z4V=}0Hdcf&`ezxOQMs)JJd!t>9z3a?^!!{NRClOrr2)NayNR?B;XZ?{Ncb zzaHbTj!%@lNYr^ngx=CRu|3yXbp6&AHkJhHI1P8PKmV0eV~6ma02glJh^Pi_->fBx z$RO~nW!ENh?7Qjf?F63kgxFF3963|Q9a}V&3*Y^}wCXr^7l2w(&>s{`xE`o^sXr@d zyWZFN(BQrtjQX^d8q&S9-9x6Qs)GNKJiUHodg8N~agt4b{7@aY&U`VAEcsL=DD}17 zm=kg1^ANQ4kRK;;#4N2s_S8H(yF-em*ih~;fcz9p8Y2NY8Rr)WH9VM&4ArnaBX&#Z z=PN(oof#%7r3)oO*tz~zb56@h{hxI39TK{~j3-Nt=YL=axl+x=@I zyLDUB>{GJBWkmF+VlR?YCkenktM7rwqtpe?cqW0xKrX z#s6D#loizU5O{Or8Sw?9(fas*VXr1uNH<8YT1!{X?*bXY`uz5DeqMqYeH*GW?za<- zQ)dRI3jSqZTlk!>=%V@%F3(rPn?8tEtB3}o|4(IS9T!#C?tKGAKqaIk1Qn!HN&yiC z1csLG?k=SjL^_3`8>AUvKsu!)B$ODsySoO?8n|zt&vVZGob$f>9|mT}V(+!ry4Drn zpRc)+>a}hjZ##@sT>w{WcZOwWodUBog#3~9q7Vp`|5ITqkV{Eik2k(n5J)aZgjJr!Ewx zx)Vr-7e=aL1F8zB{{#iWbD6YP_H3_z$k;$<^M`c?9#v)&-tTD5Kx&?)f7`i4`5NKF zW`Znt)JSsi=EgsOXwz#de5U5~4N>m7%HuUX?J=oc_}2Rtl^m;`2!l!RegXzaQASUD1^&7tiMwY7VYk>x>`zBT z+pjWG(gaJAc-nypR0S!y^cG7-#(m~Gv>5G&D`}lDN0RZo4V+(rz{TGq4i7Vwa&R=) zJGCp)=4&JtQ=(Ob#wy~j6a{zX_j*WM;hqdgGp zkxKuak+?5<0v5|d6C*>*Z^Di%i5%|oL7%my~ZProo*ICbo0)y$033RVwyQ!(7lS9Gi)x=sQDNfl`=nvGB( zgVUKvJP|4=GtOB&jRQ^sy0fy%|5hyv_Cbw9K#NhEPC@a*-cs49{Z6*@B&fw~D6XIh z)-ke_z*xuwbcq`Nnd@puq*BuZhIe!cSvP&gMC4*eh7BBy4X{uhl<{i3{jo`(ac8sD z7al&QeyfCChg7H>lAr1X@s$3%o_=nQEw2d%nJeNN>d69#a(tf83!FJelVPCuG2jm7 zsj}njI>Ul8%2m18lH=Z$GOV|kh>*5LPCv?9SzK<=8S4wGafH-lQ8ca2o4)DNfjzuwsv&zgp12#1U_#2XGYXF+u^S z?ai(;w$@lU=tK&a?!|{t zKYX9VjbTU>y&d!RyuNe1=lL6Z4G;Vr%yt~ zwD`jF*I`Nd{Zg-MEecDhgqLoZINzZZH>E38Y*$RO%WN-mANT*NY~-P7aTg38pr=IK z#r;Iytr{4bS*eQDrpTVb`auA3Tw(6}DMz@cx%$|UeOBz*QF#WY8545Kno}-IS0YWk z&EM*}Sp>7fysN_^9wVjVXtLl58$SKnRb=36i_u`}ufBZ#~Yl%&&sS3K}#tyqu}XN|(?oZdLiV=n-SO zj7zQQZ8zclwZdP^x8Z(;&GyQ|uLFp*12!XzmatY!@sH%^;qAF?E=Vt%>)Dx+@#sfn zQJ(G^XTMEtg48Uvg%X9Rn2)QyAIk2-Xnl+&zIRIlLW4^9)T;HyjpbPHj<+j5&0$t0 zj?AZuaS?om=l&q!^J1ud`N@swT4^0YyPK9rfV*3n^g~yJ1)CVyBHD2m>FRZcT_7Q$dAf@4(2C?Xru@WE5r??_BR89ZN~A{B&s7 zu;u>7mQex}aTmx6Fg?Lu#HD-WM#QWYQ(Fi^Czx|AaW0f!Um6#*U|4c4G~x}>Ix^je zDl1+Im*w7)5#gw);2DS$n6$-PgGG7~>$hR|E?keu#OXltbmbe<(owv=#jk)XN4+e2 z#6_EHE|GS2CKe!gVaY+RwdR-G&;9ENlxRAY6Oem*- zemM+dAnVr)*bD(5{=a4Z;y;PM2`Q|qf;_8dgjZDoJ~{Z;BiS=I7Eqx62`Tos8Q#f!fXcVo zBO=N6DshuddzAR^^M^49--qW4$r}@LK?`zBeI6 z_*G^m3vlf%1CIa*1$&kRI&u+_2`h+ncK+RQ=X-L3vhDfg&HLsd?umvli!zpj*fUv0 zu>}{#V1IaddbO$qi>$nXKP&cFW;=Ui&a51D*O~yN3qcG zKto*?UbeVBNl+TjEr6Yfz9SJ_{Pbc*1l^KHzZmB{SgI6Imb43AttdFQxlJJLQ~?C!>IrT7|l5F6VzAP2~z7RAdw zABS|DsvW!CUdi4vNJG<&IrqhL$eIZi2Kob?AT%rWb&S@oomI|Tu+*U=p6-Rqg{t0p3C2d9pu2eS zLe#?hOk6D&v5(z=i_M$l3SnLD@{ug4WsvDV*JNq{6^_8ip@&<|4VfIA)KT`V@!M- zWSW7a%*iN-sP~lkX70h}%nEdB*niXP-gY(>eq+8AVQ}9of`%ZFrunw-aUe)iyZ47(Oj|{?r5`Vx^SR_LQ*!B&u?A zam_*jewsrP1VDjVh0*2?0n#4Ju;<4I(gOU)T@#~T)I+uQKZtk6T{a{S@R~S2P+|H` zY|sjpQit}r0@ZQOvQeIKyxFmsuKDt|lT?XeugB!nw-Ti1XdBoJKzt?#a{Fs?$q0x! zQhAj3$Y;6&hrND^((QW&dz{N%CwsZ~G1Sa7`_-%}dMwdzRx$RO)C@AtkN6@JsBaCT zb&QHqm2141vGp}d9CDTF^QY&JEJ3pz%CDJRVCBocbzP14{Rvqi1Aun}`Qm?$b6v@T zJn7k}IhNNSEHi+M0>U+$E9k$EzYquqiNLE+18YJGHehjZb+nPmZ z6PrP+cGn59!)OxPq&?GA6&kd!v0+u{ZEw-beKGM1jy|oPiZJ^qA-EPWB1pbLp9jme z4|6Au(W?XTPXM@nw=vYq)N34I!Z-cRw(Gq)TxDYq$}gb!;_hVa9*fX7&7vnCIj_h* zqxeaSLNxtDZ0$vYlhv^ z8t=o@9Q^lFZrm073ycJk@Az_ab6cWMV702H%Zm#yqSj79+UZ_*{12{m1Lg+Q&^iuM zQ~ljG^r4ek&cF6dx-w(48DE*Aqq%k0s*HamEk zB^+0pgpQdjpa<)0Pcn}iiYM9ht|HRC>NamV_Y3Pb?5}uSA_+*md^YQ>Ujg}lNBOSE zybcHyX^9@|%`%o$qb401TD43H2+2WGU>|-J*&ekRd#7qwn-HK|SW4$0V zH{|><1pj1w_2u|$r%zW8P%ZJa7O9H2Q0IzD{!AT;{5A8aD+1B7&NwrV7cIz}eTxil zFsqX~6hT^Y?^!@HB0eNf)CObCKnqEfm@=>KX-KBVV~H!LbT&mQuq`o6t{*hy$$u&= z3a>z0R=PAJ-n;L^lkV%Szc|v5iP$(>hPi{v5YO%;x8=87-sT-Z5GGr-5X{r7Z_Gdv z_*F7)h_+`rxwPgA!(EJ0CaqK&PRsIXnY?%WH3cx{x%`4S=~G`NGPx#8js+gyLM57@ zwkX+8B&u;A^E;1Z$9-gA*G#K(Iui?OdK5v|RiZKbrIu(WV%T}<%$RXHnv1%yJ^JJE z3d<_c5SZy8aax)dRI`vh(bLn&39+R39wmHf3A3`n>dq?J<{S1Mg;#sdm>NL+)POs% z{6N{NMBY+!$yHpwOZZp4-~9Sm6@vcdL88am2gZg3nnczXb4yD@K~QMq`CS`kClGN+ zhO+Abo1X7qutrl=Ptp)R-30<5!v*v=b&L41E-wv+;b*w!d%IyDp9c^J%r`ShM7 zeb&))&tBtQ)vYtVzf4Y44m8N(GH~j=O5i5;jO0H0lzJs`L4ef;76zoAdMY;Ihn`)orf2Jk-z+*hzX@QHX22r`ygfkRtF@lG=7rKh0*{GD7T^~D|A>9nNyMmQfj0pP zgm^$oZrlY-Z_l)B1lfS?ZVd!vfZz2$%HkGq zO!^@;tlmk8^#CZ-r&apg8CFpQQCp1QoGxcr1*sn|0K z&K$kS9l($;G0lNxXeI>bZc$0-gIprhF`M=xl!xR>w0sZ2p4TkUUF9THEfmjupylm$8)k4^%D3;B<-3J?|nUgNH{HYG!ywJhc>v?n<{O=o2YHKO6(#Af=3Rn%=E z3h{DW%{4h7WE>tbmtH=8K~^xQ5!*gFH``QjZ<%J#4JODWE|*|wUCu|Sbq94(GGx5m zNALmL?C8wNldH7+^!mqW3QId?5qWi!s>UL3!u~4v{xJTI;)snT>eK~w*tEBxyRd&N zmZ}t0?2KO8iminUus(9=Y#AN1atxW?IM6Q(SKwsORrVRP41Zn8ffHQ!xul4jpP?>Hz$n@#ak`tmW2v!D-%7&_eRdr1x#kR1`McJo|x_Q#PX19NzSX; zE&!7e5)|tC-{3v>Spy3(HzN)hmyw4y?#WW7bItOFCtQ&FS$j60u z!vd#$?|k^>Nj>#jg-V12PZv%D6OBm=lpvK=^+r`=p{p{NCvox!6(VV|`hMnrijn;;Uc z4CJgH8a31N+ob!fHZz{>zjnT6Vyv6bD1~pJ2eccA`p1z}i#z*GZy&zQi0V;t^K@7*H7wO8%8Zamh{hZ)tBo!_g@;*Xui4Rsp|zdoP10(k-HX z2*r)zeromoLGbFU3ofG+&dA~^DrY3Gt%6ZgMSbqBxY@JHbGn$)M^Z`>4#X(*&DOTy zvFnFE)!-HRMCM(t+N)Bl`Zs$gzfkgYDSUJk9{y|aA`?FIH@SY4Ea)OA9+PgaLD}0| zAcBL~3^8;Olu*6%e5oeVF>mz8BZ*-PD9!k+570Kj5Gyz*j^KX2?G^j{y~ktKR%FWbWpxuZTj&fnMnTC z>Yaa>98gmR>Ky?a>OrEmi@-5z(z^KVf6Ob^!@$iAHlPlEdBmmP0sQ5kyjz|004zW1 zvDbeJFTRw-1FoC@+ZlCvao~85XZy%2&6o20YBOm(Z<*bisyEvoayT31f2=qMtwA|* z4z5>KAtvkJBpr1=I0fT9Ak`;iP>Wprqo5|av)tpnmd$WsxD-Xahf@?L0Ym0a3+5ly z_3yuK`fq(yGwNQS09btUJW4x~9O^?Lff$nUJ+x^+k z=ozk&05J%mQHiO#J%|M-18eoi#E*!9p|6;}IRQ$na|tPrcQfH1J=fNNhiXzub-wP5 zPx|~q#az+X=-k5I=PgKhmls2WTv1gs;e4J;z{Q>*-gT!c$X<-9eApz=Y5_ReD7jTo zroMb3Rc<#_QGk9|_?0V)!EJK(KH>Vq+M;G%fEts4n*3;3N|p%# zG@v*E)v1e2ha4e|tqM+8?Gkj7zpZ6-Ieb2P`Q}HFU%`_At6#ySUDhE9jJUFO$lqV% z7xaf>%g7Rdm5cB(4MEjcVIVcSi z6`vK{BF?o$7ZAcUyuP)=C{&%-^h!caGKo7StM%tP{2~M<3^%v;QRF9@dTmn@E}GBd z-M{-<+PNJX!*Da@td!aH8OKACih=MoCc>6}p(mM#?c{S!NgkO)RrQzy#_}>qMNy~h zv$R}7AAF@{TLxy87uKINtvKeZf9r)06GaJCXCLm^H#o*gCADHA9{drt55>!<@1GP$iMUYZw|HG8l>iaPf2iVTnxdJgF(1&`q^3`Ob4@W`_=LbN;cnmTLI}w@O&`?G zDH{|INa10>IMmMjIsv18zuODw9)WBW?uR<&815SgzOA}LA6IdkmKc~%8oJ9jG|e{w zgK=>JYNb*K{A$;>o+ev_y!z1e@*`=oulvVFo7>SDVTY>=h>$C|b%^3GoPBoGA2}|B z!XE|ur|BPT<~*=XyYZXgj;#Z+Ma1Xy^j{kL1|qNTfk5Olx;}OCyVpC?h1+)3#JH*{ zc?Z`t?#*_+rIHo(JI;ry?d3e)nVD1cE44=4n`Uw3@gJ0XyU)_P)STC%mf${reJ)vC zne&MHu(GSYc8b+FX8bSE)(ZiBY_ibjSiBg z@Wt!zRa)EZN~@ppyoa5FnT$(>EA~plWetB1!D$I!8IH_Vq{^d4s81thVCY_l<;mwB zjU=6@Ur0lYx=h{RW;yaET0fnl7$`xzl-U4l^5(xJ#^+5`Q7kNJ8f#;^;69tJ+liV2 zXpl*{wpQzaiSYD8jlrJ`Obv{kW!I(2#eY1Ym4D{aPb8;00Y9O(boh**`lL($iuRiL zLb$l39)VY&cR(EzCoy~Ms}&fNeR`F(j`nN(k)3OkfYg13P zy*DpVUD#sar`s%U1c0ee0|Y9=tE{mC4zBXN?r>>Cun2 zx{ZU3A7lRh@k{Ao@Mgp*EL9vkHHEM7eLAb$&!A|!L?JQB3bE@aDWipI?L9?!cjmgp z517<{Yj3MYGj?xbe;N0tC{e3Bof&E@_lI~D7kA__Du5XuLq|{VJ8(FZa2Q%{840Ly z3Ld=?7zP#Tt*V}X&=CFg50@}K>6%NK1S!2*Lh$6v1H>Vex>Wnm#3?--MkgZE&{QOz zetZpo$}aOnUA`io?mB`yyX}~d3^D8{#ekVe7o*0=8T5&* z<}~Kz9zpjA$GQmrJ%7AgWQNtkEjXXoxX6kbf|&3fm^|V<72Rau=b$^moByb)0L7OR ztD4Asp540h7OT_#sJhiBRMne}$`EUyHOC}8POKMh2jGq3f|&;1j2 zL9Cl)Kp!1Tg^-=OQ-44=4Znn%x0DWDl{U;bu556z+tk`(hy`;Y>XDiPJ33{spb}Yc zc=W`QxOAPVhukNtn%OIm>}%jHV#yDe<9+ymUG;|39c?;`PLrAnS@b%Jca}FwT$yj& zQ#GGDvip4 z5T(V1CdbM-Ejv2}e}Dg*$^A#xM>X~@DHuwUwdG3@v{mI7Z{p{&apw+V_zrSIDffu` zJoB7R&3qTd0)P|vh}0d$A)gx6BCXEzB~5qAJgT0DU3jvqw^~TS?X$aKR(C5CUrEig z2u2_9=E`U)gJ6kqDq~A33kPl@zjAe|YecfLpQzgKBguv8JvDkoGF`#G`xr#xW{fm_ zRtN*N)6mgvVpfOX;`kks8=JH?JaS|Kx0a~1J}~^g2QtdNUUTsCuXa+m+rBQK?X&+` zMK>#dLdhwahMxPtfZHU;L37xOSMGs*iPL0idhT;XseP)@Z{}!s20th%z1m1?l8Wr(?yYw12Eu$S0pi*K ze+DusrDfF+N`JfZq(LpPJ}~^!->;z8iB!_cSKL7%J(l<9JhoWOQ?ws?4+&2vO3f{kVeVY6-!%S&=Ce$}M~$P>j0R>-l5A8QmyigO>y%;WqPiUi)MXQ3CwjR)W; zunv0K)WK3`j>1pnzv?+(JFOn`aIvvL#dc5ECTdSgVTd4)y*ZXam5=rY2HvE99R+Xx zBZ-d7YY$|0P>>5PXyb$c(jJgq*koUGTN3Nt^t#H;hq?^7=K(-Fq!x6~mS~r50j-oJ z6wcxtF74JXf&-+D0DB3gpCoYdI}-&VvQtd z{3gDGtq>y?+O~1o%>=EJ(q%fdvIlOvz(M?Phz!sGFg$l|p}ff3?F=AV!oX1WGjVLk zGo1kTm^erTIBrP*>`P+QrM0C%(W%gkNUHp{(-wUO2H_!0HP~%hxMxO*C?stnNBtY5 zI?$2684<&q)!sKwz+XDh7M_h-e(>7@XC(+77EQhW;{J_U9mMTdSHS>>)j|wFUQWAe zwn3-BChH?0+r&G&$6Wiuz=K@`W>(SFkz-gCsBj8d;vmvZvNSaqyo*}aA#{L#e8oay zN23ooS+qYzIgo+@E2$v1iIedI;134o;x!fV@9zwsA)c>xaz2M3%)Bu3B&6EojEATa*s_fY4a9jz>7s;$d&Gq(MUj(wX<)F^_$FUcKbc1(wp4$pf@CQ z{U3gHqaU_q-+z!k@;!FWc*3x2wvP7g^O#6w$(;8Dz7_^VhU~>)+sV(JE2L~_MZ+ey zQq*T3!td#F4|bCiV_S))OcXbkB|XvAOV1QO%eB=FXeLF!_111ab3&ZNPNm&3%~~>b zx1{f`H(m1Dqp{|-oTadDTiXv7*fZh;WZkcL{v zJT}l3nghWHb{o)PkD$ptj&k1#YF- z8buVdwS!~S->vrEgq=nahHhtck}rgzWwQ`uzYpcst7@y38+MmkrSuzOdXRuK7`Fg- z$H;0u))$_#`ogBM+!H!Ft^4t`t>AFeon*}rOMg0h95nXIEoC(|m-!f@;zbX=PA}{i zAnKm&?AC|Ms{zOwV4>>!j8;4C#7&%j4I*m9s~4lbOBT-d)LV$zdGx!DS8%1XG*|;_ zkkUms%7;ZUXh<7>R#nWIdVf}cKQW&5itR2AF!%SBiHyQxIXnC~ZWg`jUm&cS!q49= zdHJ<`LmetsT^OR<-!4wMY(VjDRT0r_xx_iAbS&50^TqbPO!e7I@%}~`R7`y~L$u>!n7kf#EyW}7lrYy`&~D!fzu-bT{A39sId+Mm?#30l-{ zt5HqIFna`WG2F^SRnOn4y8BgtEqRd!dX=7eJKeW~<&zacjGN$N!*k7W3o`i-a^+aPAHN@Z7%Yp<7XV{+PyLtm=%_P16#VLi$fAFYcfVExI8 z&q>RYPOA|1TJ3OrboxaZ4R{^3>8nBLMH-CVWg|5J&ht&k&jaSauf3fH4;puaTT z0Qfoa_DVSU%a2`ZoB8BDw(e_`9AVvY5`TXCPTx0prs!``eV|77^ZbC4hUV8O_NAYr( z|1}8?b&mK47xVWYUnEcd>G{>De#4-rnOVW$dun@OWqW-cdxPhCwg%wG6?Rs3HYQdc zCN?g4R-Wf