aio-1c-connect


Nameaio-1c-connect JSON
Version 0.0.3 PyPI version JSON
download
home_pagehttps://github.com/LilKirill00/aio-connect
SummaryThis is a library for creating bots in the 1C-Connect environment
upload_time2024-03-04 05:30:52
maintainer
docs_urlNone
authorLilKirill00
requires_python>=3.8
license
keywords 1c-connect
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # aio-connect

**aio-connect** — пакет предназначенный для создания ботов в среде 1С-Коннект.

За основу для написания пакета была заимствована библиотека [aiogram](https://github.com/aiogram/aiogram).

## Установка
Установить с помощью pip:
```python
pip install aio-1c-connect
```

## Использование
Пример реализации бота с использованием данного пакета: [aio-connect-simple-bot](https://github.com/LilKirill00/aio-connect-simple-bot) 

Пример создания бота:
```python
import sys
import logging

from aiohttp import web

from config_reader import config
from aio_connect.types import HookType
from aio_connect import Bot, Dispatcher, Router, types, F
from aio_connect.webhook.aiohttp_server import SimpleRequestHandler, setup_application

SERVER_API = config.SERVER_API

# host
BASE_WEBHOOK_URL = config.BASE_WEBHOOK_URL
WEBHOOK_PATH = config.WEBHOOK_PATH

# listen
WEB_SERVER_HOST = config.WEB_SERVER_HOST
WEB_SERVER_PORT = config.WEB_SERVER_PORT

# line
LINE_ID = config.LINE_ID

bot = Bot(
    api_login=config.API_LOGIN.get_secret_value(),
    api_password=config.API_PASSSWORD.get_secret_value(),
    line_id=LINE_ID,
    base=SERVER_API
)


async def on_startup() -> None:
    await bot.set_hook(type=HookType.BOT, id=LINE_ID, url=BASE_WEBHOOK_URL + WEBHOOK_PATH + LINE_ID)


router = Router()


@router.line(F.text)
async def text_handler(line: types.TypeLine) -> None:
    if line.user_id == line.author_id:
        await bot.send_message_line(line_id=line.line_id, user_id=line.user_id, text=line.text)


def main() -> None:
    dp = Dispatcher()
    dp.include_router(router)

    dp.startup.register(on_startup)

    app = web.Application()

    webhook_requests_handler = SimpleRequestHandler(
        dispatcher=dp,
        bot=bot,
    )
    # Register webhook handler on application
    webhook_requests_handler.register(app, path=WEBHOOK_PATH + LINE_ID)

    # Mount dispatcher startup and shutdown hooks to aiohttp application
    setup_application(app, dp, bot=bot)

    # And finally start webserver
    web.run_app(app, host=WEB_SERVER_HOST, port=WEB_SERVER_PORT)


if __name__ == "__main__":
    logging.basicConfig(level=logging.INFO, stream=sys.stdout)
    main()
```

## Документация
Написание пакета основывалось на: [Документации для разработчиков](https://1c-connect.atlassian.net/wiki/spaces/PUBLIC/pages/975568915/4.).

## Лицензия
Пакет распространяется под лицензией MIT. Подробности можно узнать в файле
[LICENSE](https://github.com/LilKirill00/aio-connect/blob/main/LICENSE).

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/LilKirill00/aio-connect",
    "name": "aio-1c-connect",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "1C-Connect",
    "author": "LilKirill00",
    "author_email": "pc.browsers.1@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/c9/38/81357ee9db91c38d0c5f865617ff8c112b79f76c7db64fc42f850b7b14c4/aio-1c-connect-0.0.3.tar.gz",
    "platform": null,
    "description": "# aio-connect\n\n**aio-connect** \u2014 \u043f\u0430\u043a\u0435\u0442 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u043e\u0442\u043e\u0432 \u0432 \u0441\u0440\u0435\u0434\u0435 1\u0421-\u041a\u043e\u043d\u043d\u0435\u043a\u0442.\n\n\u0417\u0430 \u043e\u0441\u043d\u043e\u0432\u0443 \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u0430 \u0431\u044b\u043b\u0430 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 [aiogram](https://github.com/aiogram/aiogram).\n\n## \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e pip:\n```python\npip install aio-1c-connect\n```\n\n## \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u043e\u0442\u0430 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430: [aio-connect-simple-bot](https://github.com/LilKirill00/aio-connect-simple-bot) \n\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u043e\u0442\u0430:\n```python\nimport sys\nimport logging\n\nfrom aiohttp import web\n\nfrom config_reader import config\nfrom aio_connect.types import HookType\nfrom aio_connect import Bot, Dispatcher, Router, types, F\nfrom aio_connect.webhook.aiohttp_server import SimpleRequestHandler, setup_application\n\nSERVER_API = config.SERVER_API\n\n# host\nBASE_WEBHOOK_URL = config.BASE_WEBHOOK_URL\nWEBHOOK_PATH = config.WEBHOOK_PATH\n\n# listen\nWEB_SERVER_HOST = config.WEB_SERVER_HOST\nWEB_SERVER_PORT = config.WEB_SERVER_PORT\n\n# line\nLINE_ID = config.LINE_ID\n\nbot = Bot(\n    api_login=config.API_LOGIN.get_secret_value(),\n    api_password=config.API_PASSSWORD.get_secret_value(),\n    line_id=LINE_ID,\n    base=SERVER_API\n)\n\n\nasync def on_startup() -> None:\n    await bot.set_hook(type=HookType.BOT, id=LINE_ID, url=BASE_WEBHOOK_URL + WEBHOOK_PATH + LINE_ID)\n\n\nrouter = Router()\n\n\n@router.line(F.text)\nasync def text_handler(line: types.TypeLine) -> None:\n    if line.user_id == line.author_id:\n        await bot.send_message_line(line_id=line.line_id, user_id=line.user_id, text=line.text)\n\n\ndef main() -> None:\n    dp = Dispatcher()\n    dp.include_router(router)\n\n    dp.startup.register(on_startup)\n\n    app = web.Application()\n\n    webhook_requests_handler = SimpleRequestHandler(\n        dispatcher=dp,\n        bot=bot,\n    )\n    # Register webhook handler on application\n    webhook_requests_handler.register(app, path=WEBHOOK_PATH + LINE_ID)\n\n    # Mount dispatcher startup and shutdown hooks to aiohttp application\n    setup_application(app, dp, bot=bot)\n\n    # And finally start webserver\n    web.run_app(app, host=WEB_SERVER_HOST, port=WEB_SERVER_PORT)\n\n\nif __name__ == \"__main__\":\n    logging.basicConfig(level=logging.INFO, stream=sys.stdout)\n    main()\n```\n\n## \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\n\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u0430 \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u043b\u043e\u0441\u044c \u043d\u0430: [\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432](https://1c-connect.atlassian.net/wiki/spaces/PUBLIC/pages/975568915/4.).\n\n## \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\n\u041f\u0430\u043a\u0435\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. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0432 \u0444\u0430\u0439\u043b\u0435\n[LICENSE](https://github.com/LilKirill00/aio-connect/blob/main/LICENSE).\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "This is a library for creating bots in the 1C-Connect environment",
    "version": "0.0.3",
    "project_urls": {
        "GitHub": "https://github.com/LilKirill00/aio-connect",
        "Homepage": "https://github.com/LilKirill00/aio-connect"
    },
    "split_keywords": [
        "1c-connect"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7a79c3d105d2b51ca5a6e73c242e5d079405e102017875118eea1c403256e00b",
                "md5": "5807f62bc0817e8a77c1e6df808cdd6c",
                "sha256": "295d6794aa0d221ca5166cc804b7a9da943928a2f790f6f13de499442a414d0b"
            },
            "downloads": -1,
            "filename": "aio_1c_connect-0.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5807f62bc0817e8a77c1e6df808cdd6c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 107791,
            "upload_time": "2024-03-04T05:30:49",
            "upload_time_iso_8601": "2024-03-04T05:30:49.943577Z",
            "url": "https://files.pythonhosted.org/packages/7a/79/c3d105d2b51ca5a6e73c242e5d079405e102017875118eea1c403256e00b/aio_1c_connect-0.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c93881357ee9db91c38d0c5f865617ff8c112b79f76c7db64fc42f850b7b14c4",
                "md5": "d42682383b086486703b891d2025716a",
                "sha256": "7a1d2b70b189ce8a78fc45782f74fbd6349cac065ba11d96dfdf97cdc80a3072"
            },
            "downloads": -1,
            "filename": "aio-1c-connect-0.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "d42682383b086486703b891d2025716a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 55620,
            "upload_time": "2024-03-04T05:30:52",
            "upload_time_iso_8601": "2024-03-04T05:30:52.222693Z",
            "url": "https://files.pythonhosted.org/packages/c9/38/81357ee9db91c38d0c5f865617ff8c112b79f76c7db64fc42f850b7b14c4/aio-1c-connect-0.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-04 05:30:52",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "LilKirill00",
    "github_project": "aio-connect",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "aio-1c-connect"
}
        
Elapsed time: 0.69552s