mirror of
https://github.com/MrSedan/neuro-reply-bot-reworked.git
synced 2026-01-14 13:39:42 +03:00
37 lines
1.5 KiB
Python
37 lines
1.5 KiB
Python
import json
|
|
from typing import List, Optional
|
|
|
|
from aiogram import types
|
|
from aiogram.types import MessageEntity
|
|
from aiohttp import ClientSession
|
|
|
|
from .api_method import ApiMethod
|
|
|
|
|
|
class Image(ApiMethod):
|
|
async def add(self, from_id: str, file_id: str, has_spoiler: bool | None, message_id: int, text: str, media_group_id: str | None, message_entities: Optional[List[MessageEntity]], message: types.Message):
|
|
payload = {'from_user_id': from_id, 'file_id': file_id,
|
|
'has_spoiler': has_spoiler, 'message_id': message_id }
|
|
if text != '':
|
|
payload['post_text'] = text.replace('/newpost ', '')
|
|
if media_group_id != 'None' and media_group_id is not None:
|
|
payload['media_group_id'] = media_group_id
|
|
if message_entities is not None:
|
|
mes_ent = list(map(lambda x: x.model_dump(), message_entities))
|
|
arr =[]
|
|
for item in mes_ent:
|
|
if item['type'] == 'bot_command': continue
|
|
item['offset'] -= 9
|
|
arr.append(item)
|
|
payload['message_entities'] = json.dumps(arr)
|
|
if has_spoiler is None:
|
|
payload.pop('has_spoiler')
|
|
payload = json.dumps(payload)
|
|
async with ClientSession() as session:
|
|
response = await session.post(
|
|
self.api_url+'/image/add', data=payload, headers={'Content-Type': 'application/json'})
|
|
data = await response.json()
|
|
if 'statusCode' in data:
|
|
raise Exception(data['message'])
|
|
return data['created']
|