mirror of
https://github.com/StuffAnThings/qbit_manage.git
synced 2025-10-18 01:36:21 +08:00
cross-seed moves file to error folder if it fails to
inject torrent
This commit is contained in:
parent
65086a6b7d
commit
b93eec7665
3 changed files with 13 additions and 21 deletions
24
CHANGELOG
24
CHANGELOG
|
@ -1,23 +1,11 @@
|
||||||
# Requirements Updated
|
# Requirements Updated
|
||||||
- Updates ruamel.yaml to 0.17.31
|
|
||||||
- Updates qbitorrent-api to 2023.5.48
|
|
||||||
- Separate out dev requirements into requirements-dev.txt
|
|
||||||
# Breaking Changes
|
# Breaking Changes
|
||||||
- `tag_nohardlinks` only updates/removes `noHL` tag. **It does not modify or cleanup share_limits anymore.**
|
|
||||||
- `tag_update` only adds tracker tags to torrent. **It does not modify or cleanup share_limits anymore.**
|
|
||||||
- Please remove any references to share_limits from your configuration in the tracker/nohardlinks section
|
|
||||||
- Migration guide can be followed here: [V4 Migration Guide](https://github.com/StuffAnThings/qbit_manage/wiki/v4-Migration-Guide)
|
|
||||||
- Webhook payloads changed (See [webhooks](https://github.com/StuffAnThings/qbit_manage/wiki/Config-Setup#webhooks) for updated payload)
|
|
||||||
|
|
||||||
# New Features
|
# New Features
|
||||||
- Adds new command `share_limits`, `--share-limits` , `QBT_SHARE_LIMITS=True` to update share limits based on tags/categories specified per group (Closes #88, Closes #306, Closes #259, Closes #308, Closes #137)
|
- cross-seed will move torrent to an error folder if it fails to inject torrent
|
||||||
- See [Config Setup - share_limits](https://github.com/StuffAnThings/qbit_manage/wiki/Config-Setup#share_limits) for more details
|
|
||||||
- Adds new command `skip_qb_version_check`, `--skip-qb-version-check`, `QBT_SKIP_QB_VERSION_CHECK` to bypass qbitorrent compatibility check (unsupported - Thanks to @ftc2 #307)
|
|
||||||
- Updates to webhook notifications to group notifications when a function updates more than 10 Torrents.
|
|
||||||
- Adds new webhooks for `share_limits`
|
|
||||||
- Adds rate limit to webhook notifications (1 msg/sec)
|
|
||||||
# Bug Fixes
|
|
||||||
- Fixes #302
|
|
||||||
- Fixes #317
|
|
||||||
|
|
||||||
**Full Changelog**: https://github.com/StuffAnThings/qbit_manage/compare/v3.6.4...v4.0.0
|
# Bug Fixes
|
||||||
|
|
||||||
|
|
||||||
|
**Full Changelog**: https://github.com/StuffAnThings/qbit_manage/compare/v4.0.0...v4.0.1
|
||||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
4.0.0
|
4.0.1-develop1
|
||||||
|
|
|
@ -31,18 +31,21 @@ class CrossSeed:
|
||||||
dir_cs = self.config.cross_seed_dir
|
dir_cs = self.config.cross_seed_dir
|
||||||
dir_cs_out = os.path.join(dir_cs, "qbit_manage_added")
|
dir_cs_out = os.path.join(dir_cs, "qbit_manage_added")
|
||||||
os.makedirs(dir_cs_out, exist_ok=True)
|
os.makedirs(dir_cs_out, exist_ok=True)
|
||||||
|
dir_cs_err = os.path.join(dir_cs, "qbit_manage_error")
|
||||||
|
os.makedirs(dir_cs_err, exist_ok=True)
|
||||||
for file in cs_files:
|
for file in cs_files:
|
||||||
tr_name = file.split("]", 2)[2].split(".torrent")[0]
|
tr_name = file.split("]", 2)[2].split(".torrent")[0]
|
||||||
t_tracker = file.split("]", 2)[1][1:]
|
t_tracker = file.split("]", 2)[1][1:]
|
||||||
# Substring Key match in dictionary (used because t_name might not match exactly with self.qbt.torrentinfo key)
|
# Substring Key match in dictionary (used because t_name might not match exactly with self.qbt.torrentinfo key)
|
||||||
# Returned the dictionary of filtered item
|
# Returned the dictionary of filtered item
|
||||||
torrentdict_file = dict(filter(lambda item: tr_name in item[0], self.qbt.torrentinfo.items()))
|
torrentdict_file = dict(filter(lambda item: tr_name in item[0], self.qbt.torrentinfo.items()))
|
||||||
|
src = os.path.join(dir_cs, file)
|
||||||
|
dir_cs_out = os.path.join(dir_cs_out, file)
|
||||||
|
dir_cs_err = os.path.join(dir_cs_err, file)
|
||||||
if torrentdict_file:
|
if torrentdict_file:
|
||||||
# Get the exact torrent match name from self.qbt.torrentinfo
|
# Get the exact torrent match name from self.qbt.torrentinfo
|
||||||
t_name = next(iter(torrentdict_file))
|
t_name = next(iter(torrentdict_file))
|
||||||
dest = os.path.join(self.qbt.torrentinfo[t_name]["save_path"], "")
|
dest = os.path.join(self.qbt.torrentinfo[t_name]["save_path"], "")
|
||||||
src = os.path.join(dir_cs, file)
|
|
||||||
dir_cs_out = os.path.join(dir_cs, "qbit_manage_added", file)
|
|
||||||
category = self.qbt.torrentinfo[t_name].get("Category", self.qbt.get_category(dest))
|
category = self.qbt.torrentinfo[t_name].get("Category", self.qbt.get_category(dest))
|
||||||
# Only add cross-seed torrent if original torrent is complete
|
# Only add cross-seed torrent if original torrent is complete
|
||||||
if self.qbt.torrentinfo[t_name]["is_complete"]:
|
if self.qbt.torrentinfo[t_name]["is_complete"]:
|
||||||
|
@ -98,6 +101,7 @@ class CrossSeed:
|
||||||
logger.print_line(error, self.config.loglevel)
|
logger.print_line(error, self.config.loglevel)
|
||||||
else:
|
else:
|
||||||
logger.print_line(error, "WARNING")
|
logger.print_line(error, "WARNING")
|
||||||
|
util.move_files(src, dir_cs_err)
|
||||||
self.config.notify(error, "cross-seed", False)
|
self.config.notify(error, "cross-seed", False)
|
||||||
|
|
||||||
self.config.webhooks_factory.notify(self.torrents_updated, self.notify_attr, group_by="category")
|
self.config.webhooks_factory.notify(self.torrents_updated, self.notify_attr, group_by="category")
|
||||||
|
|
Loading…
Add table
Reference in a new issue