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.2.tar.gz (9.2 kB view hashes)

Uploaded Source

Built Distribution

donatello_py-1.0.2-py3-none-any.whl (9.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page