Skip to main content

An unofficial Python SDK for SonicBit which uses the internal API to interact with the application.

Project description

SonicBit Python SDK

An unofficial Python SDK for SonicBit which uses the internal API to interact with the application.

[!WARNING]
This SDK is provided as-is and is not officially supported by Sonicbit. The author is not responsible for any damages or losses caused by the use of this SDK. Use it at your own risk. Please use it responsibly and with the understanding that it may not be fully functional or reliable. Check Sonicbit's terms of service for more information.

Installation

Install the package using pip:

pip install sonicbit

Install bleeding edge version:

pip install git+https://github.com/viperadnan-git/sonicbit-python-sdk.git

Usage

[!IMPORTANT]
This SDK is still in development and may not be fully functional. Please report any issues or bugs you encounter. The below documentation is generated by AI and is subject to change as the SDK evolves.

To use the SDK, you need to create an instance of the SonicBit class and provide your email and password:

from sonicbit import SonicBit

sb = SonicBit(email='your_email@example.com', password='your_password')

Once you have an instance of SonicBit, you can use its various methods to interact with the application. For example, to list the files in your storage:

files = sb.list_files()
print(files)

Token Handling

By default, the SDK will store your authentication token in a file named .sonicbit.cache in the current working directory. If you want to specify a different location for the token file, you can pass a token_handler argument to the SonicBit constructor:

sb = SonicBit(email='your_email@example.com', password='your_password', token_handler=MyTokenHandler())

The token_handler should implement the following methods:

  • read(email: str) -> str | None: Reads the token for the given email from the token file.
  • write(email: str, token: str) -> None: Writes the token for the given email to the token file.

The token_handler is optional and will default to a TokenFileHandler if not provided.

[!TIP]
You can use the BaseTokenHandler class to store and update tokens in a database or other storage mechanism. Simply implement the read and write methods and pass an instance of your custom class to the SonicBit constructor. This will allow you to store tokens in a secure location and easily update them as needed.

User Module

The User module provides methods for interacting with the user's account, such as getting their user details and storage details.

User Details

To get the user's details, you can use the get_user_details method:

details = sb.get_user_details()
print(details)

This will print a UserDetails object containing information about the user's account, such as their email, plan name, and more.

Storage Details

To get the storage details, you can use the get_storage_details method:

details = sb.get_storage_details()
print(details)

This will print a StorageDetails object containing information about the user's storage, such as their total storage size, free space, and more.

Clear Storage

To clear the user's storage, you can use the clear_storage method:

success = sb.clear_storage()
print(success)

This will return True if the storage was successfully cleared, or False if there was an error.

Torrent Management

The Torrent module provides methods for interacting with the user's torrents, such as adding, listing, and deleting torrents.

Add Torrent

To add a torrent, you can use the add_torrent method:

torrents = sb.add_torrent("https://example.com/torrent.torrent")
print(torrents)

This will return a list of torrent hashes that were added.

List Torrents

To list the user's torrents, you can use the list_torrents method:

torrents = sb.list_torrents()
print(torrents)

This will print a TorrentList object containing information about each torrent in the user's storage, such as the torrent name, hash, size, progress, and more.

Get Torrent Details

To get the details of a torrent, you can use the get_torrent_details method:

details = sb.get_torrent_details("hash")
print(details)

This will print a TorrentDetails object containing information about the torrent, such as the files it contains, the download rate, and more.

Delete Torrent

To delete a torrent, you can use the delete_torrent method:

success = sb.delete_torrent("hash")
print(success)

This will return True if the torrent was successfully deleted, or False if there was an error.

Remote Download Management

The RemoteDownload module provides methods for interacting with the user's remote downloads, such as adding, listing, and deleting remote downloads.

Add Remote Download

To add a remote download, you can use the add_remote_download method:

success = sb.add_remote_download("https://example.com/file.torrent", PathInfo.root())
print(success)

This will return True if the remote download was successfully added, or False if there was an error.

List Remote Downloads

To list the user's remote downloads, you can use the list_remote_downloads method:

downloads = sb.list_remote_downloads()
print(downloads)

This will print a RemoteTaskList object containing information about each remote download in the user's storage, such as the download URL, progress, and more.

Delete Remote Download

To delete a remote download, you can use the delete_remote_download method:

success = sb.delete_remote_download(id)
print(success)

This will return True if the remote download was successfully deleted, or False if there was an error.

File Management

The File module provides methods for interacting with the user's files, such as listing, deleting, and moving files.

List Files

To list the user's files, you can use the list_files method:

files = sb.list_files()
print(files)

This will print a FileList object containing information about each file in the user's storage, such as the file name, size, and more.

Delete File

To delete a file, you can use the delete_file method:

success = sb.delete_file("path/to/file")
print(success)

This will return True if the file was successfully deleted, or False if there was an error.

Contributing

Contributions are welcome! If you find a bug or have a suggestion for a new feature, please open an issue or submit a pull request on the GitHub repository.

License

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for more details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sonicbit-0.1.0.tar.gz (23.6 kB view details)

Uploaded Source

Built Distribution

sonicbit-0.1.0-py3-none-any.whl (28.6 kB view details)

Uploaded Python 3

File details

Details for the file sonicbit-0.1.0.tar.gz.

File metadata

  • Download URL: sonicbit-0.1.0.tar.gz
  • Upload date:
  • Size: 23.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for sonicbit-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3fb1fed921e3a267ae9e361134e969faf8e0532c0301deb8d59525c075c9984b
MD5 d1b67a4c0b7b22317cd2bea0f7911696
BLAKE2b-256 f469ef894955fd77d52acbd3c1820bc9a81b85ea7f630edfbb107497360b9f3a

See more details on using hashes here.

File details

Details for the file sonicbit-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: sonicbit-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 28.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.5

File hashes

Hashes for sonicbit-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1858386e2a5e14208839994bfa695d238ebe0622d19e7db88a2f3144f6b3fec7
MD5 96ea3821fcaf493bbbbc6fbb125184ab
BLAKE2b-256 55ed587161a77cdac705b3d7ff59ea2c556f2f9d8299663c75bc0fa09e3755f3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page