Skip to main content

Pilmoji for nonebot-plugin-parser

Project description

Apilmoji

An asynchronous emoji rendering Extension for PIL

LICENSE pypi python ruff pre-commit codecov

✨ Features

  • 🎨 Unicode Emoji Support - Render standard Unicode emojis
  • 💬 Discord Emoji Support - Render custom Discord emojis
  • 🔄 Concurrent Downloads - Support concurrent emoji downloads for better performance
  • 💾 Smart Caching - Local file caching to avoid repeated downloads
  • 🎭 Multiple Styles - Support for Apple, Google, Twitter, Facebook, and other styles
  • 📊 Progress Display - Optional progress bar for download progress

📦 Installation

Requirements: Python 3.10 or higher

uv add apilmoji

Or install from source:

uv add git+https://github.com/fllesser/apilmoji

🚀 Quick Start

Basic Usage (Unicode Emojis Only)

import asyncio
from PIL import Image, ImageFont
from apilmoji import Apilmoji


async def main():
    text = """
    Hello, world! 👋
    "We have standard emojis: 😂, 🚀, 🐍, 💻.",
    "And some more: 🌟✨🔥💯.",
    """

    # create image
    image = Image.new("RGB", (550, 150), (255, 255, 255))
    font = ImageFont.truetype("arial.ttf", 24)

    # render text with emojis
    await Apilmoji.text(image, (10, 10), text.strip(), font, fill=(0, 0, 0))

    image.save("output.png")
    image.show()


asyncio.run(main())

Discord Emoji Support

import asyncio
from PIL import Image, ImageFont
from apilmoji import Apilmoji, EmojiCDNSource

async def main():
    text = """
    Unicode emojis: 👋 🎨 😎
    Discord emojis: <:rooThink:123456789012345678>
    """

    image = Image.new("RGB", (550, 100), (255, 255, 255))
    font = ImageFont.truetype("arial.ttf", 24)
    source = EmojiCDNSource()
    await Apilmoji.text_with_discord(
        image,
        (10, 40),
        text,
        font,
        fill=(0, 0, 0),
        source=source,
    )

    image.save("output.png")

asyncio.run(main())

🎨 Emoji Styles

Choose different emoji styles:

from apilmoji import Apilmoji, EmojiCDNSource, EmojiStyle

# Apple style (default)
source = EmojiCDNSource(style=EmojiStyle.APPLE)

# Google style
source = EmojiCDNSource(style=EmojiStyle.GOOGLE)

await Apilmoji.text(
    image,
    (10, 10),
    "Hello 👋",
    font,
    source=source
)

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🐛 Issues

If you encounter any issues, please report them on the GitHub Issues page.

Project details


Download files

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

Source Distribution

apilmoji-0.3.0.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

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

apilmoji-0.3.0-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file apilmoji-0.3.0.tar.gz.

File metadata

  • Download URL: apilmoji-0.3.0.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for apilmoji-0.3.0.tar.gz
Algorithm Hash digest
SHA256 87c0c9f90f5b8bb88ef3d9d5675e398d0dcbf1eb49e4b9dbb68653b4f9848110
MD5 02aa0629eebbcb15d3a29e1fcbd81b12
BLAKE2b-256 23e1a905bb2b74cde2d22eec2c5c87fb06913590986e2ae1aacaa29f21e29cb4

See more details on using hashes here.

File details

Details for the file apilmoji-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: apilmoji-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 9.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for apilmoji-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3d847d6496a7d17042a80f5c8055fe3b4dc1d7861c39a0a56e7cff51111c90a7
MD5 c1acca779333bee4c901f2115b10a85a
BLAKE2b-256 976112d5fb461691505c99b8d03dcf0e3aa1ccb7ae9f548eb06280fd8f770abc

See more details on using hashes here.

Supported by

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