from .. import loader, utils
from telethon import events
from telethon.errors.rpcerrorlist import YouBlockedUserError
from asyncio.exceptions import TimeoutError
def register(cb):
cb(KKTextMod())
class KKTextMod(loader.Module):
"""K&K Text by @ktxtBot"""
strings = {'name': 'K&K Text'}
async def kktcmd(self, message):
"""Используйте .kkt <текст или реплай>."""
try:
text = utils.get_args_raw(message)
reply = await message.get_reply_message()
chat = "@ktxtBot"
if not text and not reply:
await message.edit("Нет текста или реплая.")
return
if text:
await message.edit("Минуточку...")
async with message.client.conversation(chat) as conv:
try:
response = conv.wait_event(events.NewMessage(incoming=True, from_users=700914652))
await message.client.send_message(chat, text)
response = await response
except YouBlockedUserError:
await message.reply("Разблокируй бота @ktxtBot.")
return
if not response.text:
await message.edit("<Бот ответил не текстовым форматом, попробуйте ещё раз.")
return
await message.delete()
await message.client.send_message(message.to_id, response.text)
if reply:
await message.edit("Минуточку...")
async with message.client.conversation(chat) as conv:
try:
response = conv.wait_event(events.NewMessage(incoming=True, from_users=700914652))
await message.client.send_message(chat, reply)
response = await response
except YouBlockedUserError:
await message.reply("Разблокируй бота @ktxtBot.")
return
if not response.text:
await message.edit("<Бот ответил не текстовым форматом, попробуйте ещё раз.")
return
await message.delete()
await message.client.send_message(message.to_id, response.text)
except TimeoutError:
return await message.edit("Истекло время ожидания. Либо бот сдох, либо текст слишком большой, и бот не отвечает.")