Execute your bot's commands from the console!
Project description
⌨️
Guilded.py console
[!NOTE] Guilded.py console is a fork of Discord.py Console but has been completely rewritten. The only file that uses
discord.py-Console
's source code is__init__.py
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 import console_commands
client = ConsoleClient(
features=guilded.ClientFeatures(official_markdown=True),
)
# can also do "bot = ConsoleBot", see tests/test.py
@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: console_commands.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.2.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba183709e12e08a74563194153441dd4fccd5a03a886b15afc833515a4046bd1 |
|
MD5 | 6f91e148f451dc0469a314f64e5b01f2 |
|
BLAKE2b-256 | a2a88933223d6d228b73d8c52354141339a51d597096cf486ba6f07c0c22109c |