A curated collection of scripts to optimize and manage various functions related to Starr applications and associated tools. Occasionally holds random useful scripts as well. These scripts are designed to enhance functionality, improve management, and automate routine tasks. All scripts are Created By: Bakerboy448 unless otherwise noted.
Warning: Do not edit files on Windows that will be executed on Linux without ensuring the line-endings are set to LF.
This means that CRLF cannot be used in .sh scripts. Bash scripts will not execute properly and you will receive an
error.
- Script:
qui-xseed.sh - Description: Triggers a qui data-based cross-seed search when Radarr or Sonarr completes an import. The script creates a dir-scan entry in qui, triggers a scan, polls for completion, then cleans up.
- Creator: Bakerboy448
- Requirements:
- qui with API access enabled
- Radarr/Sonarr with Custom Script connect support
- Instructions:
- Copy
.env.sampleto.envand configure theQUI_*variables. - Docker Users: Mount
.envandqui-xseed.shto your Starr's/configmount. - In Radarr:
Settings->Connect->Custom Script-> select "On Import" and "On Upgrade". - In Sonarr:
Settings->Connect->Custom Script-> select "On Import Complete". - Test and Save.
- Copy
- Configuration (
.env):QUI_HOST- qui hostname (default:localhost)QUI_PORT- qui API port (default:7476)QUI_APIKEY- qui API keyQUI_TARGET_INSTANCE_ID- qui instance ID (default:1)QUI_QBIT_PATH_PREFIX- optional path prefix for qBittorrentQUI_TAGS- optional comma-separated tagsTORRENT_CLIENTS- comma-separated torrent client names (default:qBittorrent)USENET_CLIENTS- comma-separated usenet client names (default:SABnzbd)LOG_FILE- log file path (default:./qui_xseed.log)
- Notes:
- Only errors are written to stderr (which starr apps capture). All other logging goes to the log file only, to avoid noisy notifications.
- The script is idempotent — duplicate download IDs are skipped via the ID log file.
- Replaces the legacy
xseed.sh(removed in v4.0.0) which used the cross-seed API directly.
- Script:
dupe.sh - Description: Executes
jdupesto find and manage duplicate files in the specified directory. - Instructions:
- Copy
.env.sampleto.env. - Populate required values under "# Jdupes" header.
- Review and adjust script parameters to fit your use case.
- Copy
- Output: Results are saved to a file as specified in the script.
- Script:
merge_folders.py - Description: A robust utility designed for merging multiple directories into a single target directory, ensuring that no existing files are overwritten in the process. This script uses a recursive function to efficiently merge content, while providing detailed logging of each step to monitor the creation, movement, and skipping of files and directories.
- Features:
- Recursive Merging: Seamlessly combines contents of source directories into a target directory.
- Non-destructive: Preserves existing files by not overwriting them.
- Error Handling: Captures and logs errors during the merging process, ensuring reliable operations.
- Detailed Logging: Tracks and logs every file and directory operation, providing clear visibility into the process.
- Usage Case: Ideal for consolidating data in scenarios like organizing media libraries, merging data backups, or simplifying file system structures.
- Instructions:
- Update
source_dirsand uncomment the variable - Update
target_dirand uncomment the variable - Uncomment
atomic_movesto engage the movement operation - Run the script with
python3 merge_folders.py
- Update
- Script:
pic-update.sh - Description: Updates Plex-Image-Cleanup to the latest branch.
- Review: Check that script parameters are suitable for your environment.
- Script:
pmm-update.sh - Description: Updates Plex Meta Manager to the latest branch.
- Review: Confirm script parameters align with your configuration.
- Script:
qbm-qbit.sh - Description: Executes QbitManage upon download completion in Qbittorrent.
- Instructions:
- Copy
.env.sampleto.env. - Populate required values under "# Qbittorrent Manage" header.
- Copy
- Script:
qbm-api-trigger.sh - Description: Triggers QbitManage commands via Web API for specific torrent hashes.
- Requirements:
- QbitManage v4.5+ with Web API enabled (
QBT_WEB_SERVER=true) - QbitManage container accessible via HTTP
- QbitManage v4.5+ with Web API enabled (
- Instructions:
- Configure QbitManage Web API in your docker-compose.yml
- In qBittorrent, navigate to
Options->Downloads->Run external program on torrent completion - Add command:
/path/to/qbm-api-trigger.sh %I - The
%Ivariable passes the torrent hash to trigger commands liketag_update,share_limits,rem_unregistered, andrecheck
- Notes:
- Script sends POST request to
http://127.0.0.1:4269/api/run-commandby default - Modify
API_URLandCOMMANDSvariables in script to customize behavior - All execution details logged to
run_qbit_manage_commands.log
- Script sends POST request to
- Script:
qbm-update.sh - Description: Updates QbitManage to the latest branch.
- Review: Ensure script parameters match your setup before execution.
- Script:
servarr/servarr_bot_merge.sh - Description: Merges the latest changes from the Servarr Wiki Bot Branch into the Prowlarr Indexers Wiki Master.
- Script:
zfsburn.sh - Description: Deletes ZFS autosnapshots older than a specified number of days.
- Instructions:
- Copy
.env.sampleto.env. - Fill in the required values under "# ZFS Destroy" header.
- Copy
Contributions to improve or expand the scripts collection are welcome. Please refer to the contribution guidelines for more information.
This project is licensed under the MIT License - see the LICENSE file for details.