quote-api / README.md
akkun3704's picture
Update README.md
c7cf0a3
---
title: quote-api
sdk: docker
emoji: 👁
colorFrom: green
colorTo: blue
---
# quote-api
[![wakatime](https://wakatime.com/badge/github/LyoSU/quote-api.svg)](https://wakatime.com/badge/github/LyoSU/quote-api)
Апи для генерации Telegram цитат
## Методы
##### Создание цитаты
```http
POST /generate
```
Пример JSON запроса:
```json
{
"type": "quote",
"format": "png",
"backgroundColor": "#1b1429",
"width": 512,
"height": 768,
"scale": 2,
"messages": [
{
"entities": [],
"chatId": 66478514,
"avatar": true,
"from": {
"id": 66478514,
"first_name": "Yuri 💜",
"last_name": "Ly",
"username": "LyoSU",
"language_code": "ru",
"title": "Yuri 💜 Ly",
"photo": {
"small_file_id": "AQADAgADCKoxG7Jh9gMACBbSEZguAAMCAAOyYfYDAATieVimvJOu7M43BQABHgQ",
"small_file_unique_id": "AQADFtIRmC4AA843BQAB",
"big_file_id": "AQADAgADCKoxG7Jh9gMACBbSEZguAAMDAAOyYfYDAATieVimvJOu7NA3BQABHgQ",
"big_file_unique_id": "AQADFtIRmC4AA9A3BQAB"
},
"type": "private",
"name": "Yuri 💜 Ly"
},
"text": "I love you 💜",
"replyMessage": {}
}
]
}
```
Медиа:
```json
{
"type": "quote",
"format": "png",
"backgroundColor": "#1b1429",
"width": 512,
"height": 768,
"scale": 2,
"messages": [
{
"media": [
{
"file_id": "CAACAgIAAxkBAAIyH2AAAUcJoPJqv4uOPabtiSR3judSnQACaQEAAiI3jgQe29BUaNTqrx4E",
"file_size": 22811,
"height": 512,
"width": 512
}
],
"mediaType": "sticker",
"chatId": 66478514,
"avatar": true,
"from": {
"id": 66478514,
"first_name": "Yuri 💜",
"last_name": "Ly",
"username": "LyoSU",
"language_code": "ru",
"title": "Yuri 💜 Ly",
"photo": {
"small_file_id": "AQADAgADCKoxG7Jh9gMACBbSEZguAAMCAAOyYfYDAATieVimvJOu7M43BQABHgQ",
"small_file_unique_id": "AQADFtIRmC4AA843BQAB",
"big_file_id": "AQADAgADCKoxG7Jh9gMACBbSEZguAAMDAAOyYfYDAATieVimvJOu7NA3BQABHgQ",
"big_file_unique_id": "AQADFtIRmC4AA9A3BQAB"
},
"type": "private",
"name": "Yuri 💜 Ly"
},
"replyMessage": {}
}
]
}
```
Без Telegram
```json
{
"type": "quote",
"format": "png",
"backgroundColor": "#1b1429",
"width": 512,
"height": 768,
"scale": 2,
"messages": [
{
"entities": [],
"media": {
"url": "https://via.placeholder.com/1000"
},
"avatar": true,
"from": {
"id": 1,
"name": "Mike",
"photo": {
"url": "https://via.placeholder.com/100"
}
},
"text": "Hey",
"replyMessage": {}
}
]
}
```
Параметры:
| Поле | Тип | Описание |
| :------------ | :------------ | :------------ |
| type | string | Тип выходного изображения. Может быть: quote, image, null |
| backgroundColor | string | Цвет фона цитаты. Может быть Hex, название или random для случайного цвета |
| messages | array | Массив из сообщений |
| width | number | Максимальная ширина |
| height | number | Максимальная высота |
| scale | number | Маcштаб |
Пример ответа:
```json
{
"ok": true,
"result": {
"image": "base64 image",
"type": "quote",
"width": 512,
"height": 359
}
}
```
## Примеры запросов:
> JavaScript
```js
const axios = require('axios')
const fs = require('fs')
const text = "Hello World"
const username = "Alι_Aryαɴ"
const avatar = "https://telegra.ph/file/59952c903fdfb10b752b3.jpg"
const json = {
"type": "quote",
"format": "png",
"backgroundColor": "#FFFFFF",
"width": 512,
"height": 768,
"scale": 2,
"messages": [
{
"entities": [],
"avatar": true,
"from": {
"id": 1,
"name": username,
"photo": {
"url": avatar
}
},
"text": text,
"replyMessage": {}
}
]
};
const response = axios.post('https://bot.lyo.su/quote/generate', json, {
headers: {'Content-Type': 'application/json'}
}).then(res => {
const buffer = Buffer.from(res.data.result.image, 'base64')
fs.writeFile('Quotly.png', buffer, (err) => {
if (err) throw err;
})
});
```
> Python
```py
import requests
import base64
text = "Hello World"
username = "Alι_Aryαɴ"
avatar = "https://telegra.ph/file/59952c903fdfb10b752b3.jpg"
json = {
"type": "quote",
"format": "webp",
"backgroundColor": "#FFFFFF",
"width": 512,
"height": 768,
"scale": 2,
"messages": [
{
"entities": [],
"avatar": True,
"from": {
"id": 1,
"name": username,
"photo": {
"url": avatar
}
},
"text": text,
"replyMessage": {}
}
]
}
response = requests.post('https://bot.lyo.su/quote/generate', json=json).json()
buffer = base64.b64decode(response['result']['image'].encode('utf-8'))
open('Quotly.png', 'wb').write(buffer)
print('Quotly.png')
```
### Response
![Quotly.png](assets/Quotly.png)