Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

catbox-uploader

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

catbox-uploader

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

  • 2.9
  • PyPI
  • Socket score

Maintainers
1

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.

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc