Skip to main content

Python wrapper for the revolt.chat API

Project description

Revolt.py

An async library to interact with the https://revolt.chat API.

You can join the support server here and find the library's documentation here.

Installing

You can use pip to install revolt.py. It differs slightly depending on what OS/Distro you use.

On Windows

py -m pip install -U revolt-baidu.py # -U to update

On macOS and Linux

python3 -m pip install -U revolt-baidu.py

Example

More examples can be found in the examples folder.

import revolt
import asyncio

class Client(revolt.Client):
    async def on_message(self, message: revolt.Message):
        if message.content == "hello":
            await message.channel.send("hi how are you")

async def main():
    async with revolt.utils.client_session() as session:
        client = Client(session, "BOT TOKEN HERE")
        await client.start()

asyncio.run(main())

Bot interaction example

class Client(revolt.Client):
    async def on_interaction(
        self, interaction: InteractionEventPayload, message: revolt.Message
    ) -> None:
        logger.info("interaction %s", interaction)
        user = self.get_user(interaction["author_id"])
        await message.channel.send(
            f"Username: {user.name} Your choice is: {interaction['content']} "
        )
        components = message.components
        components[0]["label"] = "edited"
        components[0]["enabled"] = False

        # update the button component's label
        await message.edit(content="edited", components=components)

    async def on_message(self, message: revolt.Message):
        if message.content == "/button":
            await message.channel.send(
                "you have these options",
                components=[
                    Component(
                        type="button",
                        style="color:white; backgroundColor:green; fontSize:16px; fontWeight:400;",
                        label="continue",
                        enabled=True,
                    ),
                    Component(
                        type="button", style="color:green", label="quit", enabled=True
                    ),
                    Component(
                        type="button", style="color:red", label="restart", enabled=False
                    ),
                ],
            )

Stream Message Example

from revolt.stream_handler import StreamGenerator

class Client(revolt.Client):
    def need_reply(self, message: revolt.Message) -> bool:
        message_user = self.get_user(message.author.id)
        is_response = False
        for user in message.mentions:
            if user.id == self.user.id:
                is_response = True

        if message.channel.channel_type == ChannelType.direct_message:
            is_response = True

        return message_user.id != self.user.id and is_response

    async def on_message(self, message: revolt.Message):
        if not self.need_reply(message):
            return

        g = StreamGenerator()

        async def stream_message():
            for i in range(10):
                await g.push_message(f"hello {i}  ")

            # needs to call g.close when generating has been finished
            await g.close()

        asyncio.create_task(stream_message())
        await message.channel.send(stream_generator=g.generator())

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

revolt_baidu.py-0.0.5.tar.gz (49.5 kB view details)

Uploaded Source

Built Distribution

revolt_baidu.py-0.0.5-py3-none-any.whl (70.5 kB view details)

Uploaded Python 3

File details

Details for the file revolt_baidu.py-0.0.5.tar.gz.

File metadata

  • Download URL: revolt_baidu.py-0.0.5.tar.gz
  • Upload date:
  • Size: 49.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.23.3

File hashes

Hashes for revolt_baidu.py-0.0.5.tar.gz
Algorithm Hash digest
SHA256 b94944fc6fce31a758b47a82427ba377fb4d9f3c5998c039d815f6c4c3989141
MD5 b4fa3a10e8bb15e45db490e35b2df590
BLAKE2b-256 0513f087ac64fca30bdba452e6f4bc712b3d7084acabae8e348393c0ee3cba54

See more details on using hashes here.

File details

Details for the file revolt_baidu.py-0.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for revolt_baidu.py-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 cbf36b3c12fd08cf70ae307722b0c32ab5b89b588e9f6d3e64710c1ce211f189
MD5 dd84550c0b7da735345c6d71696b1183
BLAKE2b-256 6dec6a21200258295445385965c3317da7840c8aa2053aff37d4c8d6358c4ec9

See more details on using hashes here.

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