Skip to main content

Provides utilities for parsing and accessing Discord emojis.

Project description

Discord Emoji Parser

A Python library providing utilities for parsing and accessing Discord emojis with advanced functionality such as emoji enumeration and dynamic handling.

Features

  • Parse individual or multiple Discord emojis from a string.
  • Generate CDN-hosted URLs for emojis (animated or static).
  • Validate emoji format.
  • Convert parsed emojis into JSON mappings for integration with other tools.
  • Dynamically create Enum classes for Discord emojis, enabling easy programmatic access.

Installation

This project uses Poetry for dependency management. To install, first ensure Poetry is installed, then run:

poetry install

Usage

Importing the Library

from discordemojiparser.emoji_parser import EmojiParser

Parsing Emojis

Parse a Single Emoji

emoji_str = "<a:wave:123456789>"
emoji = EmojiParser.parse_single(emoji_str)

print(emoji.name)  # wave
print(emoji.url)   # https://cdn.discordapp.com/emojis/123456789.gif

Parse All Emojis in a String

text = "<a:wave:123456789> <:smile:987654321>"
emojis = EmojiParser.parse_all(text)

for emoji in emojis:
    print(emoji.name, emoji.url)

Validate Emoji Strings

print(EmojiParser.is_emoji("<a:wave:123456789>"))  # True
print(EmojiParser.has_emoji("Hello <a:wave:123456789>!"))  # True
print(EmojiParser.is_emoji("wave:123456789>"))  # False

Generating JSON from Emojis

text = "<a:wave:123456789> <:smile:987654321>"
emoji_json = EmojiParser.get_emojis_json(text)

print(emoji_json)
# Output: {'wave': 'https://cdn.discordapp.com/emojis/123456789.gif',
#          'smile': 'https://cdn.discordapp.com/emojis/987654321.png'}

Creating Emoji Enums

Dynamically Generate an Enum for Emojis

text = "<a:wave:123456789> <:smile:987654321>"
EmojiEnum = EmojiParser.get_emojis_enum(text)

# Access emoji attributes via Enum
print(EmojiEnum.wave.url)  # https://cdn.discordapp.com/emojis/123456789.gif
print(EmojiEnum.smile.name)  # smile

# Iterate through Enum members
for emoji_name, emoji in EmojiEnum.__members__.items():
    print(emoji_name, emoji.url)

Example Application

from discordemojiparser.emoji_parser import EmojiParser

# Input text containing Discord emojis
text = """
<:gamesir:1176772767132168232>
<a:wave:123456789>
<smile:987654321>
"""

# Parse all emojis and create an enum
EmojiEnum = EmojiParser.get_emojis_enum(text)

# Use the enum
print(EmojiEnum.gamesir.url)  # https://cdn.discordapp.com/emojis/1176772767132168232.png
print(EmojiEnum.wave.url)     # https://cdn.discordapp.com/emojis/123456789.gif

Project Structure

discordemojiparser/
├── discordemojiparser/
│   ├── __init__.py
│   ├── emoji_parser.py
│   └── emoji_enum.py
├── pyproject.toml
└── README.md
└── LICENSE
  • discordemojiparser/emoji_parser.py: Core logic for parsing and handling emojis.
  • discordemojiparser/emoji_enum.py: Custom Enum implementation for managing emojis programmatically.
  • pyproject.toml: Poetry configuration.

Author

Dylan Magar ("DJ Stomp")

License

MIT License (see LICENSE file)

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

discordemojiparser-1.0.0.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

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

discordemojiparser-1.0.0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file discordemojiparser-1.0.0.tar.gz.

File metadata

  • Download URL: discordemojiparser-1.0.0.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.12.8 Windows/11

File hashes

Hashes for discordemojiparser-1.0.0.tar.gz
Algorithm Hash digest
SHA256 2a2e8436fedc28a5d36b2144e5169c99490be7e1f3e79a4372ab15aed9dba91b
MD5 d27fff952042fcb94930ce4a507d2478
BLAKE2b-256 f485265e40def3c74dcc737501cbc2c40c3a05f08a8d5de9b6d348aa4097f615

See more details on using hashes here.

File details

Details for the file discordemojiparser-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for discordemojiparser-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9767f000bf63dc9a69b874ea9d334ee7bae03f5f507a0f4507492a7bda82f86a
MD5 f6a525129876cab43751e44262bd5dc3
BLAKE2b-256 64f5f549576d479610b58fe2ec4340f92eeaa89d6e4d3239f96b371b08f67749

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