@ -1,47 +1,39 @@
|
|||||||
"Area: Backend":
|
|
||||||
- all:
|
|
||||||
- "docs/**/*.md"
|
|
||||||
- "!docs/Bazarr/**"
|
|
||||||
- "!docs/Downloaders/**"
|
|
||||||
- "!docs/Plex/**"
|
|
||||||
- "!docs/Prowlarr/**"
|
|
||||||
- "!docs/Radarr/**"
|
|
||||||
- "!docs/recyclarr-configs/**"
|
|
||||||
- "!docs/Sonarr/**"
|
|
||||||
"Area: Bazarr":
|
"Area: Bazarr":
|
||||||
- docs/Bazarr/**
|
- changed-files:
|
||||||
|
- any-glob-to-any-file: ['docs/Bazarr/**']
|
||||||
"Area: Dependencies":
|
"Area: Dependencies":
|
||||||
- package.json
|
- changed-files:
|
||||||
- package-lock.json
|
- any-glob-to-any-file: ['package.json', 'package-lock.json']
|
||||||
"Area: Downloaders":
|
"Area: Downloaders":
|
||||||
- docs/Downloaders/**
|
- changed-files:
|
||||||
|
- any-glob-to-any-file: ['docs/Downloaders/**']
|
||||||
"Area: Plex":
|
"Area: Plex":
|
||||||
- docs/Plex/**
|
- changed-files:
|
||||||
|
- any-glob-to-any-file: ['docs/Plex/**']
|
||||||
"Area: Prowlarr":
|
"Area: Prowlarr":
|
||||||
- docs/Prowlarr/**
|
- changed-files:
|
||||||
|
- any-glob-to-any-file: ['docs/Prowlarr/**']
|
||||||
"Area: Radarr":
|
"Area: Radarr":
|
||||||
- docs/json/radarr/cf/**
|
- changed-files:
|
||||||
- docs/json/radarr/quality-size/**
|
- any-glob-to-any-file: ['docs/json/radarr/cf/**', 'docs/json/radarr/quality-size/**', 'docs/json/radarr/naming/**', 'docs/Radarr/**']
|
||||||
- docs/json/radarr/naming/**
|
|
||||||
- docs/Radarr/**
|
|
||||||
"Area: Recyclarr":
|
"Area: Recyclarr":
|
||||||
- docs/recyclarr-configs/**
|
- changed-files:
|
||||||
|
- any-glob-to-any-file: ['docs/recyclarr-configs/**']
|
||||||
"Area: Sonarr":
|
"Area: Sonarr":
|
||||||
- docs/json/sonarr/rp/**
|
- changed-files:
|
||||||
- docs/json/sonarr/cf/**
|
- any-glob-to-any-file: ['docs/json/sonarr/rp/**', 'docs/json/sonarr/cf/**', 'docs/json/sonarr/quality-size/**', 'docs/json/sonarr/naming/**', 'docs/Sonarr/**']
|
||||||
- docs/json/sonarr/quality-size/**
|
|
||||||
- docs/json/sonarr/naming/**
|
|
||||||
- docs/Sonarr/**
|
|
||||||
"Area: Starr Custom Formats":
|
"Area: Starr Custom Formats":
|
||||||
- docs/json/radarr/cf/**
|
- changed-files:
|
||||||
- docs/json/sonarr/cf/**
|
- any-glob-to-any-file: ['docs/json/radarr/cf/**', 'docs/json/sonarr/cf/**']
|
||||||
"Area: Starr Naming":
|
"Area: Starr Naming":
|
||||||
- docs/json/radarr/naming/**
|
- changed-files:
|
||||||
- docs/json/sonarr/naming/**
|
- any-glob-to-any-file: ['docs/json/radarr/naming/**', 'docs/json/sonarr/naming/**']
|
||||||
"Area: github_actions":
|
"Area: github_actions":
|
||||||
- .github/workflows/**
|
- changed-files:
|
||||||
- .github/dependabot.yml
|
- any-glob-to-any-file: ['.github/workflows/**', '.github/dependabot.yml', '.github/labeler.yml', '.github/stale.yml']
|
||||||
- .github/labeler.yml
|
|
||||||
- .github/stale.yml
|
|
||||||
"Area: python":
|
"Area: python":
|
||||||
- "**/*.py"
|
- changed-files:
|
||||||
|
- 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/**']
|
||||||
|
@ -0,0 +1,38 @@
|
|||||||
|
name: Pull Request Title Validation
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
types: [opened, reopened, edited, synchronize]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
issues: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
pull-request-title-validation:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Validate Pull Request Title
|
||||||
|
id: check_title
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
script: |
|
||||||
|
const titleRegex = /^(Revert \")?(feat|fix|docs|style|refactor|perf|test|update|build|ci|chore)(\([\w\/-]+\))?:\s.+$/g;
|
||||||
|
const title = context.payload.pull_request.title;
|
||||||
|
const isValid = titleRegex.test(title);
|
||||||
|
if (!isValid) {
|
||||||
|
if ((context.payload.action === 'opened') || (context.payload.action === 'reopened')) {
|
||||||
|
const prNumber = context.payload.pull_request.number;
|
||||||
|
const author = context.payload.pull_request.user.login;
|
||||||
|
const message = `@${author} your pull request title "${context.payload.pull_request.title}" does not conform to our [naming conventions](https://www.conventionalcommits.org/en/v1.0.0/).\n\nPlease update the title to match the pattern: "feat|build|chore|style|fix|update|ci(\\<area\\>): \\<description\\>\n\nYou can check your title at this [regex101 link](https://regex101.com/r/jOZ6kU/1)."`;
|
||||||
|
github.rest.issues.createComment({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
issue_number: prNumber,
|
||||||
|
body: message
|
||||||
|
});
|
||||||
|
}
|
||||||
|
core.setFailed(`PR title "${title}" doesn't match the required format.`)
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
.cache
|
.cache
|
||||||
venv/
|
venv/
|
||||||
mkdocs-dev-server.bat
|
mkdocs-dev-server.bat
|
||||||
|
site/
|
||||||
/docs/Notifiarr/preview.bat
|
/docs/Notifiarr/preview.bat
|
||||||
/docs/Notifiarr/Integrations/_TEMPLATE.md
|
/docs/Notifiarr/Integrations/_TEMPLATE.md
|
||||||
/includes/flowcharts/.$radarr-flowchart.drawio.bkp
|
/includes/flowcharts/.$radarr-flowchart.drawio.bkp
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
{
|
{
|
||||||
"files.associations": {
|
"files.associations": {
|
||||||
".pages": "yaml"
|
".pages": "yaml"
|
||||||
|
},
|
||||||
|
"yaml.schemas": {
|
||||||
|
"https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json": "untitled:Untitled-1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,54 @@
|
|||||||
|
# Thin Client
|
||||||
|
|
||||||
|
## Daemon
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
![!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.
|
||||||
|
|
||||||
|
------
|
||||||
|
|
||||||
|
## Switching to Thin-Client
|
||||||
|
|
||||||
|
Once your daemon is up and running, it's time to set up the client you'll be using to manage your daemon. This will usually be on a second computer, but if you wish to use Deluge with Thin-Client locally (to always seed in the background) that works as well.
|
||||||
|
|
||||||
|
Simply go to `Edit` => `Preferences` and switch from `Standalone` to `Thin Client`
|
||||||
|
|
||||||
|
![!Thin-Client Toggle](../images/Deluge-tc-settings.png)
|
||||||
|
|
||||||
|
Restart Deluge.
|
||||||
|
|
||||||
|
!!! info
|
||||||
|
You will still need to set the daemon to run at start-up.
|
||||||
|
|
||||||
|
### Connections Manager
|
||||||
|
|
||||||
|
After switching to `Thin Client` you will need to connect to your daemon. Go to `Edit` => `Connections Manager` and click on `Add` to add the daemon.
|
||||||
|
|
||||||
|
![!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.
|
||||||
|
|
||||||
|
BE AWARE: These passwords are stored in PLAIN-TEXT in your `auth` file.
|
||||||
|
|
||||||
|
{! include-markdown "../../../../includes/support.md" !}
|
||||||
|
|
||||||
|
<!-- --8<-- "includes/support.md" -->
|
@ -0,0 +1,265 @@
|
|||||||
|
# unRAID Mover and Deluge
|
||||||
|
|
||||||
|
When you make use of the unRAID cache drive for your `/data/torrents` share, and the torrents in Deluge are still seeding, the mover can't move files since they are still in use.
|
||||||
|
|
||||||
|
Using the following instructions will allow you to move the files with the use of the Deluge JSON-RPC.
|
||||||
|
|
||||||
|
!!! abstract "Workflow Rules"
|
||||||
|
|
||||||
|
1. Pause torrents in a specified age range that reside on your cache drive.
|
||||||
|
1. Run the unRAID mover.
|
||||||
|
1. Resume the torrents after the mover has completed.
|
||||||
|
|
||||||
|
!!! warning
|
||||||
|
|
||||||
|
The screenshots below are only **EXAMPLES** to show you how it should look and where you need to place the data that you need to add. They are **NOT** always a 100% reflection of the actual data, and not always the actual values you need to add.
|
||||||
|
|
||||||
|
- Always follow the recommendations described in the guide.
|
||||||
|
- If you have any questions, or aren't sure, just click the chat badge to join the Discord Channel where you can ask your questions directly.
|
||||||
|
|
||||||
|
## Needed
|
||||||
|
|
||||||
|
### `deluge-mover` script
|
||||||
|
|
||||||
|
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"}
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
Install the following Plugins.
|
||||||
|
|
||||||
|
- User Scripts
|
||||||
|
- NerdTools
|
||||||
|
- python3 <sup>(*1*)</sup>
|
||||||
|
- python-setuptools <sup>(*1*)</sup>
|
||||||
|
- python-pip <sup>(*1*)</sup>
|
||||||
|
|
||||||
|
!!! info "<sup>(*1*)</sup> These need to be installed from NerdTools."
|
||||||
|
|
||||||
|
------
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
After you install the needed `Plugins` - it's time to configure everything.
|
||||||
|
|
||||||
|
### `requests` module
|
||||||
|
|
||||||
|
`deluge-mover.py` needs the requests Python module, so we need to make sure it's installed when your unRAID server starts, or when the Array is started the first time.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
![!User Scripts](images/Unraid-settings-user-scripts-icon.png)
|
||||||
|
|
||||||
|
At the bottom of the `User Scripts` page select the `ADD NEW SCRIPT` button.
|
||||||
|
|
||||||
|
![!Add New Script](images/Unraid-user-scripts-add-new-script-icon.png)
|
||||||
|
|
||||||
|
A popup will appear asking you to name the script. For this example, we're going to use `Install requests (deluge-mover)` and then click on `OK`.
|
||||||
|
|
||||||
|
![!Install requests module](images/Unraid-user-scripts-add-new-script-enter-name.png)
|
||||||
|
|
||||||
|
Click on the cogwheel of the new script in the list, and select `Edit Script`.
|
||||||
|
|
||||||
|
![!Select user script](images/Unraid-settings-user-scripts-edit-requests.png)
|
||||||
|
|
||||||
|
Copy/Paste the following in the new window that opens, then click `SAVE CHANGES`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
|
pip3 install requests
|
||||||
|
```
|
||||||
|
|
||||||
|
![!Bash script](images/Unraid-settings-user-scripts-requests.png)
|
||||||
|
|
||||||
|
Select in the schedule list when the script should run, and choose `At First Array Start Only`.
|
||||||
|
|
||||||
|
![!Set Run Time](images/Unraid-settings-user-scripts-requests-schedule.png)
|
||||||
|
|
||||||
|
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)*.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Suggestions:
|
||||||
|
|
||||||
|
- `/mnt/user/appdata/deluge/scripts/.venv`
|
||||||
|
- `/mnt/user/data/scripts/.venv`
|
||||||
|
|
||||||
|
Run the following command in unRAID's terminal in the directory you chose:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 -m venv --clear /mnt/user/data/scripts/.venv
|
||||||
|
```
|
||||||
|
|
||||||
|
We now need to enter this new environment and install our dependency (`requests`) in it, run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
source /mnt/user/data/scripts/.venv/bin/activate
|
||||||
|
pip3 install requests
|
||||||
|
deactivate # to leave the environment
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! 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"}).
|
||||||
|
|
||||||
|
Copy/paste the following command
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip3 install requests
|
||||||
|
```
|
||||||
|
|
||||||
|
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)).
|
||||||
|
|
||||||
|
You only need to change a few options at the top of the script.
|
||||||
|
|
||||||
|
```python
|
||||||
|
### CONFIGURATION VARIABLES ###
|
||||||
|
|
||||||
|
# this webui will need to be the JSON-RPC endpoint
|
||||||
|
# this ends with '/json'
|
||||||
|
deluge_webui = "http://localhost:8112/json"
|
||||||
|
deluge_password = "deluged"
|
||||||
|
|
||||||
|
# this changes whether the actual cache drive is checked for
|
||||||
|
# applicable files to pause/move before pausing.
|
||||||
|
#
|
||||||
|
# if this is false, it will pause all torrents in the age-range
|
||||||
|
# instead of only torrents in that range that exist on the cache
|
||||||
|
check_fs = False
|
||||||
|
|
||||||
|
# if you are using the mover tuner and don't want to use it for
|
||||||
|
# this script, set this to true
|
||||||
|
#
|
||||||
|
# if you do not use mover tuner, leave this as false
|
||||||
|
use_mover_old = False
|
||||||
|
|
||||||
|
# this is the absolute host path to your cache drive's downloads
|
||||||
|
# you only need this to be changed/set if using 'check_fs = True'
|
||||||
|
cache_download_path = "/mnt/cache/torrents/completed"
|
||||||
|
|
||||||
|
# the age range of days to look for relevant torrents to move
|
||||||
|
# i dont recommend setting age_day_max to less than the schedule
|
||||||
|
# you run the script on...
|
||||||
|
#
|
||||||
|
# if you run every 7 days, this should be at least 7 to prevent
|
||||||
|
# files from being stuck on your cache forever
|
||||||
|
#
|
||||||
|
# 0 disables age_day_max
|
||||||
|
# set both age vars to 0 to move everything on your cache drive
|
||||||
|
|
||||||
|
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*)
|
||||||
|
- `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`.
|
||||||
|
|
||||||
|
- `cache_download_path` => The location (host path) for your cache folder (if check_fs is True)
|
||||||
|
- `age_day_min` => Set the minimum age (days) of the torrents that you wish to move.
|
||||||
|
- `age_day_max` => Set the maximum age (days) of the torrents that you wish to move.
|
||||||
|
|
||||||
|
#### Copy the script to your preferred location
|
||||||
|
|
||||||
|
Place the script you just edited somewhere easy to access/remember.
|
||||||
|
|
||||||
|
Suggestions:
|
||||||
|
|
||||||
|
- `/mnt/user/appdata/deluge/scripts/deluge-mover.py`
|
||||||
|
- `/mnt/user/data/scripts/deluge-mover.py`
|
||||||
|
|
||||||
|
#### Final steps
|
||||||
|
|
||||||
|
Set up the scheduler for when the mover should run.
|
||||||
|
|
||||||
|
In your unRAID Dashboard, go to your `Settings` tab and select `User Scripts` in the `User Utilities` section at the bottom.
|
||||||
|
|
||||||
|
![!User Scripts](images/Unraid-settings-user-scripts-icon.png)
|
||||||
|
|
||||||
|
At the bottom of the `User Scripts` page select the `ADD NEW SCRIPT` button.
|
||||||
|
|
||||||
|
![!Add New Script](images/Unraid-user-scripts-add-new-script-icon.png)
|
||||||
|
|
||||||
|
A popup will appear asking you to name the script. For this example, we're going to use `deluge-mover` and then click on `OK`.
|
||||||
|
|
||||||
|
![!Deluge Mover](images/Unraid-user-scripts-add-new-script-enter-name-deluge.png)
|
||||||
|
|
||||||
|
Click on the cogwheel of the new script in the list.
|
||||||
|
|
||||||
|
![!Select user script](images/Unraid-settings-user-scripts-edit-deluge-mover.png)
|
||||||
|
|
||||||
|
Choose your method (select a tab) and copy/paste the script in the new window that opens, then click `SAVE CHANGES`.
|
||||||
|
=== "Python (Native)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
#!/bin/bash
|
||||||
|
/usr/local/emhttp/plugins/dynamix/scripts/notify -s "Deluge Mover" -d "Deluge Mover starting @ `date +%H:%M:%S`."
|
||||||
|
echo "executing script to pause torrents and run mover."
|
||||||
|
python3 /mnt/user/data/scripts/deluge-mover.py
|
||||||
|
echo "deluge-mover completed and resumed all paused torrents."
|
||||||
|
/usr/local/emhttp/plugins/dynamix/scripts/notify -s "Deluge Mover" -d "Deluge Mover completed @ `date +%H:%M:%S`."
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "Python (venv)"
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
#!/bin/bash
|
||||||
|
/usr/local/emhttp/plugins/dynamix/scripts/notify -s "Deluge Mover" -d "Deluge 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/deluge-mover.py
|
||||||
|
echo "deluge-mover completed and resumed all paused torrents."
|
||||||
|
/usr/local/emhttp/plugins/dynamix/scripts/notify -s "Deluge Mover" -d "Deluge Mover completed @ `date +%H:%M:%S`."
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! 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)
|
||||||
|
|
||||||
|
Click the schedule dropdown to choose when the script should run. We want to select `Custom`.
|
||||||
|
|
||||||
|
![!Set Run Time](images/Unraid-settings-user-scripts-deluge-mover-schedule.png)
|
||||||
|
|
||||||
|
After changing to `Custom` you will get an extra text field on the right where you can set your schedule (cron).
|
||||||
|
|
||||||
|
For this example, we're going to tell the script to run every day at 4 AM.
|
||||||
|
|
||||||
|
`0 4 * * *`
|
||||||
|
|
||||||
|
You can generate your scheduling [HERE](https://crontab.guru/)
|
||||||
|
|
||||||
|
![!Set Run Time](images/Unraid-settings-user-scripts-deluge-mover-cron.png)
|
||||||
|
|
||||||
|
{! include-markdown "../../../../includes/support.md" !}
|
After Width: | Height: | Size: 124 KiB |
After Width: | Height: | Size: 975 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 201 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 946 KiB |
After Width: | Height: | Size: 472 KiB |
After Width: | Height: | Size: 334 KiB |
After Width: | Height: | Size: 341 KiB |
After Width: | Height: | Size: 22 KiB |
@ -0,0 +1,11 @@
|
|||||||
|
# Themes
|
||||||
|
|
||||||
|
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 |
|
||||||
|
|
||||||
|
--8<-- "includes/support.md"
|
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 2.8 MiB |
@ -1,4 +1,7 @@
|
|||||||
nav:
|
nav:
|
||||||
- Home: index.md
|
- Home: index.md
|
||||||
- Tips
|
- 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/
|
- Profiles: /Plex/profiles/
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
nav:
|
|
||||||
- Suggested Plex Media Server Settings: Plex-media-server.md
|
|
||||||
- Optimal Plex Client Settings: Optimal-plex-client-settings.md
|
|
||||||
- JBOPS 4K Transcode Stopping with Tautulli: 4k-transcoding.md
|
|
@ -0,0 +1,109 @@
|
|||||||
|
# What does my Media Player Support
|
||||||
|
|
||||||
|
We've created an Excel sheet with several tested Media Player devices with info that our community has provided.
|
||||||
|
|
||||||
|
We hope this Excel sheet will be helpful for everyone looking for a reliable Media Player device.
|
||||||
|
|
||||||
|
Do you see a missing Player/Product? Are you able to provide the needed info? Please join [TRaSH Guides Discord](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"}
|
||||||
|
|
||||||
|
??? question "How can I provide info on a missing player? What do I need to provide? - [Click to show/hide]"
|
||||||
|
|
||||||
|
- Currently, it's only possible to provide info if the playback is seen in Tautulli.
|
||||||
|
- Player or Product that can run the Plex client directly or indirectly (Infuse, Plex Kodi Connect, Plex2Zidoo, etc)
|
||||||
|
- Preferably a TV that can do Dolby Vision, but we also need HDR10+ results.
|
||||||
|
- Player and Product info can be seen in Tautulli.
|
||||||
|
- When doing a playback test for HDR formats provide screenshots of what Tautulli and your TV show, along with whatever other devices you have that show what formats are being used.
|
||||||
|
- When doing an audio format test provide screenshots from Tautulli and your AVR.
|
||||||
|
- Provide this info in [TRaSH Guides Discord](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"} in #request-suggestions with a title starting with: `Test Media Player <your tested device>`
|
||||||
|
|
||||||
|
## What does the spreadsheet cover
|
||||||
|
|
||||||
|
This sheet will only cover Players/Products that can run the Plex client directly or indirectly (*Jellyfin/Emby isn't covered **yet** due to the lack of a proper Tautulli app and feedback/info from users*).
|
||||||
|
|
||||||
|
!!! info "Jellyfin/Emby"
|
||||||
|
|
||||||
|
While these principles are based on Plex and the capabilities of certain devices, the capabilities of these devices also apply to JellyFin and Emby. Assuming that it's possible to do the equivalent streaming method (direct or indirect play) with your media server, the hardware should act the same as if Plex was used.
|
||||||
|
|
||||||
|
The following aspects are covered
|
||||||
|
|
||||||
|
### Does it support the most common HDR formats
|
||||||
|
|
||||||
|
The sheet also has notes added for extra info
|
||||||
|
|
||||||
|
- Dolby Vision Profile 5 (*does not have a HDR10 baselayer, so cannot fallback to HDR10*)
|
||||||
|
- Dolby Vision Profile 7 (*DV + HDR10 baselayer, so it can fallback to HDR10*)
|
||||||
|
- Dolby Vision Profile 8 (*DV + HDR10 baselayer, so it can fallback to HDR10*)
|
||||||
|
- HDR10
|
||||||
|
- HDR10+ (*HDR10+ has also a HDR10 baselayer, so it can fallback to HDR10*)
|
||||||
|
|
||||||
|
#### Which Profile is used by what
|
||||||
|
|
||||||
|
- Profile 5 => WEBDL (Streaming Services)
|
||||||
|
- Profile 7 => Untouched Remuxes and BR-DISK
|
||||||
|
- Profile 8 => Encodes, Hybrid Remuxes, Hybrid WEBDL, and in some cases standard WEBDL like from Hulu
|
||||||
|
|
||||||
|
### Does it support audio passthrough in the most common formats
|
||||||
|
|
||||||
|
This allows for the best audio quality as the audio signal is not altered or compressed in any way before reaching the AV receiver or soundbar. This is especially important for high-quality audio formats such as Dolby TrueHD or DTS-HD Master Audio.
|
||||||
|
|
||||||
|
By using audio passthrough, you can ensure that you are getting the best audio experience possible when watching movies or listening to music through your home theater system. It allows you to take full advantage of the capabilities of your AVR/Soundbar and ensures that you are hearing the audio as it was intended to be heard by the content creators.
|
||||||
|
|
||||||
|
Overall, audio passthrough is the ideal way to send audio from your media server to your AV receiver or soundbar for the highest quality audio experience.
|
||||||
|
|
||||||
|
- TrueHD Atmos
|
||||||
|
- DTS X
|
||||||
|
- DD+ Atmos
|
||||||
|
- TrueHD
|
||||||
|
- DTS-HD MA
|
||||||
|
- FLAC/PCM
|
||||||
|
- DD+ (E-AC3)
|
||||||
|
- DTS
|
||||||
|
- AAC
|
||||||
|
- DD (AC3)
|
||||||
|
|
||||||
|
## Link to tested Media Player Devices
|
||||||
|
|
||||||
|
[Tested Media Players](https://docs.google.com/spreadsheets/d/15Wf_jy5WqOPShczFKQB28cCetBgAGcnA0mNOG-ePwDc/edit?usp=sharing){:target="_blank" rel="noopener noreferrer"}
|
||||||
|
|
||||||
|
!!! info "A lot of results have a note added that provides extra information, such as fallback HDR or audio formats, as well as other information that we've gathered from several sources."
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## What should I do next with this info
|
||||||
|
|
||||||
|
The next thing to do is to setup a proper quality profile with the info you gathered from this sheet.
|
||||||
|
To make this easier we made a How to setup a quality profile for Radarr/Sonarr that has a flowchart to help you even more to decide what to choose.
|
||||||
|
|
||||||
|
### Radarr
|
||||||
|
|
||||||
|
[How to set up Quality Profiles](/Radarr/radarr-setup-quality-profiles){:target="_blank" rel="noopener noreferrer"} - Explains how to make the most 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 make use of HDR Formats for Radarr
|
||||||
|
|
||||||
|
- [How to set up Quality Profiles](/Radarr/radarr-setup-quality-profiles){:target="_blank" rel="noopener noreferrer"} - Explains how to make the most of Custom Formats and shows some specifics of my configuration. You can use
|
||||||
|
|
||||||
|
{! include-markdown "../../includes/cf/radarr-all-hdr-formats.md" !}
|
||||||
|
|
||||||
|
#### How to make use of Audio Formats for Radarr
|
||||||
|
|
||||||
|
- [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
|
||||||
|
|
||||||
|
{! include-markdown "../../includes/cf/radarr-audio.md" !}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Sonarr
|
||||||
|
|
||||||
|
[How to setup Quality Profiles](/Sonarr/sonarr-setup-quality-profiles){:target="_blank" rel="noopener noreferrer"} - Explains how to make the most 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 make use of HDR Formats for Sonarr
|
||||||
|
|
||||||
|
- [How to setup Quality Profiles](/Sonarr/sonarr-setup-quality-profiles){:target="_blank" rel="noopener noreferrer"} - Explains how to make the most 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.
|
||||||
|
|
||||||
|
{! include-markdown "../../includes/cf/sonarr-all-hdr-formats.md" !}
|
||||||
|
|
||||||
|
#### How to make use of Audio Formats for Sonarr
|
||||||
|
|
||||||
|
At the moment I decided not to add `Audio Advanced` Custom Formats to the WEB profile. You will hardly find HD audio with WEB-DL (Most newer WEBDL will have Atmos). If you also want HD audio formats, I would suggest going for Remuxes.
|
||||||
|
|
||||||
|
--8<-- "includes/support.md"
|
@ -1,39 +1,44 @@
|
|||||||
# How to rename your folders
|
# How to rename your folders
|
||||||
|
|
||||||
If you want to rename your current folder names (for example to your new naming scheme), you can do that with this little magic trick.
|
If you need to rename your current folder names (for example, to a new naming scheme), you can do so with a little "magic trick".
|
||||||
|
|
||||||
![!radarr-wrong-folder-name](images/radarr-wrong-folder-name.png)
|
![!radarr-wrong-folder-name](images/radarr-wrong-folder-name.png)
|
||||||
|
|
||||||
Go to you movie overview
|
Simply go to the movie overview section.
|
||||||
|
|
||||||
`Movies`
|
`Movies`
|
||||||
|
|
||||||
On the top click on `Movie Editor`
|
Click on `Edit Movies` (at the top)
|
||||||
|
|
||||||
![!radarr-movie-editor](images/radarr-movie-editor.png)
|
![!radarr-movie-editor](images/radarr-movie-editor.png)
|
||||||
|
|
||||||
After activating it you select the movie(s) from where you want to have the folder(s) to be renamed.
|
Once you are in "edit" mode, you can select the movie(s) whose folders you want to be renamed.
|
||||||
|
|
||||||
![!radarr-movie-editor-select](images/radarr-movie-editor-select.png)
|
![!radarr-movie-editor-select](images/radarr-movie-editor-select.png)
|
||||||
|
|
||||||
1. If you want all your movie folders renamed to your new folder naming scheme you set earlier [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) from where you want to have the folder(s) to be renamed.
|
1. Select the movie(s) that you want to have the folder(s) renamed.
|
||||||
1. Choose the same `Root Folder`
|
1. At the bottom select `Edit`
|
||||||
|
|
||||||
A new popup will be shown:
|
A new popup will be shown:
|
||||||
|
|
||||||
|
![!radarr-edit-selected-movies](images/radarr-edit-selected-movies.png)
|
||||||
|
|
||||||
|
Choose the same (current) root folder for your selected movies, and choose `Apply Changes`.
|
||||||
|
|
||||||
![!radarr-movie-editor-move-files-yes](images/radarr-movie-editor-move-files-yes.png)
|
![!radarr-movie-editor-move-files-yes](images/radarr-movie-editor-move-files-yes.png)
|
||||||
|
|
||||||
Select `Yes, Move the files`
|
You will get a warning popup where you will need to choose `Yes, Move the files`
|
||||||
|
|
||||||
!!! warning
|
!!! warning
|
||||||
If you have a large library, remote storage, cloud storage, or your path structure isn't well planned or doesn't support instant moves, then this process could take a while. Make sure you don't interrupt this process. If it stops before it's complete, it could result in quite the mess.
|
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.
|
||||||
|
|
||||||
Then Magic
|
Then, Magic!
|
||||||
|
|
||||||
![!radarr-correct-folder-name](images/radarr-correct-folder-name.png)
|
![!radarr-correct-folder-name](images/radarr-correct-folder-name.png)
|
||||||
|
|
||||||
As you can see the folder has been renamed to the correct year following your naming scheme.
|
As you can see, the folder has now been renamed to the new/updated naming scheme.
|
||||||
|
|
||||||
{! include-markdown "../../../includes/support.md" !}
|
--8<-- "includes/support.md"
|
||||||
<!-- --8<-- "includes/support.md" -->
|
|
||||||
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 368 KiB |
Before Width: | Height: | Size: 464 KiB After Width: | Height: | Size: 362 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 170 KiB |
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 172 KiB |
Before Width: | Height: | Size: 235 KiB After Width: | Height: | Size: 221 KiB |
After Width: | Height: | Size: 9.5 KiB |
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 124 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 198 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 264 KiB |
After Width: | Height: | Size: 208 KiB |
Before Width: | Height: | Size: 167 KiB |
After Width: | Height: | Size: 129 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 3.7 KiB |