You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When running qbit_manage to update categories I'm getting a 'list index out of range' error for all torrents. I checked the code and found that this is being caused by the use of 'os.sep' as a separator for urls in qbittorrent.py. In Windows this is causing it to try to split the url using a \ and target the 3rd entry in the resulting array which only contains 1 item.
Config
# This is an example configuration file that documents all the options.# It will need to be modified for your specific use case.# Please refer to the link below for more details on how to set up the configuration file# https://github.com/StuffAnThings/qbit_manage/wiki/Config-Setupcommands:
# The commands defined below will IGNORE any commands used in command line and docker env variables.cross_seed: false # Use this after running cross-seed script to add torrents from the cross-seed output folder to qBittorrentrecheck: false # Recheck paused torrents sorted by lowest size. Resume if Completed.cat_update: true # Update your categories or move from one category to another.tag_update: false # Update your tags and/or set seed goals/limit upload speed by tag. (Only adds tags to untagged torrents)rem_unregistered: false # Delete data & torrent if it is not being cross-seeded, otherwise it will just remove the torrent without deleting datatag_tracker_error: true # Tag torrents that do not have a working tracker.rem_orphaned: false # Scan your root_dir directory and compare it with what is in qBittorrent. Any data not referenced in qBittorrent will be moved into /data/torrents/orphaned_data folder for you to review/delete.tag_nohardlinks: false # Tag any torrents that do not have any hard links associated with any of the files. This is useful for those that use Sonarr/Radarr that hard links your media files with the torrents for seeding. When files get upgraded they no longer become linked with your media therefore will be tagged with a new tag noHL. You can then safely delete/remove these torrents to free up any extra space that is not being used by your media folder.share_limits: falseskip_cleanup: trueskip_qb_version_check: truedry_run: trueqbt:
# qBittorrent parametershost: localhost:8989user:
pass:
settings:
force_auto_tmm: false # Will force qBittorrent to enable Automatic Torrent Management for each torrent.force_auto_tmm_ignore_tags: [] # Torrents with these tags will be ignored when force_auto_tmm is enabled.tracker_error_tag: BadTracker # Will set the tag of any torrents that do not have a working tracker.nohardlinks_tag: noHL # Will set the tag of any torrents with no hardlinks.share_limits_tag: ~share_limit # Will add this tag when applying share limits to provide an easy way to filter torrents by share limit group/priority for each torrentshare_limits_min_seeding_time_tag: MinSeedTimeNotReached # Tag to be added to torrents that have not yet reached the minimum seeding timeshare_limits_min_num_seeds_tag: MinSeedsNotMet # Tag to be added to torrents that have not yet reached the minimum number of seedsshare_limits_last_active_tag: LastActiveLimitNotReached # Tag to be added to torrents that have not yet reached the last active limitcross_seed_tag: Cross-Seed # Will set the tag of any torrents that are added by cross-seed commandcat_filter_completed: false # Filters for completed torrents only when running cat_update commandshare_limits_filter_completed: false # Filters for completed torrents only when running share_limits commandtag_nohardlinks_filter_completed: true # Filters for completed torrents only when running tag_nohardlinks commandcat_update_all: true # Checks and udpates all torrent categories if set to True when running cat_update command, otherwise only update torrents that are uncategorizeddisable_qbt_default_share_limits: false # When running --share-limits function, it allows QBM to handle share limits by disabling qBittorrents default Share limits.directory:
# Do not remove these# Cross-seed var: </your/path/here/> # Output directory of cross-seed# root_dir var: </your/path/here/> # Root downloads directory used to check for orphaned files, noHL, and RecycleBin.# <OPTIONAL> remote_dir var: </your/path/here/> # Path of docker host mapping of root_dir.# remote_dir must be set if you're running qbit_manage locally and qBittorrent/cross_seed is in a docker# remote_dir should not be set if qbit_manage is running in a container# <OPTIONAL> recycle_bin var: </your/path/here/> # Path of the RecycleBin folder. Default location is set to remote_dir/.RecycleBin# <OPTIONAL> torrents_dir var: </your/path/here/> # Path of the your qbittorrent torrents directory. Required for `save_torrents` attribute in recyclebin# <OPTIONAL> orphaned_dir var: </your/path/here/> # Path of the the Orphaned Data folder. This is similar to RecycleBin, but only for orphaned data.cross_seed: D:\\Torrent\\CrossSeedroot_dir: D:\\Torrent\\Downloads#remote_dir: ''recycle_bin: D:\\Torrent\\.RecycleBintorrents_dir: D:\\Torrent\\TorrentFilesorphaned_dir: D:\\Torrent\\Orphanedcat:
# Category & Path Parameters# <Category Name> : <save_path> # Path of your save directory.#movies: "D:\\Torrent\\Completed"Uncategorized: D:\Torrent\Completed\Anime: E:\Prep\Apps: D:\Torrent\Completed\Movies: D:\Torrent\Completed\TV: D:\Torrent\Completed\Completed: D:\Torrent\Completed\cat_change:
# This moves all the torrents from one category to another category. This executes on --cat-update# WARNING: if the paths are different and Default Torrent Management Mode is set to automatic the files could be moved !!!# <Old Category Name> : <New Category>tracker:
# Mandatory# Tag Parameters# <Tracker URL Keyword>: # <MANDATORY> This is the keyword in the tracker url. You can define multiple tracker urls by splitting with `|` delimiter# <MANDATORY> Set tag name. Can be a list of tags or a single tag# tag: <Tag Name># <OPTIONAL> Set the category based on tracker URL. This category option takes priority over the category defined by save directory# cat: <Category Name># <OPTIONAL> Set this to the notifiarr react name. This is used to add indexer reactions to the notifications sent by Notifiarr# notifiarr: <notifiarr indexer>#animebytes.tv:# tag: AnimeBytes# notifiarr: animebytes#avistaz:# tag:# - Avistaz# - tag2# - tag3# notifiarr: avistaz#beyond-hd:# tag: [Beyond-HD, tag2, tag3]# cat: movies# notifiarr: beyondhd#blutopia:# tag: Blutopia# notifiarr: blutopia#cartoonchaos:# tag: CartoonChaos#digitalcore:# tag: DigitalCore# notifiarr: digitalcore#gazellegames:# tag: GGn#hdts:# tag: HDTorrents#landof.tv:# tag: BroadcasTheNet# notifiarr: broadcasthenet#myanonamouse:# tag: MaM#passthepopcorn:# tag: PassThePopcorn# notifiarr: passthepopcorn#privatehd:# tag: PrivateHD# notifiarr:#torrentdb:# tag: TorrentDB# notifiarr: torrentdb#torrentleech|tleechreload:# tag: TorrentLeech# notifiarr: torrentleech#tv-vault:# tag: TV-Vault## IPTorrents Trackers# https://localhost.stackoverflow.tech/bf8442290e6026a1ef44d227cc50818c/announce# https://ssl.empirehost.me/bf8442290e6026a1ef44d227cc50818c/announce# https://routing.bgp.technology/bf8442290e6026a1ef44d227cc50818c/announcelocalhost.stackoverflow.tech|ssl.empirehost.me|routing.bgp.technology:
tag:
- Private
- IPTorrentscat: IPTorrents# Nyaa.si Trackers# http://nyaa.tracker.wf:7777/announcenyaa:
tag:
- Public
- Nyaacat: Anime# The "other" key is a special keyword and if defined will tag any other trackers that don't match the above trackers into this tagother:
tag: othernohardlinks:
# Tag Movies/Series that are not hard linked outside the root directory# Mandatory to fill out directory parameter above to use this function (root_dir/remote_dir)# This variable should be set to your category name of your completed movies/completed series in qbit. Acceptable variable can be any category you would like to tag if there are no hardlinks found#movies-completed-4k:#series-completed-4k:#movies-completed:# # <OPTIONAL> exclude_tags var: Will exclude torrents with any of the following tags when searching through the category.# exclude_tags:# - Beyond-HD# - AnimeBytes# - MaM# # <OPTIONAL> ignore_root_dir var: Will ignore any hardlinks detected in the same root_dir (Default True).# ignore_root_dir: true## Can have additional categories set with separate ratio/seeding times defined.#series-completed:# # <OPTIONAL> exclude_tags var: Will exclude torrents with any of the following tags when searching through the category.# exclude_tags:# - Beyond-HD# - BroadcasTheNet# # <OPTIONAL> ignore_root_dir var: Will ignore any hardlinks detected in the same root_dir (Default True).# ignore_root_dir: trueshare_limits:
# Control how torrent share limits are set depending on the priority of your grouping# Each torrent will be matched with the share limit group with the highest priority that meets the group filter criteria.# Each torrent can only be matched with one share limit group# This variable is mandatory and is a text defining the name of your grouping. This can be any string you want#IPTorrents:# <MANDATORY> priority: <int/float> # This is the priority of your grouping. The lower the number the higher the priority#priority: 11# <OPTIONAL> include_all_tags: <list> # Filter the group based on one or more tags. Multiple include_all_tags are checked with an AND condition# All tags defined here must be present in the torrent for it to be included in this group#include_all_tags:# - IPTorrents# <OPTIONAL> include_any_tags: <list> # Filter the group based on one or more tags. Multiple include_any_tags are checked with an OR condition# Any tags defined here must be present in the torrent for it to be included in this group#include_any_tags:# - IPTorrents# <OPTIONAL> exclude_all_tags: <list> # Filter by excluding one or more tags. Multiple exclude_all_tags are checked with an AND condition# This is useful to combine with the category filter to exclude one or more tags from an entire category# All tags defined here must be present in the torrent for it to be excluded in this group#exclude_all_tags:# - Beyond-HD# <OPTIONAL> exclude_any_tags: <list> # Filter by excluding one or more tags. Multiple exclude_any_tags are checked with an OR condition# This is useful to combine with the category filter to exclude one or more tags from an entire category# Any tags defined here must be present in the torrent for it to be excluded in this group#exclude_any_tags:# - Beyond-HD# <OPTIONAL> categories: <list> # Filter by including one or more categories. Multiple categories are checked with an OR condition# Since one torrent can only be associated with a single category, multiple categories are checked with an OR condition#categories:#- Private#- SonarrComplete# <OPTIONAL> max_ratio <float>: Will set the torrent Maximum share ratio until torrent is stopped from seeding/uploading and may be cleaned up / removed if the minimums have been met.# Will default to -1 (no limit) if not specified for the group.#max_ratio: 10# <OPTIONAL> max_seeding_time <str>: Will set the torrent Maximum seeding time until torrent is stopped from seeding/uploading and may be cleaned up / removed if the minimums have been met.# See Some examples of valid time expressions (https://github.com/onegreyonewhite/pytimeparse2)# 32m, 2h32m, 3d2h32m, 1w3d2h32m# Will default to -1 (no limit) if not specified for the group. (Max value of 1 year (525600 minutes))#max_seeding_time: 365d# <OPTIONAL> min_seeding_time <str>: Will prevent torrent deletion by cleanup variable if torrent has not yet minimum seeding time (minutes).# This should only be set if you are using this in conjunction with max_seeding_time and max_ratio. If you are not setting a max_ratio, then use max_seeding_time instead.# If the torrent has not yet reached this minimum seeding time, it will change the share limits back to no limits and resume the torrent to continue seeding.# See Some examples of valid time expressions (https://github.com/onegreyonewhite/pytimeparse2)# 32m, 2h32m, 3d2h32m, 1w3d2h32m# Will default to 0 if not specified for the group.#min_seeding_time: 23d# <OPTIONAL> last_active <str>: Will prevent torrent deletion by cleanup variable if torrent has been active within the last x minutes.# If the torrent has been active within the last x minutes, it will change the share limits back to no limits and resume the torrent to continue seeding.# See Some examples of valid time expressions (https://github.com/onegreyonewhite/pytimeparse2)# 32m, 2h32m, 3d2h32m, 1w3d2h32m# Will default to 0 if not specified for the group.#last_active: 20d# <OPTIONAL> Limit Upload Speed <int>: Will limit the upload speed KiB/s (KiloBytes/second) (`-1` : No Limit)#limit_upload_speed: -1# <OPTIONAL> Enable Group Upload Speed <bool>: Upload speed limits are applied at the group level. This will take limit_upload_speed defined and divide it equally among the number of torrents in the group.#enable_group_upload_speed: false# <OPTIONAL> cleanup <bool>: WARNING!! Setting this as true Will remove and delete contents of any torrents that satisfies the share limits (max time OR max ratio)#cleanup: false# <OPTIONAL> resume_torrent_after_change <bool>: This variable will resume your torrent after changing share limits. Default is true#resume_torrent_after_change: true# <OPTIONAL> add_group_to_tag <bool>: This adds your grouping as a tag with a prefix defined in settings . Default is true# Example: A grouping defined as noHL will have a tag set to ~share_limit.noHL (if using the default prefix)#add_group_to_tag: true# <OPTIONAL> min_num_seeds <int>: Will prevent torrent deletion by cleanup variable if the number of seeds is less than the value set here.# If the torrent has less number of seeds than the min_num_seeds, the share limits will be changed back to no limits and resume the torrent to continue seeding.# Will default to 0 if not specified for the group.#min_num_seeds: 15# <OPTIONAL> custom_tag <str>: Apply a custom tag name for this particular group. **WARNING (This tag MUST be unique as it will be used to determine share limits. Please ensure it does not overlap with any other tags in qbt)**#custom_tag: sharelimits_IPTKeep:
priority: 1include_any_tags:
- Keepcleanup: falseIPTorrents:
priority: 11include_any_tags:
- IPTorrentsmax_seeding_time: 365dmin_seeding_time: 23dlimit_upload_speed: -1enable_group_upload_speed: falsecleanup: falseresume_torrent_after_change: trueadd_group_to_tag: truemin_num_seeds: 15custom_tag: sharelimits_IPTPublicTrackers:
priority: 30include_any_tags:
- Publiccleanup: falserecyclebin:
# Recycle Bin method of deletion will move files into the recycle bin (Located in /root_dir/.RecycleBin) instead of directly deleting them in qbit# By default the Recycle Bin will be emptied on every run of the qbit_manage script if empty_after_x_days is defined.enabled: true# <OPTIONAL> empty_after_x_days var:# Will automatically remove all files and folders in recycle bin after x days. (Checks every script run)# If this variable is not defined it, the RecycleBin will never be emptied.# WARNING: Setting this variable to 0 will delete all files immediately upon script run!empty_after_x_days: 20# <OPTIONAL> save_torrents var:# If this option is set to true you MUST fill out the torrents_dir in the directory attribute.# This will save a copy of your .torrent and .fastresume file in the recycle bin before deleting it from qbittorrentsave_torrents: false# <OPTIONAL> split_by_category var:# This will split the recycle bin folder by the save path defined in the `cat` attribute# and add the base folder name of the recycle bin that was defined in the `recycle_bin` sub-attribute under directory.split_by_category: falseorphaned:
# Orphaned files are those in the root_dir download directory that are not referenced by any active torrents.# Will automatically remove all files and folders in orphaned data after x days. (Checks every script run)# If this variable is not defined it, the orphaned data will never be emptied.# WARNING: Setting this variable to 0 will delete all files immediately upon script run!empty_after_x_days: 30# File patterns that will not be considered orphaned files. Handy for generated files that aren't part of the torrent but belong with the torrent's filesexclude_patterns:
#- "**/.DS_Store"#- "**/Thumbs.db"#- "**/@eaDir"#- "/data/torrents/temp/**"#- "**/*.!qB"#- "**/*_unpackerred"max_orphaned_files_to_delete: 50apprise:
# Apprise integration with webhooks# Leave Empty/Blank to disable# Mandatory to fill out the url of your apprise API endpointapi_url: #http://apprise-api:8000# Mandatory to fill out the notification url/urls based on the notification services provided by apprise. https://github.com/caronc/apprise/wikinotify_url:
notifiarr:
# Notifiarr integration with webhooks# Leave Empty/Blank to disable# Mandatory to fill out API Keyapikey: ##################################### <OPTIONAL> Set to a unique value (could be your username on notifiarr for example)instance:
webhooks:
# Webhook notifications:# Possible values:# Set value to notifiarr if using notifiarr integration# Set value to apprise if using apprise integration# Set value to a valid webhook URL# Set value to nothing (leave Empty/Blank) to disableerror: #https://mywebhookurl.com/qbt_managerun_start: #notifiarrrun_end: #apprisefunction:
cross_seed: #https://mywebhookurl.com/qbt_managerecheck: #notifiarrcat_update: #apprisetag_update: #notifiarrrem_unregistered: #notifiarrtag_tracker_error: #notifiarrrem_orphaned: #notifiarrtag_nohardlinks: #notifiarrshare_limits: #notifiarrcleanup_dirs: #notifiarr
Describe the Bug
When running qbit_manage to update categories I'm getting a 'list index out of range' error for all torrents. I checked the code and found that this is being caused by the use of 'os.sep' as a separator for urls in qbittorrent.py. In Windows this is causing it to try to split the url using a
\
and target the 3rd entry in the resulting array which only contains 1 item.Config
Logs
https://gist.github.com/CReich02/f369081fa3cfd32c39e2e26f83628a32
Screenshots
No response
Installation
Local
Version Number
4.1.17
What branch are you on?
master
The text was updated successfully, but these errors were encountered: