-
Notifications
You must be signed in to change notification settings - Fork 1
2. XML Rendering
Yousef Z edited this page Dec 26, 2022
·
26 revisions
This is the main way to use 🃏 Qalib. You must have a <discord>
tag that spans the entire document, as it is treated as the root of the ElementTree.
You can then have multiple embeds which are each contained in a <embed>
tag, and must have a key
attribute that uniquely identifies them among the other embed keys, and is written as <embed key="key_name">
.
To render values dynamically, simply put them in between braces, and the renderer will format it when you use the context's rendered_send()
method, as seen in the next section.
It is safe to skip any non-mandatory fields that an embed would not require, they will simply use their default values.
<discord>
<embed key="test_key">
<title>Test Title</title>
<description>Test Description</description>
<type>rich</type>
<colour>magenta</colour>
<timestamp format="%d-%m%-Y">22-04-2023</timestamp>
<url>https://www.discord.com</url>
<fields>
<field>
<name>Test Field</name>
<text>Test Text</text>
</field>
</fields>
<footer>
<text>Test Footer</text>
<icon>https://cdn.discordapp.com/embed/avatars/0.png</icon>
</footer>
<thumbnail>https://cdn.discordapp.com/embed/avatars/0.png</thumbnail>
<image>https://cdn.discordapp.com/embed/avatars/0.png</image>
<author>
<name>{author_name}</name>
<icon>https://cdn.discordapp.com/embed/avatars/0.png</icon>
<url>https://discordapp.com</url>
</author>
</embed>
<embed key="test_key2">
<title>Test</title>
<description>Test Description</description>
<type>rich</type>
<colour>magenta</colour>
<timestamp format="%d-%m%-Y">22-04-2023</timestamp>
<url>https://www.discord.com</url>
<fields>
<field>
<name>Test Field</name>
<text>Test Text</text>
</field>
</fields>
<footer>
<text>Test Footer</text>
<icon>https://cdn.discordapp.com/embed/avatars/0.png</icon>
</footer>
<thumbnail>https://cdn.discordapp.com/embed/avatars/0.png</thumbnail>
<image>https://cdn.discordapp.com/embed/avatars/0.png</image>
<author>
<name>Test Author</name>
<icon>https://cdn.discordapp.com/embed/avatars/0.png</icon>
<url>https://discordapp.com</url>
</author>
</embed>
</discord>
For the purpose of this example, we store this file in templates/test.xml
import discord
from discord.ext import commands
import qalib
bot = commands.AutoShardedBot(command_prefix="!", intents=discord.Intents.all())
@bot.command()
@qalib.embed_manager("templates/test.xml")
async def test(ctx, name: str):
await ctx.rendered_send("test_key", keywords={
"author_name": str
})
🃏 Discord-Qalib 2023