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
for com in components:
if isinstance(com, ButtonComponent):
com.label = "edited"
com.enabled = False
elif isinstance(com, StatusComponent):
com.label = "new status"
# 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=[
ButtonComponent(
style="color:white; backgroundColor:green; fontSize:16px; fontWeight:400;",
label="continue",
enabled=True,
),
LineBreakComponent(),
StatusComponent(label="this is status window"),
],
)
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
Release history Release notifications | RSS feed
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.11.tar.gz
(50.2 kB
view details)
Built Distribution
File details
Details for the file revolt_baidu.py-0.0.11.tar.gz
.
File metadata
- Download URL: revolt_baidu.py-0.0.11.tar.gz
- Upload date:
- Size: 50.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.23.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a2e9a2353485f078afec8fca80fb310cf4f34d2d088f9e4315b9bed02170194 |
|
MD5 | ff26d821df454461104deaf081b50822 |
|
BLAKE2b-256 | 538fd4448e825a9b762415b524df8a1bd8e40bc851668259763b7ce8c452ae55 |
File details
Details for the file revolt_baidu.py-0.0.11-py3-none-any.whl
.
File metadata
- Download URL: revolt_baidu.py-0.0.11-py3-none-any.whl
- Upload date:
- Size: 71.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.23.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aece006cbcc2b21ec95b98e990d9fec9a988c0c04118dd8bea5e44f98d1c9661 |
|
MD5 | f3361137f885be4869cade79f3000215 |
|
BLAKE2b-256 | 3b038515c07bce8e3e90fb4d732485a572c75cdefc7e02b4bf255fe580ed7111 |