pub struct TorrentApi<'a> { /* private fields */ }
Expand description
Main interface for TorBox torrent operations
Provides methods for all torrent-related API calls including:
- Torrent creation and management
- Status and metadata retrieval
- Download link generation
Implementations§
Source§impl<'a> TorrentApi<'a>
impl<'a> TorrentApi<'a>
pub fn new(client: &'a TorboxClient) -> TorrentApi<'a>
Sourcepub async fn create_torrent(
&self,
body: TorrentCreateBody,
) -> Result<ApiResponse<TorrentCreatePayload>, ApiError>
pub async fn create_torrent( &self, body: TorrentCreateBody, ) -> Result<ApiResponse<TorrentCreatePayload>, ApiError>
Creates a torrent under your account
Accepts either a magnet link or torrent file. The torrent will begin downloading once verified, assuming your account has available download slots.
§Arguments
body
- Contains either a magnet link or file path with optional parameters
§Returns
An ApiResponse
with the torrent creation result
Sourcepub async fn list_torrents_query(
&self,
query: ListTorrentsQuery,
) -> Result<ApiResponse<Option<Vec<TorrentStatus>>>, ApiError>
pub async fn list_torrents_query( &self, query: ListTorrentsQuery, ) -> Result<ApiResponse<Option<Vec<TorrentStatus>>>, ApiError>
Gets the user’s torrent list. This gives you the needed information to perform other torrent actions.
This information only gets updated every 600 seconds, or when the Request Update On Torrent request is sent to the relay API.
§Returns
A deserialized ApiResponse
containing the list of torrents.
Sourcepub async fn status_query(
&self,
bypass_cache: bool,
id: u32,
) -> Result<ApiResponse<Option<TorrentStatus>>, ApiError>
pub async fn status_query( &self, bypass_cache: bool, id: u32, ) -> Result<ApiResponse<Option<TorrentStatus>>, ApiError>
Sourcepub async fn info_query(
&self,
hash: String,
timeout: Option<u32>,
) -> Result<ApiResponse<TorrentInfoPayload>, ApiError>
pub async fn info_query( &self, hash: String, timeout: Option<u32>, ) -> Result<ApiResponse<TorrentInfoPayload>, ApiError>
Fetches torrent metadata using a GET request with query parameters.
This is a general-purpose route that takes a torrent hash
and queries the BitTorrent network
for information about it. This data retrieval may take time and will timeout by default after
10 seconds. You may adjust this with the optional timeout
parameter.
This route is cached, so repeated requests for the same torrent hash will return instantly after the first request.
§Arguments
hash
- The torrent info hash to search for.timeout
- Optional timeout in seconds for the request. Defaults to 10 seconds.
§Returns
§Success payload (TorrentInfoPayload
)
Meta(Box<TorrentMeta>)
– full metadata (name, size, file list, …)Message(String)
– informational message (e.g. “not found yet”)
§Errors
Network / JSON errors → ApiError::Transport
success == false
→ ApiError::Failure
Unexpected JSON → ApiError::UnexpectedPayload
Sourcepub async fn info_body(
&self,
body: TorrentInfoBody,
) -> Result<ApiResponse<TorrentInfoPayload>, ApiError>
pub async fn info_body( &self, body: TorrentInfoBody, ) -> Result<ApiResponse<TorrentInfoPayload>, ApiError>
Fetches torrent metadata using a POST request with flexible input types.
This endpoint allows sending a hash
, magnet
link, or a raw torrent file. TorBox will prioritize
the fields in the following order:
hash
takes precedence overmagnet
, which takes precedence overfile
At least one of these fields is required. Only valid torrent files are accepted.
Like the GET route, data is fetched from the BitTorrent network and cached for future requests. The default timeout is 10 seconds but can be customized.
§Arguments
body
- ATorrentInfoBody
struct containinghash
,timeout
, and the source type.
§Returns
A deserialized ApiResponse
containing metadata about the torrent.
Sourcepub async fn request_download_link(
&self,
query: TorrentRequestLinkQuery,
) -> Result<TorrentDownloadResponse, ApiError>
pub async fn request_download_link( &self, query: TorrentRequestLinkQuery, ) -> Result<TorrentDownloadResponse, ApiError>
Requests a download link for a torrent
Links are valid for 3 hours. Once downloading starts, the transfer
can continue indefinitely. Permalinks can and should be created by setting
redirect=true
.
Setting redirect = true
truly helps torbox servers not to be overwhelmed.
§Arguments
query
- Contains torrent ID and download options
§Returns
Either a JSON response or redirect URL
Sourcepub async fn control_torrent(
&self,
body: TorrentControlBody,
) -> Result<ApiResponse<()>, ApiError>
pub async fn control_torrent( &self, body: TorrentControlBody, ) -> Result<ApiResponse<()>, ApiError>
Sourcepub async fn export_data_query(
&self,
torrent_id: u32,
data_type: TorrentExportType,
) -> Result<TorrentExportResponse, ApiError>
pub async fn export_data_query( &self, torrent_id: u32, data_type: TorrentExportType, ) -> Result<TorrentExportResponse, ApiError>
Exports the magnet or torrent file.
Requires a type to be passed. If type is magnet, it will return a JSON response with the magnet as a string in the data key.
If type is file, it will return a bittorrent file as a download. Not compatible with cached downloads.
Trait Implementations§
Source§impl<'a> NamedType for TorrentApi<'a>
impl<'a> NamedType for TorrentApi<'a>
fn sid() -> SpectaID
Source§fn named_data_type(
type_map: &mut TypeCollection,
generics: &[DataType],
) -> NamedDataType
fn named_data_type( type_map: &mut TypeCollection, generics: &[DataType], ) -> NamedDataType
Source§fn definition_named_data_type(type_map: &mut TypeCollection) -> NamedDataType
fn definition_named_data_type(type_map: &mut TypeCollection) -> NamedDataType
Source§impl<'a> Type for TorrentApi<'a>
impl<'a> Type for TorrentApi<'a>
Source§fn inline(type_map: &mut TypeCollection, generics: Generics<'_>) -> DataType
fn inline(type_map: &mut TypeCollection, generics: Generics<'_>) -> DataType
Source§fn reference(type_map: &mut TypeCollection, generics: &[DataType]) -> Reference
fn reference(type_map: &mut TypeCollection, generics: &[DataType]) -> Reference
definition
will be put into the type map.