| | --- |
| | license: mit |
| | title: quote-api |
| | sdk: docker |
| | emoji: 👁 |
| | colorFrom: red |
| | colorTo: gray |
| | --- |
| | # 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 |
| |
|
| |  |