discordemojiparser


Namediscordemojiparser JSON
Version 1.0.1 PyPI version JSON
download
home_pagehttps://github.com/djstompzone/discordemojiparser
SummaryProvides utilities for parsing and accessing Discord emojis.
upload_time2025-01-23 23:10:08
maintainerNone
docs_urlNone
authorDJ Stomp
requires_python<4.0,>=3.10
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Discord Emoji Parser

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

![PyPI - Version](https://img.shields.io/pypi/v/discordemojiparser?logo=pypi&logoColor=yellow&logoSize=auto&label=version&labelColor=blue&color=green) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/discordemojiparser?logo=python&label=python%20versions&logoColor=yellow&logoSize=auto&labelColor=blue&color=green)
![PyPI - License](https://img.shields.io/pypi/l/discordemojiparser?labelColor=blue&color=green)


## 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)
- ![Discord](https://img.shields.io/discord/599808270655291403?logo=discord&label=StompZone%20Discord)

## 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![PyPI - Version](https://img.shields.io/pypi/v/discordemojiparser?logo=pypi&logoColor=yellow&logoSize=auto&label=version&labelColor=blue&color=green) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/discordemojiparser?logo=python&label=python%20versions&logoColor=yellow&logoSize=auto&labelColor=blue&color=green)\n![PyPI - License](https://img.shields.io/pypi/l/discordemojiparser?labelColor=blue&color=green)\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- ![Discord](https://img.shields.io/discord/599808270655291403?logo=discord&label=StompZone%20Discord)\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"
}
        
Elapsed time: 0.38809s