# 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"
}