notifier-craft


Namenotifier-craft JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/marakhd/notifier-craft
SummaryAsync/sync library for sending notifications
upload_time2024-07-30 23:07:37
maintainerNone
docs_urlNone
authormarakhd
requires_python<4.0,>=3.12
licenseMIT
keywords notify notifycraft notify-craft notifications marakhd
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Notifier Craft

**Notifier Craft** — это мощная библиотека для Python, предназначенный для работы с уведомлениями. 
Она предоставляет как синхронные, так и асинхронные методы для отправки уведомлений через различные каналы. 
На данный момент поддерживаются уведомления через Telegram-ботов (как синхронно с помощью Telebot, так и асинхронно с помощью aiogram) и через электронную почту (с использованием smtplib). 
В будущем планируется добавить поддержку Telegram userbot, Discord-ботов, VK-ботов, а также рассылку SMS.

## Установка

- Установка, используя пакетный менеджер pip

```bash
pip install notifier-craft
```
- Установка с GitHub

```bash
pip install git+https://github.com/marakhd/notifier-craft
```

## Использование

### Синхронные методы

Пример для иcпользования с синхронными методами

```python
from notifiercraft import CreateClient, Telegram, Email # Импортируем Client и Senders

tg = Telegram(
    token="6804851619:AAElnF-gnZ5_X9rDZ6LiJvDODgQG2CURvcA"
)

# Любой sender имеет метод send_message для отправки без создания клиента, клиент нужен для удобного управления
# tg.send_message(chat_id=0123456,
#     text="test",
#     parse_mode = "HTML",)

email = Email(
    host="smtp.gmail.com",
    port=587,
    login="example@gmail.com",
    passw="passw"
)
client = CreateClient(
    tg,
    email
)

client.send.telegram(chat_id=2075302695, text="Hello1") # Отправка через Email
client.send.email(email="marakin09@mail.ru", text="Hello1", subject="subject") # Отправка через Telegram
client.send.all(chat_id=2075302695, email="marakin09@mail.ru", text="Hello1", subject_email="subject") # Отправка всеми способами
```

### Асинхронные методы

Пример для иcпользования с асинхронными методами

```python
from notifiercraft import CreateAsyncClient, AsyncTelegram, AsyncEmail # Импортируем AsyncClient и AsyncSenders
import asyncio

tg = AsyncTelegram(
    token="6804851619:AAElnF-gnZ5_X9rDZ6LiJvDODgQG2CURvcA"
)

# Любой sender имеет метод send_message для отправки без создания клиента, клиент нужен для удобного управления
# await tg.send_message(chat_id=0123456,
#     text="test",
#     parse_mode = "HTML",)


email = AsyncEmail(
    host="smtp.gmail.com",
    port=587,
    login="example@gmail.com",
    passw="password"
)
client = CreateAsyncClient(
    tg,
    email
)

async def main():
    await client.send.telegram(chat_id=2075302695, text="AsyncHello1") # Отправка через Email
    await client.send.email(email="marakin09@mail.ru", text="AsyncHello1", subject="Asyncsubject") # Отправка через Telegram
    await client.send.all(chat_id=2075302695, email="marakin09@mail.ru", text="AsyncHello1", subject_email="Asyncsubject") # Отправка всеми способами
    await tg.close() # Закрываем сессию
    
asyncio.run(main())
```


## Планируемые обновления

В ближайших обновлениях планируется добавление следующих возможностей:

- Поддержка Telegram userbot
- Интеграция с Discord-ботами
- Поддержка VK-ботов
- Отправка SMS

## Лицензия

Этот проект распространяется под лицензией MIT License. См. [LICENSE](LICENSE) для подробностей.

## Контрибьюции

Если вы хотите внести изменения или улучшения в проект, пожалуйста, создайте Pull Request или откройте Issue в репозитории.

---


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/marakhd/notifier-craft",
    "name": "notifier-craft",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.12",
    "maintainer_email": null,
    "keywords": "notify, notifycraft, notify-craft, notifications, marakhd",
    "author": "marakhd",
    "author_email": "marakin09@mail.ru",
    "download_url": "https://files.pythonhosted.org/packages/c5/99/876104360f9af7b5af2e73aec84935e14c3d81e0b1898aeb5147103c9822/notifier_craft-0.1.0.tar.gz",
    "platform": null,
    "description": "# Notifier Craft\n\n**Notifier Craft** \u2014 \u044d\u0442\u043e \u043c\u043e\u0449\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f Python, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f\u043c\u0438. \n\u041e\u043d\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u0430\u043a \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435, \u0442\u0430\u043a \u0438 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043a\u0430\u043d\u0430\u043b\u044b. \n\u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 Telegram-\u0431\u043e\u0442\u043e\u0432 (\u043a\u0430\u043a \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Telebot, \u0442\u0430\u043a \u0438 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e aiogram) \u0438 \u0447\u0435\u0440\u0435\u0437 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0443\u044e \u043f\u043e\u0447\u0442\u0443 (\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c smtplib). \n\u0412 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 Telegram userbot, Discord-\u0431\u043e\u0442\u043e\u0432, VK-\u0431\u043e\u0442\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0443 SMS.\n\n## \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\n- \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 pip\n\n```bash\npip install notifier-craft\n```\n- \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441 GitHub\n\n```bash\npip install git+https://github.com/marakhd/notifier-craft\n```\n\n## \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\n\n### \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b\n\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u0438c\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438\n\n```python\nfrom notifiercraft import CreateClient, Telegram, Email # \u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c Client \u0438 Senders\n\ntg = Telegram(\n    token=\"6804851619:AAElnF-gnZ5_X9rDZ6LiJvDODgQG2CURvcA\"\n)\n\n# \u041b\u044e\u0431\u043e\u0439 sender \u0438\u043c\u0435\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 send_message \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0431\u0435\u0437 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u043a\u043b\u0438\u0435\u043d\u0442 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\n# tg.send_message(chat_id=0123456,\n#     text=\"test\",\n#     parse_mode = \"HTML\",)\n\nemail = Email(\n    host=\"smtp.gmail.com\",\n    port=587,\n    login=\"example@gmail.com\",\n    passw=\"passw\"\n)\nclient = CreateClient(\n    tg,\n    email\n)\n\nclient.send.telegram(chat_id=2075302695, text=\"Hello1\") # \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 Email\nclient.send.email(email=\"marakin09@mail.ru\", text=\"Hello1\", subject=\"subject\") # \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 Telegram\nclient.send.all(chat_id=2075302695, email=\"marakin09@mail.ru\", text=\"Hello1\", subject_email=\"subject\") # \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0432\u0441\u0435\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438\n```\n\n### \u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b\n\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f \u0438c\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438\n\n```python\nfrom notifiercraft import CreateAsyncClient, AsyncTelegram, AsyncEmail # \u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c AsyncClient \u0438 AsyncSenders\nimport asyncio\n\ntg = AsyncTelegram(\n    token=\"6804851619:AAElnF-gnZ5_X9rDZ6LiJvDODgQG2CURvcA\"\n)\n\n# \u041b\u044e\u0431\u043e\u0439 sender \u0438\u043c\u0435\u0435\u0442 \u043c\u0435\u0442\u043e\u0434 send_message \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0431\u0435\u0437 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u043a\u043b\u0438\u0435\u043d\u0442 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\n# await tg.send_message(chat_id=0123456,\n#     text=\"test\",\n#     parse_mode = \"HTML\",)\n\n\nemail = AsyncEmail(\n    host=\"smtp.gmail.com\",\n    port=587,\n    login=\"example@gmail.com\",\n    passw=\"password\"\n)\nclient = CreateAsyncClient(\n    tg,\n    email\n)\n\nasync def main():\n    await client.send.telegram(chat_id=2075302695, text=\"AsyncHello1\") # \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 Email\n    await client.send.email(email=\"marakin09@mail.ru\", text=\"AsyncHello1\", subject=\"Asyncsubject\") # \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 Telegram\n    await client.send.all(chat_id=2075302695, email=\"marakin09@mail.ru\", text=\"AsyncHello1\", subject_email=\"Asyncsubject\") # \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0432\u0441\u0435\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438\n    await tg.close() # \u0417\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u0435\u0441\u0441\u0438\u044e\n    \nasyncio.run(main())\n```\n\n\n## \u041f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\n\n\u0412 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0445 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u0445 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439:\n\n- \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Telegram userbot\n- \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 Discord-\u0431\u043e\u0442\u0430\u043c\u0438\n- \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 VK-\u0431\u043e\u0442\u043e\u0432\n- \u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 SMS\n\n## \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\n\n\u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 MIT License. \u0421\u043c. [LICENSE](LICENSE) \u0434\u043b\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0435\u0439.\n\n## \u041a\u043e\u043d\u0442\u0440\u0438\u0431\u044c\u044e\u0446\u0438\u0438\n\n\u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u043d\u0435\u0441\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432 \u043f\u0440\u043e\u0435\u043a\u0442, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 Pull Request \u0438\u043b\u0438 \u043e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 Issue \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438.\n\n---\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Async/sync library for sending notifications",
    "version": "0.1.0",
    "project_urls": {
        "Homepage": "https://github.com/marakhd/notifier-craft",
        "Repository": "https://github.com/marakhd/notifier-craft"
    },
    "split_keywords": [
        "notify",
        " notifycraft",
        " notify-craft",
        " notifications",
        " marakhd"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1cfb1cbd0b59ef2c767c718fb71c094956d9a9b6c7bcef13f99e90b6304ccafe",
                "md5": "3e5884edbac772bd926b5418c1791de7",
                "sha256": "848613fa71ce591f86d5726b386d3e76bde288078317d403e37bc8cec26df550"
            },
            "downloads": -1,
            "filename": "notifier_craft-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3e5884edbac772bd926b5418c1791de7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.12",
            "size": 7159,
            "upload_time": "2024-07-30T23:07:36",
            "upload_time_iso_8601": "2024-07-30T23:07:36.110768Z",
            "url": "https://files.pythonhosted.org/packages/1c/fb/1cbd0b59ef2c767c718fb71c094956d9a9b6c7bcef13f99e90b6304ccafe/notifier_craft-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c599876104360f9af7b5af2e73aec84935e14c3d81e0b1898aeb5147103c9822",
                "md5": "b15336a65b108eef3515900302eff823",
                "sha256": "d5ad9a0c23f28dbd0fe76c0009b9e30460bcc497df360034841d7c44267511d1"
            },
            "downloads": -1,
            "filename": "notifier_craft-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "b15336a65b108eef3515900302eff823",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.12",
            "size": 5100,
            "upload_time": "2024-07-30T23:07:37",
            "upload_time_iso_8601": "2024-07-30T23:07:37.444563Z",
            "url": "https://files.pythonhosted.org/packages/c5/99/876104360f9af7b5af2e73aec84935e14c3d81e0b1898aeb5147103c9822/notifier_craft-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-30 23:07:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "marakhd",
    "github_project": "notifier-craft",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "notifier-craft"
}
        
Elapsed time: 0.27759s