https://github.com/appto-dev/telegram-api-parser
Парсинг Telegram Bot API и генерация PHP файлов типов и методов.
https://github.com/appto-dev/telegram-api-parser
bot parser parser-library telegram telegram-bot telegram-parser
Last synced: 4 months ago
JSON representation
Парсинг Telegram Bot API и генерация PHP файлов типов и методов.
- Host: GitHub
- URL: https://github.com/appto-dev/telegram-api-parser
- Owner: appto-dev
- License: mit
- Created: 2022-10-22T08:43:48.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-02T01:45:54.000Z (5 months ago)
- Last Synced: 2025-01-02T02:52:58.705Z (5 months ago)
- Topics: bot, parser, parser-library, telegram, telegram-bot, telegram-parser
- Language: PHP
- Homepage:
- Size: 713 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Парсер документации Telegram
[](https://opensource.org/licenses/MIT)Мне с периодичностью требуется создать бота в Telegram для моих клиентов.
Я понимаю, что есть достаточно библиотек, для их создания,
но я всегда испытывал некоторые проблемы используя их.- Мне хотелось иметь минимальный набор функций, а именно описание Telegram типов и методов. Чтобы моя IDE (PHPStorm) могла мне подсказывать какие параметры нужно заполнить, для того или иного метода Telegram.
- Все библиотеки которые я использовал до этого, не могли обновляться часто, новые функции из API приходили слишком поздно.
- Некоторые библиотеки содержат кучу не нужного мне функционала или логики.В ручную отслеживать, что изменилось с момента последнего обновления Telegram Bot API, сложно, или невозможно.
Изучив HTML-разметку документации, мне пришла идея создать парсер, который решит проблему поиска изменений в API.
Благодаря которой, я теперь могу получать документированную последнюю версию Bot API, буквально за несколько команд в консоли.🎁 Пример работы генератора: [mahlenko/telegram-bot-cast-laravel](https://github.com/mahlenko/telegram-bot-cast-laravel) - вы можете использовать его в своем проекте.
## 🚀 GitHub Action
Добавлен workflow, который раз в день получает последнюю версию Telegram Bot API.
Если версия обновилась, сгенерирует новые файлы для репозитория [mahlenko/telegram-bot-cast-laravel](https://github.com/mahlenko/telegram-bot-cast-laravel)
теперь там всегда "свежая" сборка.## Установка и использование
Просто склонируйте репозиторий себе, и запустите несколько команд:
- `php console telegram:parse` - для парсинга актуальной документации в JSON файл.
- `php console telegram:generate` - для генерации PHP файлов.✅ Готово! Заберите сгенерированные файлы из директории `build` себе в проект.
## Расширение сгенерированных классов
Для простой работы с классами, может понадобится их расширить собственным классом.
Например, для работы в Laravel, я использую библиотеку [Spatie Laravel Data](https://github.com/spatie/laravel-data), по сути библиотека делает удобной работу с DTO.
Также библиотека дает подсказки IDE по ключам, при создании класса.```php
\Method\SendMessage::from([
'chat_id' => 0000000,
'text' => 'Your message'
])
```Для генерации расширенных классов используйте аргумент `--extends`:
```shell
php console telegram:generate --extends=\\Spatie\\LaravelData\\Data
```После чего, сгенерированные классы получат ваше расширение и все возможности нового класса:
```php
final class SendMessage extends \Spatie\LaravelData\Data {
// ...
}
```Важно! Ваш класс должен реализовывать метод `toArray()`.
## Зависимости
- [imangazaliev/didom](https://github.com/nette/php-generatorhttps://github.com/Imangazaliev/DiDOM)
- [nette/php-generator](https://github.com/nette/php-generator)
- [symfony/console](https://symfony.com/components/Console)## ✨ Благодарности

Вы всегда можете отправить благодарность на чашку кофе или больше 😉 с помощью TON на мой кошелек
`appto-wallet.ton`