Skip to main content

Discord-Qalib Tests codecov Codacy Badge Python Version Gitmoji PyPI PyPI - Downloads

Discord templating engine built on discord.py, to help separate text of embeds from the source code. Inspired by Flask.


Key Features:

  • use of xml files to hold the various template responses
  • allows for pagination, in an abstract form simplifying the interface in the source code

:gear: Installing:

Python3.8 or higher is required

:test_tube: Tests

To run the tests, run the following command in the root directory:

Windows:

python -m unittest tests -v 

Linux:

python3 -m unittest tests -v

:zap: Usage

This is explained in more detail in the wiki

Wrap expressions that need to evaluated with {}, such as {player.name} or {todays_date}

Sample XML file:

<discord>
    <message key="test_key">
        <embed>
            <title>Test</title>
            <description>Test Description</description>
            <colour>magenta</colour>
            <timestamp format="%Y-%m-%d %H:%M:%S.%f">{todays_date}</timestamp>
            <url>https://www.discord.com</url>
            <fields>
                <field>
                    <name>Test Field</name>
                    <value>Test Text</value>
                </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>
        <view>
            <components>
                <button key="understood_button">
                    <label>Understood</label>
                    <style>success</style>
                </button>
            </components>
        </view>
    </message>
</discord>

using the above xml file, for example, you can create an embed with the following code:

import datetime
from typing import Literal

import discord
from discord.ext import commands

import qalib
from qalib.template_engines import formatter

bot = commands.AutoShardedBot(command_prefix="!", intents=discord.Intents.all())

Messages = Literal["test_key"]


async def acknowledged(interaction: discord.Interaction):
    await interaction.response.send_message("Acknowledged", ephemeral=True)


@bot.command()
@qalib.qalib_context(formatter.Formatter(), "templates/test.xml")
async def test(ctx: qalib.QalibContext[Messages]):
    callables = {"understood_button": acknowledged}

    await ctx.rendered_send("test_key", callables, keywords={
        "todays_date": datetime.datetime.now()
    })

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

discord_qalib-2.5.14.tar.gz (30.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

discord_qalib-2.5.14-py3-none-any.whl (39.6 kB view details)

Uploaded Python 3

File details

Details for the file discord_qalib-2.5.14.tar.gz.

File metadata

  • Download URL: discord_qalib-2.5.14.tar.gz
  • Upload date:
  • Size: 30.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for discord_qalib-2.5.14.tar.gz
Algorithm Hash digest
SHA256 5902cafec5f829e64f58fff8c1352c01bf747d50e01dd38c18aae49de2261f2d
MD5 3804ad9f29da583b0cca0112487d82c7
BLAKE2b-256 17cde945b756bd407df76455fe6028cbcc7086497d66e52c5a85ba5cbfc84e18

See more details on using hashes here.

Provenance

The following attestation bundles were made for discord_qalib-2.5.14.tar.gz:

Publisher: twine-publish.yml on YousefEZ/discord-qalib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file discord_qalib-2.5.14-py3-none-any.whl.

File metadata

  • Download URL: discord_qalib-2.5.14-py3-none-any.whl
  • Upload date:
  • Size: 39.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for discord_qalib-2.5.14-py3-none-any.whl
Algorithm Hash digest
SHA256 67a712fe503566bfd4dc3cc29c26a75acf6c612d4bfc7d707beaa4747f8df75f
MD5 b4badf92ab83244c87f12a99972899e1
BLAKE2b-256 897bde9ba043a6c1285fc7cf3a7fda60a60c52966503d50ae7fdf446b41e1f32

See more details on using hashes here.

Provenance

The following attestation bundles were made for discord_qalib-2.5.14-py3-none-any.whl:

Publisher: twine-publish.yml on YousefEZ/discord-qalib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

2.5.14 This release

2 files

2.5.10

2 files

2.5.9

2 files

2.5.8

2 files

2.5.7

2 files

2.5.6

2 files

2.5.3

2 files

2.5.2

2 files

2.5.1

2 files

2.5.0

2 files

2.4.5

2 files

2.4.4

2 files

2.4.3

2 files

2.4.2

2 files

2.4.1

2 files

2.4.0

2 files

2.3.0

2 files

2.2.3

2 files

2.2.2

2 files

2.2.1

2 files

2.2.0

2 files

2.1.2

2 files

2.1.1

2 files

2.1.0

2 files

2.0.0

2 files

1.0.1

1 file

1.0.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page