Skip to main content

A asynchronous/synchronous python wrapper for the Donatello API.

Project description

Donatello-py logo
PyPi Version PyPi Python versions
Read the Docs PyPi Downloads PyPi License

🐍 Python wrapper for the Donatello API.

✨ 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

MIT

📋 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

donatello_py-1.0.3.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

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

donatello_py-1.0.3-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

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

Hashes for donatello_py-1.0.3.tar.gz
Algorithm Hash digest
SHA256 ca0568a88d20ae02572949160403274494c3c33c739be3f097a31e3a42ccd7eb
MD5 3ea2db8c86ceebb4370d8f642f3621f3
BLAKE2b-256 989c42d63d824e64f2752146a2cfae675fd942c708b090a85aad41d990d6769f

See more details on using hashes here.

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

Hashes for donatello_py-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b4081b92614d8dc4996cc6b9a1b00af7f8e00d071d6f887ed3ccec358669fa74
MD5 7edd924a33fccd0230ba8aac42e4a30c
BLAKE2b-256 22259adb4e88f73a7596ca4fd3d08a40dfe7f30a8efc01a747bb1c4e48355eca

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