diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 00d8eb2..cc6339c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,7 +14,7 @@ repos: - id: pretty-format-json args: [--autofix, --indent, '4', --no-sort-keys] - repo: https://github.com/adrienverge/yamllint.git - rev: v1.35.1 # or higher tag + rev: v1.37.0 # or higher tag hooks: - id: yamllint args: [--format, parsable, --strict] @@ -26,7 +26,7 @@ repos: exclude: ^.github/ - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.9.10 + rev: v0.11.6 hooks: # Run the linter. - id: ruff diff --git a/CHANGELOG b/CHANGELOG index 7537085..7b1dad1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,8 +1,9 @@ +# Requirements Updated +qbittorrent-api==2025.4.1 +humanize==4.12.2 + # New Updates -- Adds new command to filter for completed torrents only for rem_unregistered (#747) -- Replace flake8/black with ruff for lint and formatting +- Adds warning to share_limits not being applied in dry-run (closes #786) +- Adds credit to remove_scross-seed_tag.py script (Thanks to @zakkarry) -# Bug Fixes -- Fixes bug in tagging `stalledDL` torrents when set to False (#764) - -**Full Changelog**: https://github.com/StuffAnThings/qbit_manage/compare/v4.2.0...v4.2.1 +**Full Changelog**: https://github.com/StuffAnThings/qbit_manage/compare/v4.2.1...v4.2.2 diff --git a/SUPPORTED_VERSIONS.json b/SUPPORTED_VERSIONS.json index 90a92cc..b486834 100644 --- a/SUPPORTED_VERSIONS.json +++ b/SUPPORTED_VERSIONS.json @@ -4,7 +4,7 @@ "qbitapi": "2025.2.0" }, "develop": { - "qbit": "v5.0.4", - "qbitapi": "2025.2.0" + "qbit": "v5.0.5", + "qbitapi": "2025.4.1" } } diff --git a/VERSION b/VERSION index fae6e3d..af8c8ec 100755 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.2.1 +4.2.2 diff --git a/docs/Config-Setup.md b/docs/Config-Setup.md index 4d27623..a10d006 100644 --- a/docs/Config-Setup.md +++ b/docs/Config-Setup.md @@ -77,7 +77,7 @@ This section defines the directories that qbit_manage will be looking into for v --- This section defines the categories that you are currently using and the save path's that are associated with them. -> **NOTE** ALL save paths must be defined, if it is in your qBit, then it **MUST** be defined here, if not the script will throw errors. If you want to leave a save_path as uncategorized you can use the key 'Uncategorized' as the name of the category. +> **NOTE** ALL save paths must be defined, if it is in your qBit, then it **MUST** be defined here, if not the script will throw errors. If you want to leave a save_path as uncategorized you can use the key 'Uncategorized' as the name of the category. You may map a folder and its subdirectories to a single folder by appending `*` to the path e.g. `//category/*` | Configuration | Definition | Required | | :------------ | :------------------------ | :----------------- | diff --git a/docs/Local-Installations.md b/docs/Local-Installations.md index 5867987..5c6da8f 100644 --- a/docs/Local-Installations.md +++ b/docs/Local-Installations.md @@ -1,5 +1,7 @@ # Local Installations +Below is a simple high level set of instructions for cloning the repository and executing qbit_manage + * Requires `python 3.9.0`. Dependencies must be installed by running: Navigate to the directory you'd liked to clone the repo into diff --git a/modules/core/share_limits.py b/modules/core/share_limits.py index 7bddddb..77ecf31 100644 --- a/modules/core/share_limits.py +++ b/modules/core/share_limits.py @@ -47,6 +47,8 @@ class ShareLimits: def update_share_limits(self): """Updates share limits for torrents based on grouping""" logger.separator("Updating Share Limits based on priority", space=False, border=False) + if self.config.dry_run: + logger.warning("Share Limits will not be applied with dry_run and could be inaccurate unless manually adding tags.") torrent_list = self.qbt.get_torrents({"status_filter": self.status_filter}) self.assign_torrents_to_group(torrent_list) for group_name, group_config in self.share_limits_config.items(): diff --git a/requirements-dev.txt b/requirements-dev.txt index f5a2604..6565e48 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,3 +1,3 @@ -pre-commit==4.1.0 -ruff==0.10.0 +pre-commit==4.2.0 +ruff==0.11.7 diff --git a/requirements.txt b/requirements.txt index 8287234..47cb7dd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,9 +1,9 @@ bencodepy==0.9.5 croniter==6.0.0 GitPython==3.1.44 -humanize==4.12.1 +humanize==4.12.2 pytimeparse2==1.7.1 -qbittorrent-api==2025.2.0 +qbittorrent-api==2025.4.1 requests==2.32.3 retrying==1.3.4 ruamel.yaml==0.18.10 diff --git a/scripts/remove_cross-seed_tag.py b/scripts/remove_cross-seed_tag.py index bd4daef..e92a2b2 100644 --- a/scripts/remove_cross-seed_tag.py +++ b/scripts/remove_cross-seed_tag.py @@ -1,4 +1,15 @@ -#!/usr/bin/env python3 +#!/usr/bin/python3 +# This script was written by zakkarry ( https://github.com/zakkarry ) +# Simply follow the basic configuration options below to remove all 'cross-seed' +# tags from all torrents from qBittorrent client matching the options below. +# +# If you do not know how to use environmental variables, or do not need to, simply +# configure the second part of the OBIT_* variables, where the actual URL and strings are. +# +# If you need to, you can use this script to remove any tag as well, simply modify CROSS_SEED_TAG +# from 'cross-seed' to whichever tag you wish to remove. +# + import os # USES ENVIRONMENTAL VARIABLES, IF NONE ARE PRESENT WILL FALLBACK TO THE SECOND STRING