Skip to content

A library rich with many image generation funcitons powered by PIL for your discord bot such as ranking, welcome card and meme generation!

Notifications You must be signed in to change notification settings

krishsharma0413/pilcord

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pilcord

PyPI version GitHub issues

⚠️ NO UPDATES TILL APRIL 2024

A library rich with many image generation funcitons powered by PIL for your discord bot such as leveling, welcome card and meme generation!

ranking card preview

NOTE : Ranking Card is DEPRICATED. Use krishsharma0413/DiscordLevelingCard for ranking card generation.

meme generation preview

fight_under_this_flag

fight_under_this_flag

uwu_discord

image preview

rip

image preview

installation

for pypi version

pip install pilcord

for github developement version

pip install git+https://github.com/ResetXD/pilcord

How To Use

The method will return bytes which can directly be used in discord.py/disnake/pycord/nextcord 's File class.


Documentation

rank card docs

RankCard class

__init__ method

RankCard(
    settings: CardSettings,
    avatar:str,
    level:int,
    current_exp:int,
    max_exp:int,
    username:str,
    rank: Optional[int] = None
)
  • settings - Settings class from DiscordLevelingCard.

  • avatar - avatar image url.

  • level - level of the user.

  • current_exp - current exp of the user.

  • max_exp - max exp of the user.

  • username - username of the user.

  • rank - rank of the user. (optional)

CardSettings class

__init__ method

CardSettings(
    background: Union[PathLike, BufferedIOBase, str],
    bar_color: Optional[str] = 'white',
    text_color: Optional[str] = 'white',
    background_color: Optional[str]= "#36393f"

)
  • background - background image url or file-object in rb mode.

    • 4:1 aspect ratio recommended.
  • bar_color - color of the bar [example: "white" or "#000000"]

  • text_color - color of the text [example: "white" or "#000000"]

  • background_color - color of the background [example: "white" or "#000000"]

card1 method
RankCard.card1()

returns - bytes which can directly be used within discord.File class.

card1


card2 method
RankCard.card2()

returns - bytes which can directly be used within discord.File class.

card


card3 method
RankCard.card3()

returns - bytes which can directly be used within discord.File class.

card


example

It returns bytes which can directly be used in discord.py and its fork's File class.

from disnake.ext import commands
from DiscordLevelingCard import RankCard, CardSettings
import disnake

client = commands.Bot()
# define background, bar_color, text_color at one place
card_settings = CardSettings(
    background="url or path to background image",
    text_color="white",
    bar_color="#000000"
)

@client.slash_command(name="rank")
async def user_rank_card(ctx, user:disnake.Member):
    await ctx.response.defer()
    a = RankCard(
        settings=card_settings,
        avatar=user.display_avatar.url,
        level=1,
        current_exp=1,
        max_exp=1,
        username="cool username",
        rank=1
    )
    image = await a.card1()
    await ctx.edit_original_message(file=disnake.File(image, filename="rank.png")) # providing filename is very important

rank card docs

Meme class

__init__ method

Meme(
    avatar: str
)
  • avatar - image url.
fight_under_this_flag method
Meme.fight_under_this_flag()

returns - bytes which can directly be used within discord.File class.

fight_under_this_flag


uwu_discord method
Meme.uwu_discord()

returns - bytes which can directly be used within discord.File class.

uwu_discord

rip method
Meme.rip()

returns - bytes which can directly be used within discord.File class.

uwu_discord

example

It returns bytes which can directly be used in discord.py and its fork's File class.

from disnake.ext import commands
from DiscordLevelingCard import Meme
import disnake

client = commands.Bot()

@client.slash_command(name="fight_under_this_flag")
async def fight_under_this_flag_meme(ctx, user:disnake.Member):
    await ctx.response.defer()
    a = Meme(
        avatar=user.display_avatar.url
    )
    image = await a.fight_under_this_flag()
    await ctx.edit_original_message(file=disnake.File(image, filename="fight.png")) # providing filename is very important