Skip to content
/ Pyre Public

Pyre is a fast and stable-ish WIP wrapper for revolt.chat

Notifications You must be signed in to change notification settings

siren15/Pyre

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 

Repository files navigation

Pyre

A Revolt.chat API bot wrapper

This wrapper is a WIP. Pyre is a fast and stable-ish wrapper for revolt.

I want to achieve a wrapper that will be stable, easy to use and understand.

What works?

  • Caching and cache management of servers, users, members, roles, channels
  • Raw methods for interacting with the API I deemed neccessary
  • Recieving events from the API
  • Sending messages, embeds, uploading to the API
  • Basic Command system

What needs to be done?

  • Adding methods to models
  • Proper rate limiting and rate limit prevention
  • Documentation
  • Extension system
  • Improvements, making stuff more efficient
  • More stuff, idk...

Example usage: Python 3.10+ needed.

import pyre.models as models
from pyre import PyreClient
import os

bot = PyreClient(os.getenv('token'), ["!", "+"])


@bot.listen()
async def on_ready():
    print(f'{bot.user.username} fed to the Pyre!')
    latency = await bot.latency() * 1000
    print(f"Bot's latency: {latency:.0f}ms")


@bot.listen() # you can create listeners by writing the event name as the function name
async def message_create(message: models.Message):
    if message.content == '+ina' and message.author.bot is False:
        embed = models.Embed()
        embed.title = "INA"
        embed.icon_url = "https://media.tenor.com/images/3b4e1e628bb5778cc1b27b66a3f6b5d3/tenor.gif"
        embed.media = 'tenor-3608348314.gif'
        embed.description = "INA"
        embed.colour = "#6d5f7b"
        await message.channel.send(embed=embed)


@bot.listen(models.MessageUpdate) # or you can specify which event to listen to by providing the appropriate model - and have any function name (the preferred method)
async def udpate_message(message: models.MessageUpdate):
    print(message.before)
    print(message.after)

@bot.listen(models.ServerRoleCreate)
async def memupd(event: models.ServerRoleCreate):
    print(event.before)
    print(event.after)

@bot.command()
async def repeat(ctx: models.CommandContext, text:str):
    await ctx.reply(text)

bot.start()

About

Pyre is a fast and stable-ish WIP wrapper for revolt.chat

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages