MeowBox — Permanent file hosting uploader (sync & async)
Project description
meowbox
permanent file hosting — files never expire. by badmunda · github
a python library for uploading files to meowbox. supports both sync and async out of the box.
install
pip install meowbox
how to use
basic sync upload
from meowbox import upload
urls = upload("photo.jpg")
print(urls[0])
# https://files.tgvibes.online/AbCdEfGh.jpg
async upload
from meowbox import upload_async
urls = await upload_async("photo.jpg")
print(urls[0])
class-based usage
from meowbox import MeowBox
mb = MeowBox()
# sync
urls = mb.upload("photo.jpg")
# async
urls = await mb.upload_async("photo.jpg")
upload multiple files
from meowbox import upload
urls = upload(["file1.jpg", "file2.mp4", "file3.pdf"])
for url in urls:
print(url)
upload from a file object
from meowbox import upload_async
path = await message.download()
urls = await upload_async(path)
await message.reply(urls[0])
telegram bot example
from meowbox import upload_async
import os
async def upload_handler(message):
if not message.reply_to_message or not message.reply_to_message.media:
await message.reply("reply to a file!")
return
path = await message.reply_to_message.download()
try:
urls = await upload_async(path)
await message.reply(f"✅ {urls[0]}")
except Exception as e:
await message.reply(f"❌ upload failed: {e}")
finally:
if os.path.exists(path):
os.remove(path)
error handling
| exception | when |
|---|---|
UploadError |
upload failed (server error) |
RateLimitError |
too many requests |
MeowBoxException |
base exception class |
from meowbox import upload
from meowbox.exceptions import UploadError, RateLimitError
try:
urls = upload("file.jpg")
except RateLimitError as e:
print(f"slow down! retry after {e.retry_after}s")
except UploadError as e:
print(f"upload failed: {e}")
api reference
| method | description |
|---|---|
upload(f, base_url=...) |
sync upload — accepts path, file object, or list |
upload_async(f, base_url=...) |
async upload using httpx |
MeowBox(base_url=...) |
class with .upload() and .upload_async() methods |
links
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
meowbox-1.5.tar.gz
(5.4 kB
view details)
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
meowbox-1.5-py3-none-any.whl
(7.1 kB
view details)
File details
Details for the file meowbox-1.5.tar.gz.
File metadata
- Download URL: meowbox-1.5.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfd68fa411127ed4320d9361f4dc055a118de585c8a6f2039b49b079b6714f95
|
|
| MD5 |
e4d94ecbe07577f1d97057148cc1ed20
|
|
| BLAKE2b-256 |
265cb8110ea07a71dce23e0b23b24d29790f5d34451ef6f4085d96f2e0a71b0b
|
File details
Details for the file meowbox-1.5-py3-none-any.whl.
File metadata
- Download URL: meowbox-1.5-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9650dc7ac252467e7364ad6337116a2a52bbec792e12be76a182ea3309c278ff
|
|
| MD5 |
2f1630f65c22cea39afc0aaf8a74aa79
|
|
| BLAKE2b-256 |
ceddd092eba704168493d4677cbcb97840380d1f0ca0c247e71425443d862774
|