easy-async-tg-notify


Nameeasy-async-tg-notify JSON
Version 0.1 PyPI version JSON
download
home_pagehttps://github.com/Yakvenalex/easy_async_tg_notify
SummaryAsynchronous Telegram notification sender
upload_time2024-07-26 10:22:12
maintainerNone
docs_urlNone
authorAlexey Yakovenko
requires_python>=3.6
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # easy_async_tg_notify

```markdown
`easy_async_tg_notify` простая асинхронная библиотека, которая позволит вам без заморочек настроить отправку текстовых,
фото, видео, аудио и прочих уведомлений в телеграмм под свои задачи и проекты. Библиотека работает на чистом API 
телеграмм. Для асинхронности используется httpx.

```

## Особенности

- **Асинхронная работа**: Благодаря этому вы сможете легко интегрировать библиотеку в любой свой проект без блокировок.
- **Отправка любых форматов сообщений**: Библиотека позволит вам отправить: фото, видео, тексты, геоданные и т.д
- **Стилизация текста**: Вы можете отправлять красиво отформатированные сообщения (по умолчанию HTML)
- **Поддержка with**: Благодоря этому вы сможете выстраивать серию из отправок сообщений, вплетая своим функции в соединение с API
- **Отправка уведомлений одному или нескольким пользователям**: На входе принимается или TelegramID пользователя или список
- **Logging**: Настраиваемый логгер, который позволит отследить любые события и ошибки

## Установка

Установить библиотеку можно через pip

```bash
pip install --upgrade easy_async_tg_notify
```

## Пример использования

```python
import asyncio
import os
from decouple import config
from easy_async_tg_notify import Notifier


token = config('TELEGRAM_BOT_TOKEN')
user_id = int(config('TELEGRAM_CHAT_ID'))
users_ids = [int(user_id) for user_id in config('TELEGRAM_CHAT_IDS').split(',')]

# Получаем абсолютный путь к директории, в которой находится текущий скрипт
script_dir = os.path.dirname(os.path.abspath(__file__))
photo = os.path.join(script_dir, 'telegram-logo-27.png')


async def main():
    async with Notifier(token) as notifier:
        await notifier.send_text("Привет, <b>дружище!</b>!", user_id)
        await notifier.send_photo(photo, users_ids)
        await notifier.send_document(photo, user_id, caption='Подпись к документу')
        await notifier.send_contact('+76398836055', 'Алексей', user_id)


asyncio.run(main())

```

## License

Этот проект лицензируется по лицензии [MIT](https://choosealicense.com/licenses/mit/).

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Yakvenalex/easy_async_tg_notify",
    "name": "easy-async-tg-notify",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": null,
    "author": "Alexey Yakovenko",
    "author_email": "mr.mnogo@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/f6/36/b9d1753a23e2178e3c93a2774e95fd0ea637215e2bb337ed8a1723228077/easy_async_tg_notify-0.1.tar.gz",
    "platform": null,
    "description": "# easy_async_tg_notify\r\n\r\n```markdown\r\n`easy_async_tg_notify` \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u0430\u043c \u0431\u0435\u0437 \u0437\u0430\u043c\u043e\u0440\u043e\u0447\u0435\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445,\r\n\u0444\u043e\u0442\u043e, \u0432\u0438\u0434\u0435\u043e, \u0430\u0443\u0434\u0438\u043e \u0438 \u043f\u0440\u043e\u0447\u0438\u0445 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u0432 \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c\u043c \u043f\u043e\u0434 \u0441\u0432\u043e\u0438 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u044b. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u0447\u0438\u0441\u0442\u043e\u043c API \r\n\u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c\u043c. \u0414\u043b\u044f \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f httpx.\r\n\r\n```\r\n\r\n## \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438\r\n\r\n- **\u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430**: \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043b\u0435\u0433\u043a\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0432 \u043b\u044e\u0431\u043e\u0439 \u0441\u0432\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0431\u0435\u0437 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a.\r\n- **\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u043b\u044e\u0431\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439**: \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u0430\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c: \u0444\u043e\u0442\u043e, \u0432\u0438\u0434\u0435\u043e, \u0442\u0435\u043a\u0441\u0442\u044b, \u0433\u0435\u043e\u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0442.\u0434\r\n- **\u0421\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430**: \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u043e \u043e\u0442\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e HTML)\r\n- **\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 with**: \u0411\u043b\u0430\u0433\u043e\u0434\u043e\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0438\u044e \u0438\u0437 \u043e\u0442\u043f\u0440\u0430\u0432\u043e\u043a \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439, \u0432\u043f\u043b\u0435\u0442\u0430\u044f \u0441\u0432\u043e\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 API\r\n- **\u041e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c**: \u041d\u0430 \u0432\u0445\u043e\u0434\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0438\u043b\u0438 TelegramID \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u043b\u0438 \u0441\u043f\u0438\u0441\u043e\u043a\r\n- **Logging**: \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u043b\u043e\u0433\u0433\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0438 \u043e\u0448\u0438\u0431\u043a\u0438\r\n\r\n## \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\r\n\r\n\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u0447\u0435\u0440\u0435\u0437 pip\r\n\r\n```bash\r\npip install --upgrade easy_async_tg_notify\r\n```\r\n\r\n## \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\r\n\r\n```python\r\nimport asyncio\r\nimport os\r\nfrom decouple import config\r\nfrom easy_async_tg_notify import Notifier\r\n\r\n\r\ntoken = config('TELEGRAM_BOT_TOKEN')\r\nuser_id = int(config('TELEGRAM_CHAT_ID'))\r\nusers_ids = [int(user_id) for user_id in config('TELEGRAM_CHAT_IDS').split(',')]\r\n\r\n# \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043a \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u043a\u0440\u0438\u043f\u0442\r\nscript_dir = os.path.dirname(os.path.abspath(__file__))\r\nphoto = os.path.join(script_dir, 'telegram-logo-27.png')\r\n\r\n\r\nasync def main():\r\n    async with Notifier(token) as notifier:\r\n        await notifier.send_text(\"\u041f\u0440\u0438\u0432\u0435\u0442, <b>\u0434\u0440\u0443\u0436\u0438\u0449\u0435!</b>!\", user_id)\r\n        await notifier.send_photo(photo, users_ids)\r\n        await notifier.send_document(photo, user_id, caption='\u041f\u043e\u0434\u043f\u0438\u0441\u044c \u043a \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0443')\r\n        await notifier.send_contact('+76398836055', '\u0410\u043b\u0435\u043a\u0441\u0435\u0439', user_id)\r\n\r\n\r\nasyncio.run(main())\r\n\r\n```\r\n\r\n## License\r\n\r\n\u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 [MIT](https://choosealicense.com/licenses/mit/).\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Asynchronous Telegram notification sender",
    "version": "0.1",
    "project_urls": {
        "Homepage": "https://github.com/Yakvenalex/easy_async_tg_notify"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "eee60603637f27fcf06bdf39fa6c95170666d242279a0d64aa2d0e712dabe8f5",
                "md5": "4781f6781df6cb6e4686db9a081308d2",
                "sha256": "61f5c86ff979425ea618554e07a77a946353fafaebc16b38467e89839b680276"
            },
            "downloads": -1,
            "filename": "easy_async_tg_notify-0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4781f6781df6cb6e4686db9a081308d2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 5241,
            "upload_time": "2024-07-26T10:22:11",
            "upload_time_iso_8601": "2024-07-26T10:22:11.518923Z",
            "url": "https://files.pythonhosted.org/packages/ee/e6/0603637f27fcf06bdf39fa6c95170666d242279a0d64aa2d0e712dabe8f5/easy_async_tg_notify-0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f636b9d1753a23e2178e3c93a2774e95fd0ea637215e2bb337ed8a1723228077",
                "md5": "520c885ab482d25da39ae1c4d16ea55e",
                "sha256": "02a4cca320302195cd8f12254909b924d997e93ca953f0524ef00349eaa350ad"
            },
            "downloads": -1,
            "filename": "easy_async_tg_notify-0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "520c885ab482d25da39ae1c4d16ea55e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 4920,
            "upload_time": "2024-07-26T10:22:12",
            "upload_time_iso_8601": "2024-07-26T10:22:12.964254Z",
            "url": "https://files.pythonhosted.org/packages/f6/36/b9d1753a23e2178e3c93a2774e95fd0ea637215e2bb337ed8a1723228077/easy_async_tg_notify-0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-26 10:22:12",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Yakvenalex",
    "github_project": "easy_async_tg_notify",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "easy-async-tg-notify"
}
        
Elapsed time: 0.74218s