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