- Add support for torrent status filters
seeding
,moving
,errored
, andchecking
.
- Advertise support for qBittorrent v4.5.2
- Advertise support for qBittorrent v4.5.1
- Remove dependence on qBittorrent authentication cookie being named
SID
- Minor typing fixes
- Support qBittorrent v4.5.0 release
- Add support for
torrents/export
- Implement new
transfer/setSpeedLimitsMode
in place of existingtransfer/toggleSpeedLimitsMode
- Add support for
stopCondition
intorrents/add
- Update typing to be complete, accurate, and shipped with the package
- Advertise support for Python 3.11
- Advertise support for qBittorrent v4.4.5
- Advertise support for qBittorrent v4.4.4
- Comply with enforced HTTP method requirements from qBittorrent
- Remove
PYTHON_
prefix for configuration environment variables
- Add
setuptools
as an explicit dependency forpkg_resources.parse_version()
- Reorder class hierarchy to allow independent MixIn use
- Clean up typing annotations
- Optimize Dictionary and List initializations
- Rename Alias decorator to alias for better conformity
- Implement pre-commit checks
- Advertise support for qBittorrent v4.4.3.1
- Advertise support for qBittorrent v4.4.3
- Revamp GitHub CI
- Reorg
Request
for some more clarity (hopefully)
- Stop advertising support for Python 3.6 (EOL 12/2021)
- Publish to PyPI using API token and cleanup GitHub Action scripts
- Advertise support for qBittorrent v4.4.2
- Advertise support for qBittorrent v4.4.1
- qBittorrent reverted the category dictionary key
savePath
back tosave_path
- Support for qBittorrent v4.4.0
torrents/info
results can now be filtered by a torrent tag- Added new torrent state "Forced Metadata Downloading"
- Support per-torrent/per-category "download folder"
- Stop sending
Origin
andReferer
headers (Fixes #63)
- Close files that are opened and sent to Requests when adding torrents from files
- Enable warnings for tests and explicitly close Requests Sessions to prevent (mostly spurious) ResourceWarnings
- Add Type Hints for all public and private functions, methods, and variables
- Support HTTP timeouts as well as arbitrary Requests configurations
- Advertise support for qBittorrent v4.3.8
- Drop support for Python 3.5
- Support for qBittorrent v4.3.5
torrents/files
includesindex
for each file;index
officially replacesid
butid
will still be populated
- Allow users to force a specific communications scheme with
FORCE_SCHEME_FROM_HOST
(fixes #54)
- Add support for ratio limit and seeding time limit when adding torrents
- Update license in setup to match gpl->mit license change on GitHub
- Replace
TorrentStates.FORCE_DOWNLOAD='forceDL'
withTorrentStates.FORCED_DOWNLOAD='forcedDL'
- Generally refactor
requests.py
so it's better and easier to read - Persist a Requests Session between API calls instead of always creating a new one...small perf benefit
- Move auth endpoints back to a dedicated module
- Since
attrdict
is apparently going to break in Python 3.10 and it is no longer maintained, I've vendored a modified version (fixes #45). - Created
handle_hashes
decorator to hide the cruft of continuing to support hash and hashes arguments
- Support qBittorrent v4.3.3 and Web API v2.7 (...again)
- New
torrents/renameFile
andtorrents/renameFolder
endpoints - Retrieve app api version when needed instead of caching
- Stop verifying and removing individual parameters when they aren't supported
- Support qBittorrent v4.3.2 and Web API v2.7
torrents/add
supports adding torrents with tags viatags
parameterapp/preferences
supports toggling internationalized domain name (IDN) support viaidn_support_enabled
- BREAKING CHANGE: for
torrents/add
,is_root_folder
(orroot_folder
) is superseded bycontent_layout
- For
torrents/delete
,delete_files
now defaults toFalse
instead of required being explicitly passed
- Add support for non-standard API endpoint paths (Fixes #37)
- Allows users to leverage this client when qBittorrent is configured behind a reverse proxy.
- For instance, if the Web API is being exposed at "http://localhost/qbt/", then users can instantiate via
Client(host='localhost/qbt')
and all API endpoint paths will be prefixed with "/qbt".
- For instance, if the Web API is being exposed at "http://localhost/qbt/", then users can instantiate via
- Additionally, the scheme (i.e. http or https) from the user will now be respected as the first choice for which scheme is used to communicate with qBittorrent.
- However, users still don't need to even specify a scheme; it'll be automatically determined on the first connection to qBittorrent.
- Neither of these should be breaking changes, but if you're instantiating with an incorrect scheme or an irrelevant path, you may need to prevent doing that now.
- Support qBittorrent v4.3.1 and Web API v2.6.1
- Path of torrent content now available via
content_path
fromtorrents/info
- Fix support for raw bytes for
torrent_files
intorrents_add()
for Python 3. Fixes #34.
- Support qBittorrent v4.3.0.1 and Web API v2.6
- Due to qBittorrent changes,
search/categories
no longer returns anything andrss/renameRule
works again
- Advertise support for Python 3.9
- Only request
enum34
for Python 2
- Support adding torrents from raw torrent files as bytes or file handles. Fixes #23.
- Introduce
TorrentStates
enum for qBittorrent list of torrent states.
- Update tests and misc small fixes.
- Re-release of v2020.7.5.
- Add RTD documentation.
- Bug fix release. Reorganized code and classes to be more logical.
- Started returning None from many methods that were returning Requests Responses.
- Content-Length header is now explicitly sent as "0" for any POSTs without a body.
- Endpoint input parameters
hash
andhashes
are renamed totorrent_hash
andtorrent_hashes
.hash
andhashes
remain supported. search_uninstall_plugin
now works. search_enable_plugin now supports multiple plugins.Torrent.download_limit
now only return the value instead of a dictionary.Torrent.upload_limit
now works.- Drop advertising Python 2.6 and 3.4 support; add PyPy3 support.
- Implement test suite and CI that can test all supported qBittorrent versions on all pythons.
- Include currently supported qBittorrent version in README. Fixes #11.
- Add support for
rss/markAsRead
andrss/matchingArticles
. Added in v2.5.1. Fixes #10
- Add
stalled()
,stalled_uploading()
, andstalled_downloading()
totorrents.info
interaction. Added in Web API v2.4.1. - Implement torrent file renaming. Added in Web API v2.4.0. Fixes #3.
- Since versioning was botched last release, implement calendar versioning.
- List of files returned from
torrents_files()
now contains file ID inid
.
- Performance gains for responses with payloads...especially for large payloads.
- Fixes #6. Adds support for
SIMPLE_RESPONSES
for the entire client and individual methods.
- Fixes #8. Remove whitespace from in setPreferences requests for older qBittorrent versions.
- Add Python3.8 version for PyPI
- Move project from beta to stable for PyPI
- Make Web API URL derivation more robust...thereby allowing the client to actually work on Python3.8 (#5)
- Allow port to be discretely specified during Client instantiation (#4)
- Enhance request retry logic and expose retry configuration
- Improve organization and clarity of README
- Better document exceptions
- Clarify torrent file handling exceptions better with proper exceptions
- Clean up the request wrapper exception handling
- Fix HTTP 404 handling to find and return problematic torrent hashes
- Round out support for tags with qBittorrent v4.2.0 release
- Remove upper-bound version requirements for
requests
andurllib3
- Support for qBittorrent v4.2.0 release
- Add support for
app/buildInfo
- Add support for
transfer/banPeers
andtorrents/addPeers
- Add support for
torrents/addTags
,torrents/removeTags
,torrents/tags
,torrents/createTags
, andtorrents/deleteTags
- Fix useAutoTMM to autoTMM for
client.torrents_add()
so auto torrent management works - Add support to refresh RSS items introduced in qBittorrent v4.1.8
- Restore python 2 compatibility
- Allow exceptions to be imported directly from package instead of only exceptions module
- Finalized interaction layer interfaces
- Introduced the "interaction layer" for transparent interaction with the qBittorrent API.
- Complete implementation of qBittorrent WebUI API 2.2.
- Each API endpoint is available via the
Client
class. - Automatic re-login is supported in the event of login expiration.