2021-06-17 17:56:16 +02:00
# TGScraper
2021-06-21 23:55:18 +02:00
[![License ](http://poser.pugx.org/sysbot/tgscraper/license )](https://packagist.org/packages/sysbot/tgscraper)
![Required PHP Version ](https://img.shields.io/badge/php-%E2%89%A58.0-brightgreen )
[![Latest Stable Version ](http://poser.pugx.org/sysbot/tgscraper/v )](https://packagist.org/packages/sysbot/tgscraper)
2021-06-22 12:20:40 +02:00
[![Dependencies ](https://img.shields.io/librariesio/github/Sysbot-org/tgscraper )](https://libraries.io/github/Sysbot-org/tgscraper)
[![Code Quality ](https://img.shields.io/scrutinizer/quality/g/Sysbot-org/tgscraper )](https://scrutinizer-ci.com/g/Sysbot-org/tgscraper/?branch=master)
2021-06-21 23:55:18 +02:00
A PHP library used to extract JSON data (and auto-generate PHP classes)
from [Telegram bot API documentation page ](https://core.telegram.org/bots/api ).
2021-08-23 13:12:50 +02:00
## Changelog
Interested in recent changes? Have a look [here ](CHANGELOG.md )!
2021-06-17 17:56:16 +02:00
## Installation
Install the library with composer:
```bash
2021-08-23 14:09:45 +02:00
$ composer require sysbot/tgscraper --prefer-stable
```
(Optional) Install the cache package:
```bash
$ composer require sysbot/tgscraper-cache
2021-06-17 17:56:16 +02:00
```
## Using from command line
2021-07-24 19:07:33 +02:00
Once installed, you can use the CLI to interact with the library.
For basic help and command list:
```bash
$ vendor/bin/tgscraper help
```
### JSON
Extract the latest schema in a human-readable JSON:
```bash
$ vendor/bin/tgscraper app:export-schema --readable botapi.json
```
Or, if you want a Postman-compatible JSON (thanks to [davtur19 ](https://github.com/davtur19/TuriBotGen/blob/master/postman.php )):
```bash
$ vendor/bin/tgscraper app:export-schema --postman botapi_postman.json
```
### YAML
Extract the latest schema in YAML format:
```bash
$ vendor/bin/tgscraper app:export-schema --yaml botapi.yaml
```
2021-08-23 13:12:50 +02:00
### OpenAPI
2021-08-23 14:09:45 +02:00
Extract the latest OpenAPI schema in JSON format:
```bash
$ vendor/bin/tgscraper app:export-schema --openapi botapi_openapi.json
```
Or, if you prefer YAML:
```bash
$ vendor/bin/tgscraper app:export-schema --openapi --yaml botapi_openapi.yaml
```
2021-08-23 13:12:50 +02:00
2021-07-24 19:07:33 +02:00
### Stubs
2021-08-23 13:12:50 +02:00
_Note: since Telegram may change the page format at any time, do **NOT** rely on the automagically generated
stubs from this library, **ALWAYS** review the code!_
2021-07-24 23:11:14 +02:00
TGScraper can also generate class stubs that you can use in your library. A sample implementation is available in the [Sysbot Telegram module ](https://github.com/Sysbot-org/Sysbot-tg ).
2021-07-24 19:07:33 +02:00
2021-08-23 13:12:50 +02:00
Create stubs in the `out/` directory using `Sysbot\Telegram` as namespace prefix:
2021-06-21 23:55:18 +02:00
2021-06-17 17:56:16 +02:00
```bash
2021-08-23 13:12:50 +02:00
$ vendor/bin/tgscraper app:create-stubs --namespace-prefix "Sysbot\Telegram" out
```
## Custom format
If you're interested in the custom format generated by TGScraper, you can find its schema [here ](docs/schema.json ).