Skip to main content

A simple Python library to upload files and URLs to Catbox.moe

Project description

Catbox Uploader

Catbox Uploader is a simple Python library to upload files and URLs to Catbox.moe, including its temporary storage feature, Litterbox, and album management.

Installation

pip install catbox-uploader

Usage

Using Userhash

CatboxUploader supports using a userhash directly. You can pass the userhash when initializing the CatboxUploader and use it for authenticated uploads and album management.

Initialize with Userhash

from catbox import CatboxUploader

uploader = CatboxUploader(userhash='your_userhash_here')

Initialize without Userhash

from catbox import CatboxUploader

uploader = CatboxUploader()

Upload a File

link = uploader.upload_file('path/to/your/file.jpg')
print(f'Uploaded file: {link}')

Upload a File to Litterbox (Temporary Storage)

Litterbox allows you to upload files for a temporary period, after which the files will be deleted automatically. Use the upload_to_litterbox method to upload files with a specified expiration time.

Available expiration times:

  • 1h: 1 hour
  • 12h: 12 hours
  • 24h: 24 hours
  • 72h: 3 days
link = uploader.upload_to_litterbox('path/to/your/file.jpg', time='24h')
print(f'Uploaded file (available for 24 hours): {link}')

Upload Multiple Files as an Album

You can upload multiple files as an album to Catbox.moe using the upload_album method. This allows you to upload several files at once, and it will return the links for all uploaded files.

file_paths = ['file1.jpg', 'file2.jpg', 'file3.jpg']
links = uploader.upload_album(file_paths)
for link in links:
    print(f'Uploaded file link: {link}')

Create and Manage Albums

Create an Album

You can create an album with uploaded files, a title, and a description using the create_album method:

album_shortcode = uploader.create_album(file_links, "My Album", "This is a test album")
print(f"Album created: https://catbox.moe/c/{album_shortcode}")

Edit an Album

You can edit an album by changing its title, description, or the files it contains:

uploader.edit_album(album_shortcode, file_links, "Updated Album Title", "Updated description")

Delete an Album

You can delete an album by its shortcode:

uploader.delete_album(album_shortcode)

Error Handling

The library comes with built-in exception handling to manage common errors such as timeouts, connection issues, or HTTP errors.

Handling Timeout

If the upload takes too long and exceeds the specified timeout, a TimeoutError will be raised.

from catbox import CatboxUploader, TimeoutError

uploader = CatboxUploader(userhash='your_userhash_here')
try:
    link = uploader.upload_file('path/to/your/file.jpg', timeout=10)
    print(f'Uploaded file: {link}')
except TimeoutError:
    print("The upload took too long and timed out.")

Handling Connection Issues

If there's a problem connecting to the Catbox.moe or Litterbox server, a ConnectionError will be raised.

from catbox import CatboxUploader, ConnectionError

uploader = CatboxUploader(userhash='your_userhash_here')
try:
    link = uploader.upload_file('path/to/your/file.jpg')
    print(f'Uploaded file: {link}')
except ConnectionError:
    print("Failed to connect to the server.")

Handling HTTP Errors

In case of HTTP errors (such as 404 or 500), an HTTPError will be raised.

from catbox import CatboxUploader, HTTPError

uploader = CatboxUploader(userhash='your_userhash_here')
try:
    link = uploader.upload_file('path/to/your/file.jpg')
    print(f'Uploaded file: {link}')
except HTTPError as he:
    print(f"HTTP error occurred: {he}")

License

This project is licensed under the MIT License. See the LICENSE file for 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

catbox_uploader-2.9.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

catbox_uploader-2.9-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file catbox_uploader-2.9.tar.gz.

File metadata

  • Download URL: catbox_uploader-2.9.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for catbox_uploader-2.9.tar.gz
Algorithm Hash digest
SHA256 b4ee423acd3397dfb14e937ce76aeaa5e304de497ceb21f9cd0f771ff736ad9a
MD5 fcabbabfb39dab1bbb29bd71df8ddb1e
BLAKE2b-256 2bee2fa66d2b74cfb2ea00cb0155e57f9bb1ef77e7ee21f0f9470a31cf1c9452

See more details on using hashes here.

File details

Details for the file catbox_uploader-2.9-py3-none-any.whl.

File metadata

  • Download URL: catbox_uploader-2.9-py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for catbox_uploader-2.9-py3-none-any.whl
Algorithm Hash digest
SHA256 2ec8a349f917bfd5ed485ac368420a148012e46e5d77a355e887cadf09e7a4c1
MD5 b0382f13b4450344109df20f4798f4a3
BLAKE2b-256 9b2aa27d58819333904d3f138595364d559d0cbe22139c9a15c8a40d5140c73d

See more details on using hashes here.

Supported by

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