mmemoji


Namemmemoji JSON
Version 0.6.0 PyPI version JSON
download
home_pageNone
SummaryCustom Emoji manager command-line for Mattermost 😎
upload_time2024-11-09 20:13:56
maintainerNone
docs_urlNone
authorNone
requires_python<4.0,>=3.9
licenseGPLv3
keywords cli emoji mattermost
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![PyPI][pypi badge]][pypi link]
[![Build Status][build badge]][build link]
[![Quality Gate][sonarcloud badge]][sonarcloud link]

# mmemoji

Custom Emoji manager command-line for [Mattermost][mattermost] 😎

Features:

* Create custom Emojis
* Delete custom Emojis
* List custom Emojis
* Search custom Emojis
* Export custom Emojis

## Installation


```shell
pip install mmemoji
mmemoji --help
```

_(Requires Python >=3.9)_

## Usage example

Let's take the [Party Parrot][COTPP] Emojis as an example.

* First, clone the Git repository or retrieve an archive of it:

```shell
git clone https://github.com/jmhobbs/cultofthepartyparrot.com.git
cd cultofthepartyparrot.com
```

* Then you'll need your Mattermost credentials. You can either pass them to `mmemoji` with the arguments `--url`/`--login-id`/`--password` or via environment variables, for example:

```shell
export MM_URL='http://127.0.0.1:8065/api/v4'
export MM_LOGIN_ID='user-1@sample.mattermost.com'
export MM_PASSWORD='user-1'
```

* Finally, run `mmemoji` to import all the parrots:

```shell
mmemoji create --no-clobber {parrots,guests}/hd/*.gif {parrots,guests}/*.gif
```

> **Note**
>
> * Here we rely on [shell globbing][glob] to select all emojis from the directories.
> * Specifying the `hd` directories first with `--no-clobber` ensures these emojis are created first and not overwritten by their lower quality counterpart.

* If you ever want to remove them all, simply run the following:

```shell
mmemoji delete --force {parrots,guests}/hd/*.gif {parrots,guests}/*.gif
```

> **Note**
>
> * The emoji names are extracted from the filenames the same way they have been during creation.
> * `--force` is used to ignore the absent low quality duplicates.

## Development

* You can clone this repository and install the project with [uv][uv]:

```shell
uv sync
```

* You'll find a script to create a local [Docker][docker] test instance under `tests/`:

```shell
./tests/scripts/setup-mattermost.sh
```

* You can run the test suite with:

```shell
pytest
```

* And last thing, you can install the [pre-commit][pre-commit] hooks to help with the formatting of your code.

```shell
pre-commit install
```

[pypi badge]: https://img.shields.io/pypi/v/mmemoji.svg
[pypi link]: https://pypi.python.org/pypi/mmemoji
[build badge]: https://github.com/maxbrunet/mmemoji/actions/workflows/build.yml/badge.svg
[build link]: https://github.com/maxbrunet/mmemoji/actions/workflows/build.yml
[sonarcloud badge]: https://sonarcloud.io/api/project_badges/measure?project=maxbrunet_mmemoji&metric=alert_status
[sonarcloud link]: https://sonarcloud.io/dashboard?id=maxbrunet_mmemoji
[mattermost]: https://github.com/mattermost/mattermost-server
[COTPP]: https://cultofthepartyparrot.com
[glob]: https://en.wikipedia.org/wiki/Glob_(programming)
[docker]: https://www.docker.com
[pre-commit]: https://pre-commit.com
[uv]: https://docs.astral.sh/uv

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mmemoji",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": null,
    "keywords": "cli, emoji, mattermost",
    "author": null,
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/07/bd/26a107eb89de7b272f04b486b35564582a909d2c02c50c6e6e10ff8b23a0/mmemoji-0.6.0.tar.gz",
    "platform": null,
    "description": "[![PyPI][pypi badge]][pypi link]\n[![Build Status][build badge]][build link]\n[![Quality Gate][sonarcloud badge]][sonarcloud link]\n\n# mmemoji\n\nCustom Emoji manager command-line for [Mattermost][mattermost] \ud83d\ude0e\n\nFeatures:\n\n* Create custom Emojis\n* Delete custom Emojis\n* List custom Emojis\n* Search custom Emojis\n* Export custom Emojis\n\n## Installation\n\n\n```shell\npip install mmemoji\nmmemoji --help\n```\n\n_(Requires Python >=3.9)_\n\n## Usage example\n\nLet's take the [Party Parrot][COTPP] Emojis as an example.\n\n* First, clone the Git repository or retrieve an archive of it:\n\n```shell\ngit clone https://github.com/jmhobbs/cultofthepartyparrot.com.git\ncd cultofthepartyparrot.com\n```\n\n* Then you'll need your Mattermost credentials. You can either pass them to `mmemoji` with the arguments `--url`/`--login-id`/`--password` or via environment variables, for example:\n\n```shell\nexport MM_URL='http://127.0.0.1:8065/api/v4'\nexport MM_LOGIN_ID='user-1@sample.mattermost.com'\nexport MM_PASSWORD='user-1'\n```\n\n* Finally, run `mmemoji` to import all the parrots:\n\n```shell\nmmemoji create --no-clobber {parrots,guests}/hd/*.gif {parrots,guests}/*.gif\n```\n\n> **Note**\n>\n> * Here we rely on [shell globbing][glob] to select all emojis from the directories.\n> * Specifying the `hd` directories first with `--no-clobber` ensures these emojis are created first and not overwritten by their lower quality counterpart.\n\n* If you ever want to remove them all, simply run the following:\n\n```shell\nmmemoji delete --force {parrots,guests}/hd/*.gif {parrots,guests}/*.gif\n```\n\n> **Note**\n>\n> * The emoji names are extracted from the filenames the same way they have been during creation.\n> * `--force` is used to ignore the absent low quality duplicates.\n\n## Development\n\n* You can clone this repository and install the project with [uv][uv]:\n\n```shell\nuv sync\n```\n\n* You'll find a script to create a local [Docker][docker] test instance under `tests/`:\n\n```shell\n./tests/scripts/setup-mattermost.sh\n```\n\n* You can run the test suite with:\n\n```shell\npytest\n```\n\n* And last thing, you can install the [pre-commit][pre-commit] hooks to help with the formatting of your code.\n\n```shell\npre-commit install\n```\n\n[pypi badge]: https://img.shields.io/pypi/v/mmemoji.svg\n[pypi link]: https://pypi.python.org/pypi/mmemoji\n[build badge]: https://github.com/maxbrunet/mmemoji/actions/workflows/build.yml/badge.svg\n[build link]: https://github.com/maxbrunet/mmemoji/actions/workflows/build.yml\n[sonarcloud badge]: https://sonarcloud.io/api/project_badges/measure?project=maxbrunet_mmemoji&metric=alert_status\n[sonarcloud link]: https://sonarcloud.io/dashboard?id=maxbrunet_mmemoji\n[mattermost]: https://github.com/mattermost/mattermost-server\n[COTPP]: https://cultofthepartyparrot.com\n[glob]: https://en.wikipedia.org/wiki/Glob_(programming)\n[docker]: https://www.docker.com\n[pre-commit]: https://pre-commit.com\n[uv]: https://docs.astral.sh/uv\n",
    "bugtrack_url": null,
    "license": "GPLv3",
    "summary": "Custom Emoji manager command-line for Mattermost \ud83d\ude0e",
    "version": "0.6.0",
    "project_urls": {
        "changelog": "https://github.com/maxbrunet/mmemoji/blob/main/CHANGELOG.md",
        "repository": "https://github.com/maxbrunet/mmemoji.git"
    },
    "split_keywords": [
        "cli",
        " emoji",
        " mattermost"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "22d89cb2b3733f755ab76f445cd0e0b4ffad4ed9938f2f3de143036d715d68c5",
                "md5": "fb38adcb01961d05710fcfb735730f79",
                "sha256": "4c349418c9b992026aee6a25ac13e7d9f1bad4810aaaea05daf03fea5db67448"
            },
            "downloads": -1,
            "filename": "mmemoji-0.6.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fb38adcb01961d05710fcfb735730f79",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 24943,
            "upload_time": "2024-11-09T20:13:54",
            "upload_time_iso_8601": "2024-11-09T20:13:54.402137Z",
            "url": "https://files.pythonhosted.org/packages/22/d8/9cb2b3733f755ab76f445cd0e0b4ffad4ed9938f2f3de143036d715d68c5/mmemoji-0.6.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "07bd26a107eb89de7b272f04b486b35564582a909d2c02c50c6e6e10ff8b23a0",
                "md5": "8e028cb323381763073f6938d08bf91f",
                "sha256": "767db07a08f44dc3aae4989d1046a820d89fc49be643402879bf813ca3af4e8f"
            },
            "downloads": -1,
            "filename": "mmemoji-0.6.0.tar.gz",
            "has_sig": false,
            "md5_digest": "8e028cb323381763073f6938d08bf91f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 70964,
            "upload_time": "2024-11-09T20:13:56",
            "upload_time_iso_8601": "2024-11-09T20:13:56.099634Z",
            "url": "https://files.pythonhosted.org/packages/07/bd/26a107eb89de7b272f04b486b35564582a909d2c02c50c6e6e10ff8b23a0/mmemoji-0.6.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-09 20:13:56",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "maxbrunet",
    "github_project": "mmemoji",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "mmemoji"
}
        
Elapsed time: 0.40262s