|
--- |
|
title: quote-api |
|
sdk: docker |
|
emoji: 👁 |
|
colorFrom: green |
|
colorTo: blue |
|
--- |
|
# quote-api |
|
|
|
[](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 |
|
|
|
 |