# 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. The easiest way to instal is with `pip`
```sh
pip install discordemojiparser
```
## Usage
### Importing the Library
```py
from discordemojiparser.emoji_parser import EmojiParser
```
### Parsing Emojis
Parse a Single Emoji
```py
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
```py
text = "<a:wave:123456789> <:smile:987654321>"
emojis = EmojiParser.parse_all(text)
for emoji in emojis:
print(emoji.name, emoji.url)
```
### Validate Emoji Strings
```py
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
```py
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
```py
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
```py
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
```plaintext
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")
- GitHub: [@DJStompZone](https://github.com/djstompzone)
- 
## License
MIT License (see [LICENSE](LICENSE) file)
Raw data
{
"_id": null,
"home_page": "https://github.com/djstompzone/discordemojiparser",
"name": "discordemojiparser",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": null,
"keywords": null,
"author": "DJ Stomp",
"author_email": "85457381+DJStompZone@users.noreply.github.com",
"download_url": "https://files.pythonhosted.org/packages/34/e9/5af23e21a22a342628604e749ed15fded036c570d0c4fd63eaba9d495eb6/discordemojiparser-1.0.1.tar.gz",
"platform": null,
"description": "# Discord Emoji Parser\n\nA Python library providing utilities for parsing and accessing Discord emojis with advanced functionality such as emoji enumeration and dynamic handling.\n\n \n\n\n\n## Features\n\n- Parse individual or multiple Discord emojis from a string.\n- Generate CDN-hosted URLs for emojis (animated or static).\n- Validate emoji format.\n- Convert parsed emojis into JSON mappings for integration with other tools.\n- Dynamically create Enum classes for Discord emojis, enabling easy programmatic access.\n\n\n## Installation\n\nThis project uses Poetry for dependency management. The easiest way to instal is with `pip`\n\n```sh\npip install discordemojiparser\n```\n\n## Usage\n\n### Importing the Library\n\n```py\nfrom discordemojiparser.emoji_parser import EmojiParser\n```\n\n### Parsing Emojis\n\nParse a Single Emoji\n\n```py\nemoji_str = \"<a:wave:123456789>\"\nemoji = EmojiParser.parse_single(emoji_str)\n\nprint(emoji.name) # wave\nprint(emoji.url) # https://cdn.discordapp.com/emojis/123456789.gif\n```\n\n### Parse All Emojis in a String\n\n```py\ntext = \"<a:wave:123456789> <:smile:987654321>\"\nemojis = EmojiParser.parse_all(text)\n\nfor emoji in emojis:\n print(emoji.name, emoji.url)\n```\n\n### Validate Emoji Strings\n\n```py\nprint(EmojiParser.is_emoji(\"<a:wave:123456789>\")) # True\nprint(EmojiParser.has_emoji(\"Hello <a:wave:123456789>!\")) # True\nprint(EmojiParser.is_emoji(\"wave:123456789>\")) # False\n```\n\n### Generating JSON from Emojis\n\n```py\ntext = \"<a:wave:123456789> <:smile:987654321>\"\nemoji_json = EmojiParser.get_emojis_json(text)\n\nprint(emoji_json)\n# Output: {'wave': 'https://cdn.discordapp.com/emojis/123456789.gif',\n# 'smile': 'https://cdn.discordapp.com/emojis/987654321.png'}\n```\n\n### Creating Emoji Enums\n\nDynamically Generate an Enum for Emojis\n\n\n```py\ntext = \"<a:wave:123456789> <:smile:987654321>\"\nEmojiEnum = EmojiParser.get_emojis_enum(text)\n\n# Access emoji attributes via Enum\nprint(EmojiEnum.wave.url) # https://cdn.discordapp.com/emojis/123456789.gif\nprint(EmojiEnum.smile.name) # smile\n\n# Iterate through Enum members\nfor emoji_name, emoji in EmojiEnum.__members__.items():\n print(emoji_name, emoji.url)\n```\n\n### Example Application\n\n```py\nfrom discordemojiparser.emoji_parser import EmojiParser\n\n# Input text containing Discord emojis\ntext = \"\"\"\n<:gamesir:1176772767132168232>\n<a:wave:123456789>\n<smile:987654321>\n\"\"\"\n\n# Parse all emojis and create an enum\nEmojiEnum = EmojiParser.get_emojis_enum(text)\n\n# Use the enum\nprint(EmojiEnum.gamesir.url) # https://cdn.discordapp.com/emojis/1176772767132168232.png\nprint(EmojiEnum.wave.url) # https://cdn.discordapp.com/emojis/123456789.gif\n```\n\n## Project Structure\n\n```plaintext\ndiscordemojiparser/\n\u251c\u2500\u2500 discordemojiparser/\n\u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u251c\u2500\u2500 emoji_parser.py\n\u2502 \u2514\u2500\u2500 emoji_enum.py\n\u251c\u2500\u2500 pyproject.toml\n\u2514\u2500\u2500 README.md\n\u2514\u2500\u2500 LICENSE\n```\n\n- discordemojiparser/emoji_parser.py: Core logic for parsing and handling emojis.\n- discordemojiparser/emoji_enum.py: Custom Enum implementation for managing emojis programmatically.\n- pyproject.toml: Poetry configuration.\n\n\n## Author\n\n**Dylan Magar** (\"DJ Stomp\")\n- GitHub: [@DJStompZone](https://github.com/djstompzone)\n- \n\n## License\n\nMIT License (see [LICENSE](LICENSE) file)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Provides utilities for parsing and accessing Discord emojis.",
"version": "1.0.1",
"project_urls": {
"Homepage": "https://github.com/djstompzone/discordemojiparser",
"Repository": "https://github.com/djstompzone/discordemojiparser"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "629b969c9d5311cab98850aabff00b1341d76c8a04a646bd581636d3a91f6160",
"md5": "af009a2211b9f6f2a368abfa21ad24b1",
"sha256": "d3320aa1234fb0d2ce6901ace58d0cd0a3946a8c1f86da0b0ebb3fa70599c5f2"
},
"downloads": -1,
"filename": "discordemojiparser-1.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "af009a2211b9f6f2a368abfa21ad24b1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 7723,
"upload_time": "2025-01-23T23:10:07",
"upload_time_iso_8601": "2025-01-23T23:10:07.854142Z",
"url": "https://files.pythonhosted.org/packages/62/9b/969c9d5311cab98850aabff00b1341d76c8a04a646bd581636d3a91f6160/discordemojiparser-1.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "34e95af23e21a22a342628604e749ed15fded036c570d0c4fd63eaba9d495eb6",
"md5": "67f91ba08e89407403933ffba97ab5ed",
"sha256": "7624e8fae1194dc1da6c5b3c28f90aa4167581d5cce3b63d6cf3e072a582ceff"
},
"downloads": -1,
"filename": "discordemojiparser-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "67f91ba08e89407403933ffba97ab5ed",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 4240,
"upload_time": "2025-01-23T23:10:08",
"upload_time_iso_8601": "2025-01-23T23:10:08.851358Z",
"url": "https://files.pythonhosted.org/packages/34/e9/5af23e21a22a342628604e749ed15fded036c570d0c4fd63eaba9d495eb6/discordemojiparser-1.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-23 23:10:08",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "djstompzone",
"github_project": "discordemojiparser",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "discordemojiparser"
}