A asynchronous/synchronous python wrapper for the Donatello API.
Project description
✨ Features
- Full type hints
- Client info
- Get donates
- Get clients
- Long polling
- Async support
🔗 Installation
pip install donatello-py
For speedup:
pip install donatello-py[speed]
🧑🏭 Basic Usage
Get and activate your API key here.
⛓️ Sync
from donatello import Donatello
client = Donatello("YOUR_API_KEY")
# Get client info
print(client.get_me())
# Get donates
print(client.get_donates(page=0, per_page=00))
# Get clients
print(client.get_clients())
⛓️ Async
from donatello import AsyncDonatello
client = AsyncDonatello("YOUR_API_KEY")
async def main():
print(await client.get_me())
print(await client.get_donates(page=0, per_page=00))
print(await client.get_clients())
asyncio.run(main())
🥏 Long polling
For use long polling you need to create widget here and get widget id from url.
Example url:
https://donatello.to/widget/<WIDGET_ID>/token/<YOUR_API_KEY>
Code example
⛓️ Sync
from donatello import Donatello
from donatello.models import Donate, User
client = Donatello("YOUR_API_KEY", "WIDGET_ID")
@client.on_ready
def start(user: User):
print(f"Started with user {user.nickname}")
print(f"Donates Amount: {user.donates.total_amount}")
print(f"Donates count: {user.donates.total_count}")
@client.on_donate
def donate(donate: Donate):
print(donate)
client.start()
⛓️ Async
from donatello import AsyncDonatello
from donatello.models import Donate, User
client = AsyncDonatello("YOUR_API_KEY", "WIDGET_ID")
@client.on_donate
async def donate(donate):
print(f"Donator: {donate.nickname}")
print(f"Amount: {donate.amount} {donate.currency} / {donate.goal_amount} {donate.goal_currency}")
print(f"Message: {donate.message}")
@client.on_ready
async def ready(user):
print(user)
client.start()
📚 Docs
You can find docs here.
📝 Examples
You can find more examples here.
📄 License
📋 TODO
-
Add more examples
-
Add docs
-
Add tests
-
Websocket based long polling
-
Goal, Top, interactive widgets?Never
🤝 Contributing
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
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 donatello_py-1.0.3.tar.gz.
File metadata
- Download URL: donatello_py-1.0.3.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca0568a88d20ae02572949160403274494c3c33c739be3f097a31e3a42ccd7eb
|
|
| MD5 |
3ea2db8c86ceebb4370d8f642f3621f3
|
|
| BLAKE2b-256 |
989c42d63d824e64f2752146a2cfae675fd942c708b090a85aad41d990d6769f
|
File details
Details for the file donatello_py-1.0.3-py3-none-any.whl.
File metadata
- Download URL: donatello_py-1.0.3-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4081b92614d8dc4996cc6b9a1b00af7f8e00d071d6f887ed3ccec358669fa74
|
|
| MD5 |
7edd924a33fccd0230ba8aac42e4a30c
|
|
| BLAKE2b-256 |
22259adb4e88f73a7596ca4fd3d08a40dfe7f30a8efc01a747bb1c4e48355eca
|