# axisbot — Python библиотека для ботов AxisMessenger
## Установка
```bash
pip install axisbot # (после публикации на PyPI)
```
## Быстрый старт (polling)
```python
from axisbot import AxisBot
bot = AxisBot("AxisBotABCDE:12345", base_url="https://your-messenger.com/api")
@bot.on_message
def handle_message(update):
if "ping" in update.text:
bot.send_message(update.chat_id, "pong!")
else:
bot.send_message(update.chat_id, f"Вы написали: {update.text}")
bot.polling()
```
## Webhook-режим
```python
from axisbot import AxisBot
from flask import Flask, request
bot = AxisBot("AxisBotABCDE:12345", base_url="https://your-messenger.com/api")
app = Flask(__name__)
@bot.on_message
def handle(update):
bot.send_message(update.chat_id, "Webhook OK!")
@app.route("/webhook", methods=["POST"])
def webhook():
bot.webhook_handler(request.json)
return "ok"
if __name__ == "__main__":
bot.set_webhook("https://your-server.com/webhook")
app.run(port=8080)
```
## Кнопки и вложения
```python
from axisbot import AxisBot, MessageButton
bot = AxisBot("AxisBotABCDE:12345", base_url="https://your-messenger.com/api")
@bot.on_message
def handle(update):
if update.text == "/buttons":
buttons = [[MessageButton("Кнопка 1", "btn1"), MessageButton("Кнопка 2", "btn2")]]
bot.send_message(update.chat_id, "Выберите:", buttons=buttons)
elif update.button_data:
bot.send_message(update.chat_id, f"Вы нажали: {update.button_data}")
elif update.attachments:
for att in update.attachments:
bot.send_message(update.chat_id, f"Получен файл: {att.filename}")
bot.polling()
```
## Документация
- [Полная документация по AxisMessenger Bot API](../docs/bot_api.md)
## Лицензия
MIT
Raw data
{
"_id": null,
"home_page": "https://github.com/axismessenger/axisbot",
"name": "axisbot",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": null,
"author": "AxisMessenger Team",
"author_email": "support@axismessenger.app",
"download_url": "https://files.pythonhosted.org/packages/60/3d/213a66a86814abbaafce46222a1ccb34f6a9bb4103822c64d49bcb51b0f2/axisbot-0.1.0.tar.gz",
"platform": null,
"description": "# axisbot \u2014 Python \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0431\u043e\u0442\u043e\u0432 AxisMessenger\r\n\r\n## \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\r\n\r\n```bash\r\npip install axisbot # (\u043f\u043e\u0441\u043b\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043d\u0430 PyPI)\r\n```\r\n\r\n## \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442 (polling)\r\n\r\n```python\r\nfrom axisbot import AxisBot\r\n\r\nbot = AxisBot(\"AxisBotABCDE:12345\", base_url=\"https://your-messenger.com/api\")\r\n\r\n@bot.on_message\r\ndef handle_message(update):\r\n if \"ping\" in update.text:\r\n bot.send_message(update.chat_id, \"pong!\")\r\n else:\r\n bot.send_message(update.chat_id, f\"\u0412\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438: {update.text}\")\r\n\r\nbot.polling()\r\n```\r\n\r\n## Webhook-\u0440\u0435\u0436\u0438\u043c\r\n\r\n```python\r\nfrom axisbot import AxisBot\r\nfrom flask import Flask, request\r\n\r\nbot = AxisBot(\"AxisBotABCDE:12345\", base_url=\"https://your-messenger.com/api\")\r\napp = Flask(__name__)\r\n\r\n@bot.on_message\r\ndef handle(update):\r\n bot.send_message(update.chat_id, \"Webhook OK!\")\r\n\r\n@app.route(\"/webhook\", methods=[\"POST\"])\r\ndef webhook():\r\n bot.webhook_handler(request.json)\r\n return \"ok\"\r\n\r\nif __name__ == \"__main__\":\r\n bot.set_webhook(\"https://your-server.com/webhook\")\r\n app.run(port=8080)\r\n```\r\n\r\n## \u041a\u043d\u043e\u043f\u043a\u0438 \u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u0438\u044f\r\n\r\n```python\r\nfrom axisbot import AxisBot, MessageButton\r\n\r\nbot = AxisBot(\"AxisBotABCDE:12345\", base_url=\"https://your-messenger.com/api\")\r\n\r\n@bot.on_message\r\ndef handle(update):\r\n if update.text == \"/buttons\":\r\n buttons = [[MessageButton(\"\u041a\u043d\u043e\u043f\u043a\u0430 1\", \"btn1\"), MessageButton(\"\u041a\u043d\u043e\u043f\u043a\u0430 2\", \"btn2\")]]\r\n bot.send_message(update.chat_id, \"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435:\", buttons=buttons)\r\n elif update.button_data:\r\n bot.send_message(update.chat_id, f\"\u0412\u044b \u043d\u0430\u0436\u0430\u043b\u0438: {update.button_data}\")\r\n elif update.attachments:\r\n for att in update.attachments:\r\n bot.send_message(update.chat_id, f\"\u041f\u043e\u043b\u0443\u0447\u0435\u043d \u0444\u0430\u0439\u043b: {att.filename}\")\r\n\r\nbot.polling()\r\n```\r\n\r\n## \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\r\n\r\n- [\u041f\u043e\u043b\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e AxisMessenger Bot API](../docs/bot_api.md)\r\n\r\n## \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\r\nMIT \r\n",
"bugtrack_url": null,
"license": null,
"summary": "Python \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0431\u043e\u0442\u043e\u0432 AxisMessenger (\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 API)",
"version": "0.1.0",
"project_urls": {
"Homepage": "https://github.com/axismessenger/axisbot"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "6a696d9775a761de5b1f87d92126ddd0a9a96b854d503c045d42fdf36411e2e7",
"md5": "2022f683d1aafc3a412d50ea6e8f1181",
"sha256": "ec8a75dccd62bfbf312f10b247a69396d5794eca8a99cbf28e959c201324cbbf"
},
"downloads": -1,
"filename": "axisbot-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2022f683d1aafc3a412d50ea6e8f1181",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1992,
"upload_time": "2025-07-09T10:35:05",
"upload_time_iso_8601": "2025-07-09T10:35:05.451670Z",
"url": "https://files.pythonhosted.org/packages/6a/69/6d9775a761de5b1f87d92126ddd0a9a96b854d503c045d42fdf36411e2e7/axisbot-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "603d213a66a86814abbaafce46222a1ccb34f6a9bb4103822c64d49bcb51b0f2",
"md5": "3da1de7828740dbb8d8a4777272ef02e",
"sha256": "2e949bac14505f38dc57a04bfcb7d17e0c85b7cfee0cbb0640ae17299b6dad3e"
},
"downloads": -1,
"filename": "axisbot-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "3da1de7828740dbb8d8a4777272ef02e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 2070,
"upload_time": "2025-07-09T10:35:06",
"upload_time_iso_8601": "2025-07-09T10:35:06.869250Z",
"url": "https://files.pythonhosted.org/packages/60/3d/213a66a86814abbaafce46222a1ccb34f6a9bb4103822c64d49bcb51b0f2/axisbot-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-09 10:35:06",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "axismessenger",
"github_project": "axisbot",
"github_not_found": true,
"lcname": "axisbot"
}