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 hour12h: 12 hours24h: 24 hours72h: 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4ee423acd3397dfb14e937ce76aeaa5e304de497ceb21f9cd0f771ff736ad9a
|
|
| MD5 |
fcabbabfb39dab1bbb29bd71df8ddb1e
|
|
| BLAKE2b-256 |
2bee2fa66d2b74cfb2ea00cb0155e57f9bb1ef77e7ee21f0f9470a31cf1c9452
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ec8a349f917bfd5ed485ac368420a148012e46e5d77a355e887cadf09e7a4c1
|
|
| MD5 |
b0382f13b4450344109df20f4798f4a3
|
|
| BLAKE2b-256 |
9b2aa27d58819333904d3f138595364d559d0cbe22139c9a15c8a40d5140c73d
|