diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..da2fcf2 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,29 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## UNRELEASED (YYYY-MM-DD) + +## Version 0.2.0 (2025-08-27) + +This is a small release focusing on listing torrent files from API, and supporting the latest QBittorrent releases. + +### Added + +- `QBittorrentClient` now implements `Debug` +- `QBittorrentClient::get_files` lists files in given torrent (only Bittorrent v1 supported at the moment) +- the hightorrent crate is now directly re-exported to avoid version mismatch + +### Changed + +- **Breaking change:** QBittorrent API v2.12 is now the minimum supported API version, despite being still + undocumented upstream at the time of writing ([upstream pull request](https://github.com/qbittorrent/wiki/pull/29)) + +## Version 0.1.0 (2025-03-23) + +### Added + +- Initial release diff --git a/Cargo.toml b/Cargo.toml index a9dabdc..464539d 100755 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,13 +1,14 @@ [package] name = "hightorrent_api" description = "Highlevel torrent API client, supporting Bittorrent v1, v2 and hybrid torrents" -version = "0.1.0" +version = "0.2.0" edition = "2024" authors = [ "angrynode " ] documentation = "https://docs.rs/hightorrent_api" keywords = [ "torrent", "magnet", "bittorrent", "qbittorrent" ] readme = "README.md" license = "AGPL-3.0-only" +repository = "https://github.com/angrynode/hightorrent_api" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -16,7 +17,7 @@ default = [ "qbittorrent" ] qbittorrent = [ "reqwest" ] [dependencies] -# hightorrent = { version = "0.2", path = "../hightorrent" } +# hightorrent = { version = "0.3", path = "../hightorrent-upstream" } hightorrent = { git = "https://github.com/angrynode/hightorrent" } tokio = { version = "1", features = [ "fs" ] } tokio-util = { version = "0.7" } diff --git a/README.md b/README.md index 0abcfab..2880313 100755 --- a/README.md +++ b/README.md @@ -31,14 +31,14 @@ for torrent in client.list().await? { ### QBittorrent notes -The QBittorrent API exists, but is fragile... +The QBittorrent API exists, but is fragile... As a result, only the latest versions of QBittorrent are supported for the moment. - sometimes returns JSON, sometimes plaintext - may return HTTP 200 "Fails", or 400 "Bad Request" - does not return the same information in list/get endpoints (issue [#18188](https://github.com/qbittorrent/qBittorrent/issues/18188)) - behaves unexpectedly with v2/hybrid hashes (issue [#18185](https://github.com/qbittorrent/qBittorrent/issues/18185)) - [sometimes changes methods](https://github.com/qbittorrent/qBittorrent/issues/18097#issuecomment-1336194151) on endpoints without bumping the API version to a new major (semantic versioning) -- may change form field names in API [without updating the docs](https://github.com/qbittorrent/qBittorrent/pull/20532) +- may change form field names in API [without updating the docs](https://github.com/qbittorrent/qBittorrent/pull/20532) ([upstream docs PR](https://github.com/qbittorrent/wiki/pull/29)) Bittorrent v2 is only supported since v4.4.0 release (January 6th 2022). diff --git a/src/lib.rs b/src/lib.rs index 58936ff..f009bf6 100755 --- a/src/lib.rs +++ b/src/lib.rs @@ -30,14 +30,14 @@ //! //! ## QBittorrent notes //! -//! The QBittorrent API exists, but is fragile... +//! The QBittorrent API exists, but is fragile... As a result, only the latest versions of QBittorrent are supported for the moment. //! //! - sometimes returns JSON, sometimes plaintext //! - may return HTTP 200 "Fails", or 400 "Bad Request" //! - does not return the same information in list/get endpoints (issue [#18188](https://github.com/qbittorrent/qBittorrent/issues/18188)) //! - behaves unexpectedly with v2/hybrid hashes (issue [#18185](https://github.com/qbittorrent/qBittorrent/issues/18185)) //! - [sometimes changes methods](https://github.com/qbittorrent/qBittorrent/issues/18097#issuecomment-1336194151) on endpoints without bumping the API version to a new major (semantic versioning) -//! - may change form field names in API [without updating the docs](https://github.com/qbittorrent/qBittorrent/pull/20532) +//! - may change form field names in API [without updating the docs](https://github.com/qbittorrent/qBittorrent/pull/20532) ([upstream docs PR](https://github.com/qbittorrent/wiki/pull/29)) //! //! Bittorrent v2 is only supported since v4.4.0 release (January 6th 2022). //! diff --git a/src/qbittorrent/api.rs b/src/qbittorrent/api.rs index 294256b..8d53155 100755 --- a/src/qbittorrent/api.rs +++ b/src/qbittorrent/api.rs @@ -17,7 +17,7 @@ use crate::{ qbittorrent::{QBittorrentTorrent, QBittorrentTorrentContent, QBittorrentTracker}, }; -#[derive(Clone)] +#[derive(Clone, Debug)] pub struct QBittorrentClient { host: String, user: String,