{"id":20348087,"url":"https://github.com/uriid1/tnt-tg-bot","last_synced_at":"2025-09-06T05:34:07.715Z","repository":{"id":114785666,"uuid":"606235177","full_name":"uriid1/tnt-tg-bot","owner":"uriid1","description":"Lua/Tarantool library for the telegram bot api","archived":false,"fork":false,"pushed_at":"2025-06-01T18:17:01.000Z","size":567,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-02T04:43:59.616Z","etag":null,"topics":["api","bot","lua","tarantool","telegram","telegram-bot","telegram-bot-api"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uriid1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-02-24T22:57:01.000Z","updated_at":"2025-06-01T18:17:06.000Z","dependencies_parsed_at":"2023-11-11T20:21:58.414Z","dependency_job_id":"f5adbd9d-4946-48c6-bc27-be0b4e65b3f5","html_url":"https://github.com/uriid1/tnt-tg-bot","commit_stats":null,"previous_names":["uriid1/tnt-tg-bot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/uriid1/tnt-tg-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uriid1%2Ftnt-tg-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uriid1%2Ftnt-tg-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uriid1%2Ftnt-tg-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uriid1%2Ftnt-tg-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uriid1","download_url":"https://codeload.github.com/uriid1/tnt-tg-bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uriid1%2Ftnt-tg-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273859032,"owners_count":25180816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","bot","lua","tarantool","telegram","telegram-bot","telegram-bot-api"],"created_at":"2024-11-14T22:19:09.194Z","updated_at":"2025-09-06T05:34:07.702Z","avatar_url":"https://github.com/uriid1.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"Russian | [English](README_EN.md)\u003c/br\u003e\n\n[![luacheck](https://github.com/uriid1/tnt-tg-bot/actions/workflows/luacheck.yml/badge.svg?branch=master)](https://github.com/uriid1/tnt-tg-bot/actions/workflows/luacheck.yml)\n[![License](https://img.shields.io/badge/License-MIT-brightgreen.svg)](LICENSE)\n\n## Описание\ntnt-tg-bot - это библиотека, написанная на Lua для платформы Tarantool, которая предоставляет минималистичный интерфейс для работы с Telegram Bot API.\n\n## Особенности\n  + Практически полная поддержка Telegram Bot API\n  + Простой интерфейс\n  + Асинхронная обработка запросов\n  + Встроенная поддержка работы с платежами в Telegram Stars\n  + Встроенные методы для простой обработки команд, в том числе callback\n  + Вы сами даёте названия событиям, из коробки у вас только - `bot.events.onGetUpdate(ctx)`\n  + Простая работа с Web App (в будущем будет пример)\n  + Базовая поддержка LDoc\n  + Больше 10-ти примеров и они будут пополняться\n  + Легкая интеграция с Tarantool\n\nИз-за простой и понятной архитектуры, отсутствующий функционал добавлять несложно.\n\n## Установка\n\n### Автоматическая\n1. Установите `git`, `curl`, `lua 5.1` и `luarocks`.\n2. (опционально) если нужна работа с Web App: \u003c/br\u003e\n    Потребуется установить rock пакет `luaossl`, для него в вашем дистрибутиве - \u003c/br\u003e\n    установите заголовочные файлы для `lua 5.1` и `openssl`.\n2. Установите [tarantool](https://www.tarantool.io/ru/download/os-installation)\n3. Выполните скрипт автоматической установки необходимых пакетов\n```bash\nbash tnt-tg-bot.pre-build.sh\n```\n5. В случае проблем, перейти к ручной установки.\n\n\u003e [!NOTE]\n\u003e Для успешной сборки `luaossl` - биндинга к OpenSSL, потребуются заголовочные файлы OpenSSL и Lua 5.1.\n\u003e В Ubuntu можно установить, выполнив `sudo apt install libssl-dev liblua5.1-0-dev`.\n\u003e `luaossl` нужен для работы модуля `bot/libs/parseInitData.lua`, модуль нужен для обработки данных веб Mini App.\n\u003e https://core.telegram.org/bots/webapps#validating-data-received-via-the-mini-app\n\n### Ручная\n1. Установите `git`, `curl`, `lua 5.1` и `luarocks`.\n2. Установите [tarantool](https://www.tarantool.io/ru/download/os-installation)\n3. (опционально) если нужна работа с Web App: \u003c/br\u003e\n    Потребуется установить rock пакет `luaossl`, для него в вашем дистрибутиве - \u003c/br\u003e\n    установите заголовочные файлы для `lua 5.1` и `openssl`.\n4. Установка необходимых пакетов с помощью `luarocks`\n  + **HTTP клиент/сервер (обязательно)**\n    ```bash\n    luarocks install --local --tree=$PWD/.rocks --server=https://rocks.tarantool.org/ http\n    ```\n  + **Multipart Post обработчик (обязательно)**\n    ```bash\n    luarocks install --local --tree=$PWD/.rocks --lua-version 5.1 lua-multipart-post 1.0-0\n    ```\n  + **Биндинг к openssl (опционально)**\n    ```bash\n    luarocks install --local --tree=$PWD/.rocks --lua-version 5.1 luaossl\n    ```\n## Примеры\n  + `examples/echo-bot.lua` - Простой эхо-бот\n  + `examples/ping-pong.lua` - Реакция на команду /ping\n  + `examples/send-animation.lua` - Отправка gif по команде /get_animation\n  + `examples/send-document.lua` - Отправка документа по команде /get_document\n  + `examples/send-image.lua` - Отправка изображения по команде /get_image\n  + `examples/send-image-2.lua` - Упрощенный пример отправки изображения через `bot.sendImage`\n  + `examples/send-media-group.lua` - Отправка группы медиа-файлов\n  + `examples/simple-callback.lua` - Пример обработки callback - /send_callback\n  + `examples/simple-callback-2.lua` - Упрощенный пример обработки callback команд\n  + `examples/simple-process-commands.lua` - Пример простого процессинга команд\n  + `examples/routes-example/init.lua` - Пример работы ручек в боте\n  + `examples/stars-payment/init.lua` - Пример обработки платежей в звездах\n  + `examples/stars-payment/echo-bot-webhook.lua` - Простой эхо бот через webhook\n\n### Запуск примера\n`BOT_TOKEN` - токен вашего бота\n```bash\nBOT_TOKEN=\"1348551682:AAFK3iZwBqEHwSrPKyi-hKyAtRgUwXrTiWW\" tarantool examples/echo-bot.lua\n```\n\n## Структура проекта\n  + `bot/init.lua` - Точка входа\n  + `bot/libs` - Вспомогательные библиотеки\n  + `bot/enums` - Инамы\n  + `bot/classes` - Классы для объектов телеграмма\n  + `bot/middlewares` - Посредники\n  + `bot/processes` - Процессы. Пример processCommand - процессинг команд\n  + `bot/types` - Модели/валидаторы для типов телеграмма\n  + `bot/ext` - Встроенные экстеншины\n\n## Интерфейс библиотеки\n\n| Метод/Свойство | Описание | Пример использования |\n|---------------|---------|---------------------|\n| bot:cfg | Инициализация настроек | `bot:cfg { token = \"123468:foobarBAZ\" }` |\n| bot.call | Выполнение запроса к Telegram API | `bot.call('sendMessage', {chat_id = 123, text = 'Привет!'})` |\n| bot.events | Таблица с пользовательскими событиями | `function bot.events.onPoll(ctx) ... end` |\n| bot.events.onGetUpdate | Событие обработки обновлений от Telegram | `function bot.events.onGetUpdate(ctx) ... end` |\n| bot.sendImage | Упрощенная отправка картинки | `examples/send-image-2.lua`  |\n| bot.Command | Минимальный обработчик команд | `bot.Command(ctx)` |\n| bot.CallbackCommand | Минимальный обработчик callback команд | `bot.CallbackCommand(ctx)`\n| bot:startWebHook | Запуск бота на удаленном сервере | Пример `examples/echo-bot-webhook.lua` |\n| bot:startLongPolling | Запуск бота в режиме long polling | Любой пример из `examples/*` |\n\nПо наличию аргументов см. ldoc - `doc/index.html`\n\n## Вклад в проект\nЧерез форк репозитория и открытия Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furiid1%2Ftnt-tg-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Furiid1%2Ftnt-tg-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furiid1%2Ftnt-tg-bot/lists"}