discordlevelingcard


Namediscordlevelingcard JSON
Version 0.6.0 PyPI version JSON
download
home_pagehttps://github.com/krishsharma0413/DiscordLevelingCard
SummaryA library with leveling cards for your discord bot.
upload_time2023-06-02 16:33:32
maintainer
docs_urlNone
authorReset
requires_python>=3.8,<4
licenseMIT
keywords discord leveling card image discord.py disnake nextcord rank ranking level discord-bot bot discord-leveling level-card discord-leveling-card discord-rank-card sandbox custom custom-card
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # DiscordLevelingCard
A library with Rank cards for your discord bot.

<h3 style="color:yellow;"> now create your own custom rank cards!</h3>

<br>

[![Downloads](https://pepy.tech/badge/discordlevelingcard)](https://pepy.tech/project/discordlevelingcard)

# card preview

`card1`

![card1](https://user-images.githubusercontent.com/77439837/234198272-3dcaabb0-0f38-4d51-9938-de4b0ad42123.png)


`card2`
![card2](https://user-images.githubusercontent.com/77439837/234198354-315e9420-9bd7-47bd-87ed-b21c3772646c.png)


`card3` *same as card2 but with background*
![card3](https://user-images.githubusercontent.com/77439837/234203410-a6a970ef-c01c-454b-be67-6dc7c1b2c807.png)

<br>

# installation

`for pypi version`
```sh
pip install discordlevelingcard
```

`for github developement version`
```sh
pip install git+https://github.com/krishsharma0413/DiscordLevelingCard
```

# How To Use

If you don't provide `path` then the method will return `bytes` which can directly be used in discord.py/disnake/pycord/nextcord 's `File class`.


<br>


# Example

`since no path was provided, it returns bytes which can directly be used in discord.py and its fork's File class.`

```py
from disnake.ext import commands
from DiscordLevelingCard import RankCard, Settings
import disnake

client = commands.Bot()
# define background, bar_color, text_color at one place
card_settings = Settings(
    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"
    )
    image = await a.card1()
    await ctx.edit_original_message(file=disnake.File(image, filename="rank.png")) # providing filename is very important

```

<br>

## Documentation


<details>

<summary> <span style="color:yellow">RankCard</span> class</summary>

<br>

`__init__` method

```py
RankCard(
    settings: Settings,
    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)

## methods

- `card1`
- `card2`
- `card3`

</details>

<details>

<summary> <span style="color:yellow">Sandbox</span> class</summary>

<br>

`__init__` method

```py
RankCard(
    settings: Settings,
    avatar:str,
    level:int,
    current_exp:int,
    max_exp:int,
    username:str,
    cacheing:bool = True,
    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)

- `cacheing` - if set to `True` then it will cache the image and will not regenerate it again. (default is `True`)
  

## methods
- `custom_card1`
  
</details>




<details>

<summary> <span style="color:yellow">Settings</span> class</summary>

<br>

`__init__` method

```py
Settings(
    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"]

</details>


<details>

<summary> <span style="color:yellow">card1</span> method</summary>


```py
RankCard.card1(resize: int = 100)
```

## attribute
- `resize` : resize the final image. (default is 100, treat it as a percentage.)



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



![card1](https://user-images.githubusercontent.com/77439837/234198272-3dcaabb0-0f38-4d51-9938-de4b0ad42123.png)

<br>

</details>


<details>

<summary> <span style="color:yellow">card2</span> method</summary>


```py
RankCard.card2(resize: int = 100)
```

## attribute
- `resize` : resize the final image. (default is 100, treat it as a percentage.)

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



![card](https://user-images.githubusercontent.com/77439837/234198354-315e9420-9bd7-47bd-87ed-b21c3772646c.png)

<br>

</details>


<details>

<summary> <span style="color:yellow">card3</span> method</summary>


```py
RankCard.card3(resize: int = 100)
```

## attribute
- `resize` : resize the final image. (default is 100, treat it as a percentage.)

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



![card3](https://user-images.githubusercontent.com/77439837/234203410-a6a970ef-c01c-454b-be67-6dc7c1b2c807.png)

<br>

</details>

<details>

<summary> <span style="color:yellow">custom_card1</span> method</summary>


```py
Sandbox.custom_card1(card_colour:str = "black", resize: int = 100)
```

## attribute
- `resize` : resize the final image. (default is 100, treat it as a percentage.)
- `card_colour` : color of the card. (default is black)



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


## examples
![custom_card1](https://raw.githubusercontent.com/krishsharma0413/DiscordLevelingCard/main/Examples/custom%20card%20examples/blue_card1.png)

![custom_card1](https://raw.githubusercontent.com/krishsharma0413/DiscordLevelingCard/main/Examples/custom%20card%20examples/white_card1.png)

![custom_card1](https://raw.githubusercontent.com/krishsharma0413/DiscordLevelingCard/main/Examples/custom%20card%20examples/black_card1.png)

<br>

</details>

<details>

<summary> <span style="color:yellow">custom_canvas</span> method</summary>


```py
Sandbox.custom_canvas(
    resize:int = 100,

    senstivity:int = 200,
    card_colour: str = "black",

    border_width: int = 25,
    border_height: int = 25,
    
    avatar_frame: str = "curvedborder",
    avatar_size: int = 260,
    avatar_position: tuple = (53, 36),
    
    text_font: str = "levelfont.otf",

    username_position: tuple = (330,130),
    username_font_size: int = 50,

    level_position: tuple = (500,40),
    level_font_size: int = 50,

    exp_position: tuple = (775,130),
    exp_font_size: int = 50,

)
```

## attribute
  - `has_background` : if set to `True` then it will add a background to the image. (default is `True`)
  - `background_colour` : color of the background. (default is `black`)
  - `canvas_size` : size of the canvas. (default is `(1000, 333)`)
  - `resize` : resize the final image. (default is 100, treat it as a percentage.)
  - `overlay` : A list of overlays to be placed on the background. (Default is `[[(1000-50, 333-50),(25, 25), "black", 200]]`.)
  - `avatar_frame` : `circle` `square` `curvedborder` `hexagon` or path to a self created mask. (Default is `curvedborder`.)
  - `text_font` : Default is `levelfont.otf` or path to a custom otf or ttf file type font.
  - `avatar_size` : size of the avatar. (default is `260`)
  - `avatar_position` : position of the avatar. (default is `(53, 36)`)
  - `username_position` : position of the username. (default is `(330,130)`)
  - `username_font_size` : font size of the username. (default is `50`)
  - `level_position` : position of the level. (default is `(500,40)`)
  - `level_font_size` : font size of the level. (default is `50`)
  - `exp_position` : position of the exp. (default is `(775,130)`)
  - `exp_font_size` : font size of the exp. (default is `50`)
  - `exp_bar_width` : width of the exp bar. (default is `619`)
  - `exp_bar_height` : height of the exp bar. (default is `50`)
  - `exp_bar_background_colour` : color of the exp bar background. (default is `white`)
  - `exp_bar_position` : position of the exp bar. (default is `(330, 235)`)
  - `exp_bar_curve` : curve of the exp bar. (default is `30`)
  - `extra_text` : A list of extra text to be placed on the image. (Default is `None`.)
  - `exp_bar` : The calculated exp of the user. (Default is `None`.)


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


## examples

![custom_canvas](https://raw.githubusercontent.com/krishsharma0413/DiscordLevelingCard/main/Examples/custom%20card%20examples/custom%20card3%20example-1.png)

![custom_canvas](https://raw.githubusercontent.com/krishsharma0413/DiscordLevelingCard/main/Examples/custom%20card%20examples/custom%20card3%20unholy%20example-2.png)


An Example that i really loved was this one, here is the code for it as well. (you might have to tweak a lot to make it work for you though. )

```py
from DiscordLevelingCard import Sandbox, Settings
import asyncio
from PIL import Image

setting = Settings(
    background="./bg.jpg",
    bar_color="green",
    text_color="white")

async def main():
    rank = Sandbox(
        username="krishsharma0413",
        level=1,
        current_exp=10,
        max_exp=400,
        settings=setting,
        avatar=Image.open("./avatarimg.png")
    )
    result = await rank.custom_canvas(
        avatar_frame="square",
        avatar_size=233,
        avatar_position=(50, 50),
        exp_bar_background_colour = "black",
        exp_bar_height=50,
        exp_bar_width=560,
        exp_bar_curve=0,
        exp_bar_position=(70, 400),
        username_position=(320, 50),
        level_position=(320, 225),
        exp_position=(70, 330),
        canvas_size=(700, 500),

        overlay=[[(350, 233),(300, 50), "white", 100],
                 [(600, 170),(50, 300), "white", 100]],

        extra_text=[
            ["bio-", (320, 110), 25, "white"],
            ["this can very well be a bio", (320, 140), 25, "white"],
            ["even mutiple lines!", (320, 170), 25, "white"],
            ["if we remove bio- even more!", (320, 200), 25, "white"],
            ]

    )
    
    # you don't need this line if you are using this in discord.py
    Image.open(result).save("result.png", "PNG")


asyncio.run(main())
```

and this is how it looks :D

![custom_canvas](https://raw.githubusercontent.com/krishsharma0413/DiscordLevelingCard/main/Examples/custom%20card%20examples/extra%20canvas%20example.png)

<br>

</details>


<br><br>

if you want to see changelog then click [here](https://github.com/krishsharma0413/DiscordLevelingCard/blob/main/CHANGELOG.md)

<br><br>
please star the <a href="https://github.com/krishsharma0413/DiscordLevelingCard">repository</a> if you like it :D

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/krishsharma0413/DiscordLevelingCard",
    "name": "discordlevelingcard",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8,<4",
    "maintainer_email": "",
    "keywords": "discord,leveling,card,image,discord.py,disnake,nextcord,rank,ranking,level,discord-bot,bot,discord-leveling,level-card,discord-leveling-card,discord-rank-card,sandbox,custom,custom-card",
    "author": "Reset",
    "author_email": "krishsharma0413@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/13/fa/98758387ff05f8f849d40ff411c038a70348194bad987f6e95ce550171b0/discordlevelingcard-0.6.0.tar.gz",
    "platform": null,
    "description": "# DiscordLevelingCard\nA library with Rank cards for your discord bot.\n\n<h3 style=\"color:yellow;\"> now create your own custom rank cards!</h3>\n\n<br>\n\n[![Downloads](https://pepy.tech/badge/discordlevelingcard)](https://pepy.tech/project/discordlevelingcard)\n\n# card preview\n\n`card1`\n\n![card1](https://user-images.githubusercontent.com/77439837/234198272-3dcaabb0-0f38-4d51-9938-de4b0ad42123.png)\n\n\n`card2`\n![card2](https://user-images.githubusercontent.com/77439837/234198354-315e9420-9bd7-47bd-87ed-b21c3772646c.png)\n\n\n`card3` *same as card2 but with background*\n![card3](https://user-images.githubusercontent.com/77439837/234203410-a6a970ef-c01c-454b-be67-6dc7c1b2c807.png)\n\n<br>\n\n# installation\n\n`for pypi version`\n```sh\npip install discordlevelingcard\n```\n\n`for github developement version`\n```sh\npip install git+https://github.com/krishsharma0413/DiscordLevelingCard\n```\n\n# How To Use\n\nIf you don't provide `path` then the method will return `bytes` which can directly be used in discord.py/disnake/pycord/nextcord 's `File class`.\n\n\n<br>\n\n\n# Example\n\n`since no path was provided, it returns bytes which can directly be used in discord.py and its fork's File class.`\n\n```py\nfrom disnake.ext import commands\nfrom DiscordLevelingCard import RankCard, Settings\nimport disnake\n\nclient = commands.Bot()\n# define background, bar_color, text_color at one place\ncard_settings = Settings(\n    background=\"url or path to background image\",\n    text_color=\"white\",\n    bar_color=\"#000000\"\n)\n\n@client.slash_command(name=\"rank\")\nasync def user_rank_card(ctx, user:disnake.Member):\n    await ctx.response.defer()\n    a = RankCard(\n        settings=card_settings,\n        avatar=user.display_avatar.url,\n        level=1,\n        current_exp=1,\n        max_exp=1,\n        username=\"cool username\"\n    )\n    image = await a.card1()\n    await ctx.edit_original_message(file=disnake.File(image, filename=\"rank.png\")) # providing filename is very important\n\n```\n\n<br>\n\n## Documentation\n\n\n<details>\n\n<summary> <span style=\"color:yellow\">RankCard</span> class</summary>\n\n<br>\n\n`__init__` method\n\n```py\nRankCard(\n    settings: Settings,\n    avatar:str,\n    level:int,\n    current_exp:int,\n    max_exp:int,\n    username:str,\n    rank: Optional[int] = None\n)\n```\n\n- `settings` - Settings class from DiscordLevelingCard.\n\n- `avatar` - avatar image url.\n\n- `level` - level of the user.\n\n- `current_exp` - current exp of the user.\n\n- `max_exp` - max exp of the user.\n\n- `username` - username of the user.\n\n- `rank` - rank of the user. (optional)\n\n## methods\n\n- `card1`\n- `card2`\n- `card3`\n\n</details>\n\n<details>\n\n<summary> <span style=\"color:yellow\">Sandbox</span> class</summary>\n\n<br>\n\n`__init__` method\n\n```py\nRankCard(\n    settings: Settings,\n    avatar:str,\n    level:int,\n    current_exp:int,\n    max_exp:int,\n    username:str,\n    cacheing:bool = True,\n    rank: Optional[int] = None\n)\n```\n\n- `settings` - Settings class from DiscordLevelingCard.\n\n- `avatar` - avatar image url.\n\n- `level` - level of the user.\n\n- `current_exp` - current exp of the user.\n\n- `max_exp` - max exp of the user.\n\n- `username` - username of the user.\n\n- `rank` - rank of the user. (optional)\n\n- `cacheing` - if set to `True` then it will cache the image and will not regenerate it again. (default is `True`)\n  \n\n## methods\n- `custom_card1`\n  \n</details>\n\n\n\n\n<details>\n\n<summary> <span style=\"color:yellow\">Settings</span> class</summary>\n\n<br>\n\n`__init__` method\n\n```py\nSettings(\n    background: Union[PathLike, BufferedIOBase, str],\n    bar_color: Optional[str] = 'white',\n    text_color: Optional[str] = 'white',\n    background_color: Optional[str]= \"#36393f\"\n\n)\n```\n\n- `background` - background image url or file-object in `rb` mode.\n  - `4:1` aspect ratio recommended.\n\n- `bar_color` - color of the bar [example: \"white\" or \"#000000\"]\n\n- `text_color` - color of the text [example: \"white\" or \"#000000\"]\n\n- `background_color` - color of the background [example: \"white\" or \"#000000\"]\n\n</details>\n\n\n<details>\n\n<summary> <span style=\"color:yellow\">card1</span> method</summary>\n\n\n```py\nRankCard.card1(resize: int = 100)\n```\n\n## attribute\n- `resize` : resize the final image. (default is 100, treat it as a percentage.)\n\n\n\n## returns \n- `bytes` which can directly be used within `discord.File` class.\n\n\n\n![card1](https://user-images.githubusercontent.com/77439837/234198272-3dcaabb0-0f38-4d51-9938-de4b0ad42123.png)\n\n<br>\n\n</details>\n\n\n<details>\n\n<summary> <span style=\"color:yellow\">card2</span> method</summary>\n\n\n```py\nRankCard.card2(resize: int = 100)\n```\n\n## attribute\n- `resize` : resize the final image. (default is 100, treat it as a percentage.)\n\n## returns\n- `bytes` which can directly be used within `discord.File` class.\n\n\n\n![card](https://user-images.githubusercontent.com/77439837/234198354-315e9420-9bd7-47bd-87ed-b21c3772646c.png)\n\n<br>\n\n</details>\n\n\n<details>\n\n<summary> <span style=\"color:yellow\">card3</span> method</summary>\n\n\n```py\nRankCard.card3(resize: int = 100)\n```\n\n## attribute\n- `resize` : resize the final image. (default is 100, treat it as a percentage.)\n\n## returns\n- `bytes` which can directly be used within `discord.File` class.\n\n\n\n![card3](https://user-images.githubusercontent.com/77439837/234203410-a6a970ef-c01c-454b-be67-6dc7c1b2c807.png)\n\n<br>\n\n</details>\n\n<details>\n\n<summary> <span style=\"color:yellow\">custom_card1</span> method</summary>\n\n\n```py\nSandbox.custom_card1(card_colour:str = \"black\", resize: int = 100)\n```\n\n## attribute\n- `resize` : resize the final image. (default is 100, treat it as a percentage.)\n- `card_colour` : color of the card. (default is black)\n\n\n\n## returns \n- `bytes` which can directly be used within `discord.File` class.\n\n\n## examples\n![custom_card1](https://raw.githubusercontent.com/krishsharma0413/DiscordLevelingCard/main/Examples/custom%20card%20examples/blue_card1.png)\n\n![custom_card1](https://raw.githubusercontent.com/krishsharma0413/DiscordLevelingCard/main/Examples/custom%20card%20examples/white_card1.png)\n\n![custom_card1](https://raw.githubusercontent.com/krishsharma0413/DiscordLevelingCard/main/Examples/custom%20card%20examples/black_card1.png)\n\n<br>\n\n</details>\n\n<details>\n\n<summary> <span style=\"color:yellow\">custom_canvas</span> method</summary>\n\n\n```py\nSandbox.custom_canvas(\n    resize:int = 100,\n\n    senstivity:int = 200,\n    card_colour: str = \"black\",\n\n    border_width: int = 25,\n    border_height: int = 25,\n    \n    avatar_frame: str = \"curvedborder\",\n    avatar_size: int = 260,\n    avatar_position: tuple = (53, 36),\n    \n    text_font: str = \"levelfont.otf\",\n\n    username_position: tuple = (330,130),\n    username_font_size: int = 50,\n\n    level_position: tuple = (500,40),\n    level_font_size: int = 50,\n\n    exp_position: tuple = (775,130),\n    exp_font_size: int = 50,\n\n)\n```\n\n## attribute\n  - `has_background` : if set to `True` then it will add a background to the image. (default is `True`)\n  - `background_colour` : color of the background. (default is `black`)\n  - `canvas_size` : size of the canvas. (default is `(1000, 333)`)\n  - `resize` : resize the final image. (default is 100, treat it as a percentage.)\n  - `overlay` : A list of overlays to be placed on the background. (Default is `[[(1000-50, 333-50),(25, 25), \"black\", 200]]`.)\n  - `avatar_frame` : `circle` `square` `curvedborder` `hexagon` or path to a self created mask. (Default is `curvedborder`.)\n  - `text_font` : Default is `levelfont.otf` or path to a custom otf or ttf file type font.\n  - `avatar_size` : size of the avatar. (default is `260`)\n  - `avatar_position` : position of the avatar. (default is `(53, 36)`)\n  - `username_position` : position of the username. (default is `(330,130)`)\n  - `username_font_size` : font size of the username. (default is `50`)\n  - `level_position` : position of the level. (default is `(500,40)`)\n  - `level_font_size` : font size of the level. (default is `50`)\n  - `exp_position` : position of the exp. (default is `(775,130)`)\n  - `exp_font_size` : font size of the exp. (default is `50`)\n  - `exp_bar_width` : width of the exp bar. (default is `619`)\n  - `exp_bar_height` : height of the exp bar. (default is `50`)\n  - `exp_bar_background_colour` : color of the exp bar background. (default is `white`)\n  - `exp_bar_position` : position of the exp bar. (default is `(330, 235)`)\n  - `exp_bar_curve` : curve of the exp bar. (default is `30`)\n  - `extra_text` : A list of extra text to be placed on the image. (Default is `None`.)\n  - `exp_bar` : The calculated exp of the user. (Default is `None`.)\n\n\n## returns \n- `bytes` which can directly be used within `discord.File` class.\n\n\n## examples\n\n![custom_canvas](https://raw.githubusercontent.com/krishsharma0413/DiscordLevelingCard/main/Examples/custom%20card%20examples/custom%20card3%20example-1.png)\n\n![custom_canvas](https://raw.githubusercontent.com/krishsharma0413/DiscordLevelingCard/main/Examples/custom%20card%20examples/custom%20card3%20unholy%20example-2.png)\n\n\nAn Example that i really loved was this one, here is the code for it as well. (you might have to tweak a lot to make it work for you though. )\n\n```py\nfrom DiscordLevelingCard import Sandbox, Settings\nimport asyncio\nfrom PIL import Image\n\nsetting = Settings(\n    background=\"./bg.jpg\",\n    bar_color=\"green\",\n    text_color=\"white\")\n\nasync def main():\n    rank = Sandbox(\n        username=\"krishsharma0413\",\n        level=1,\n        current_exp=10,\n        max_exp=400,\n        settings=setting,\n        avatar=Image.open(\"./avatarimg.png\")\n    )\n    result = await rank.custom_canvas(\n        avatar_frame=\"square\",\n        avatar_size=233,\n        avatar_position=(50, 50),\n        exp_bar_background_colour = \"black\",\n        exp_bar_height=50,\n        exp_bar_width=560,\n        exp_bar_curve=0,\n        exp_bar_position=(70, 400),\n        username_position=(320, 50),\n        level_position=(320, 225),\n        exp_position=(70, 330),\n        canvas_size=(700, 500),\n\n        overlay=[[(350, 233),(300, 50), \"white\", 100],\n                 [(600, 170),(50, 300), \"white\", 100]],\n\n        extra_text=[\n            [\"bio-\", (320, 110), 25, \"white\"],\n            [\"this can very well be a bio\", (320, 140), 25, \"white\"],\n            [\"even mutiple lines!\", (320, 170), 25, \"white\"],\n            [\"if we remove bio- even more!\", (320, 200), 25, \"white\"],\n            ]\n\n    )\n    \n    # you don't need this line if you are using this in discord.py\n    Image.open(result).save(\"result.png\", \"PNG\")\n\n\nasyncio.run(main())\n```\n\nand this is how it looks :D\n\n![custom_canvas](https://raw.githubusercontent.com/krishsharma0413/DiscordLevelingCard/main/Examples/custom%20card%20examples/extra%20canvas%20example.png)\n\n<br>\n\n</details>\n\n\n<br><br>\n\nif you want to see changelog then click [here](https://github.com/krishsharma0413/DiscordLevelingCard/blob/main/CHANGELOG.md)\n\n<br><br>\nplease star the <a href=\"https://github.com/krishsharma0413/DiscordLevelingCard\">repository</a> if you like it :D\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A library with leveling cards for your discord bot.",
    "version": "0.6.0",
    "project_urls": {
        "Homepage": "https://github.com/krishsharma0413/DiscordLevelingCard",
        "Repository": "https://github.com/krishsharma0413/DiscordLevelingCard"
    },
    "split_keywords": [
        "discord",
        "leveling",
        "card",
        "image",
        "discord.py",
        "disnake",
        "nextcord",
        "rank",
        "ranking",
        "level",
        "discord-bot",
        "bot",
        "discord-leveling",
        "level-card",
        "discord-leveling-card",
        "discord-rank-card",
        "sandbox",
        "custom",
        "custom-card"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "41009daa68c97a0036276abc6c300c0a52a63cb6c308257291f7cecdf5a8cc54",
                "md5": "673fa7589fca1d58598f9ce095e2ef87",
                "sha256": "ef61894ecc925b8b58bda1b7450780baac7e5ab944fbc3de9d15c59bce0fa3d0"
            },
            "downloads": -1,
            "filename": "discordlevelingcard-0.6.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "673fa7589fca1d58598f9ce095e2ef87",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8,<4",
            "size": 72814,
            "upload_time": "2023-06-02T16:33:27",
            "upload_time_iso_8601": "2023-06-02T16:33:27.810805Z",
            "url": "https://files.pythonhosted.org/packages/41/00/9daa68c97a0036276abc6c300c0a52a63cb6c308257291f7cecdf5a8cc54/discordlevelingcard-0.6.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "13fa98758387ff05f8f849d40ff411c038a70348194bad987f6e95ce550171b0",
                "md5": "bf258862d65b538e8e473b94ce3c1f85",
                "sha256": "075f2c7b271c6c853e1d14e4c06f6370bd5dde12c4b38baf45eee924404752f0"
            },
            "downloads": -1,
            "filename": "discordlevelingcard-0.6.0.tar.gz",
            "has_sig": false,
            "md5_digest": "bf258862d65b538e8e473b94ce3c1f85",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8,<4",
            "size": 69266,
            "upload_time": "2023-06-02T16:33:32",
            "upload_time_iso_8601": "2023-06-02T16:33:32.623992Z",
            "url": "https://files.pythonhosted.org/packages/13/fa/98758387ff05f8f849d40ff411c038a70348194bad987f6e95ce550171b0/discordlevelingcard-0.6.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-06-02 16:33:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "krishsharma0413",
    "github_project": "DiscordLevelingCard",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "discordlevelingcard"
}
        
Elapsed time: 0.28836s