Execute your bot's commands from the console!
Project description
⌨️
Guilded.py console
[!NOTE] Guilded.py console is a fork of Discord.py Console and uses its source code.
Guilded.py console is a CLI for your Guilded.py bot, with Guilded.py console you can run commands right from your console!
📥
Installation
🪟
Windows
py -3 -m pip install gpy-console
🍎
Linux/macOS
python3 -m pip install gpy-console
⚙️
Example
The implementation is similar to the regular commands in guilded.py. Just implement the gpy-console like this:
import guilded
from gpyConsole import ConsoleClient
from gpyConsole.context import Context
client = ConsoleClient(
features=guilded.ClientFeatures(official_markdown=True),
)
@client.event
@bot.event
async def on_ready():
print(f"Logged in as {bot.user}")
if not bot._console_running:
bot.start_console()
@client.console_command()
async def hey(
ctx: Context, # Modified Console Context with less features (.reply and .send are the same)
channel: guilded.ChatChannel,
user: guilded.User,
): # Library automatically converts type annotations, just like in guilded.py
# Missing converters: guilded.Role, guilded.Member, guilded.ChatMessage, guilded.Attachments
await ctx.reply(f"Sending message to {user.name} (id: {user.id})")
await channel.send(
f"Hello from Console! I'm {client.user.name}, and you are {user.mention}"
)
client.run(
"gapi_token"
)
To execute the mentioned command run hey <valid_channel_id> <valid_user_id>
.
🔗
Links
No links currently
gpyConsole: things to know
The console has to be started manually. Try something like this:
@bot.event
async def on_ready():
print(f"Logged in as {bot.user}")
if not bot._console_running:
bot.start_console()
Missing Converters
Any converter that relies on the local server will not be available. This includes:
- guilded.Role
- guilded.Member
- guilded.ChatMessage
- guilded.Attachment
New Events
New events were added that are accessible like any other guilded.py event.
on_console_command_completion
on_console_command
on_console_command_error
on_console_message
Console Cogs
All cogs should be replaced with a ConsoleCog; it implements guilded.py's Cog feature so it will work the same.
from gpyConsole import console_commands
from guilded.ext import commands
class ExampleCog(console_commands.ConsoleCog):
def __init__(self, bot: console_commands.ConsoleBot):
self.bot = bot
@console_commands.console_command()
async def hello(self, ctx: console_commands.Context):
return await ctx.reply("Hello from cog!")
@commands.command()
async def wow(self, ctx: commands.Context):
await ctx.send("Wow! Cog worked!")
def setup(bot: console_commands.ConsoleBot):
bot.add_cog(ExampleCog(bot))
You can stop the console
if bot._console_running:
bot.stop_console()
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
Built Distribution
Hashes for gpy_console-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67d243a29bb62f1cdc9c0493bbd4c53f0d49ebd625ced5e799c172c187b0ebb1 |
|
MD5 | 244eaca88abcda27597bcf64c7d298ba |
|
BLAKE2b-256 | c2db8971fff5dffa66e89428935b4979aeffdd42d69a86c8ff805b5bc5e00ece |