import io from .. import loader, utils from requests import get from telethon import types def register(cb): cb(WWTaFMod()) class WWTaFMod(loader.Module): """Модуль для работы с текстом или файлами.""" strings = {'name': 'WWTaF'} async def filecmd(self, event): """Получить файл по ссылке.\nИспользование: .file <ссылка или реплай на ссылку>.""" try: text = utils.get_args_raw(event) reply = await event.get_reply_message() if text: urll = text.split() for url in urll: if "://" in url: break text = get(url).text file = io.BytesIO(bytes(text, "utf-8")) file.name = url.split("/")[-1] file.seek(0) await event.client.send_file(event.to_id, file) await event.delete() if reply: urll = reply.raw_text.split() for url in urll: if "://" in url: break text = get(url).text file = io.BytesIO(bytes(text, "utf-8")) file.name = url.split("/")[-1] file.seek(0) await event.client.send_file(event.to_id, file, reply_to=reply) await event.delete() if not text and not reply: await event.edit("Нет текста или реплая.") except: await event.edit("Возможно вы забыли добавить \"http://\" перед ссылкой.") return async def tabfixcmd(self, event): """Используй .tabfix <реплай или файл с текстом .tabfix>.""" await event.delete() try: reply = await event.get_reply_message() text = await event.client.download_file(reply, bytes) text = str(text, "utf-8") tabs = text.count("\t") text = text.replace("\t", " "*4) file = io.BytesIO(bytes(text, "utf-8")) filename = reply.media.document.attributes[-1].file_name file.name = "TabsFixed_"+filename file.seek(0) await event.client.send_file(event.to_id, file, caption=f"Заменено: {tabs} табов.") except: await event.edit("Нет реплая на файл.") async def text2txtcmd(self, event): """Переносит текст в файл .txt.\nИспользуй: .text2txt <текст или реплай>.""" await event.delete() text = utils.get_args_raw(event) reply = await event.get_reply_message() if text: await event.client.send_file(event.to_id, text.encode(), attributes=[types.DocumentAttributeFilename(file_name="text2txt.txt")]) if reply: await event.client.send_file(event.to_id, reply.raw_text.encode(), attributes=[types.DocumentAttributeFilename(file_name="text2txt.txt")]) if not text and not reply: await event.edit("Нет текста или реплая.") async def text2pycmd(self, event): """Переносит текст в файл .py.\nИспользуй: .text2py <текст или реплай>.""" await event.delete() text = utils.get_args_raw(event) reply = await event.get_reply_message() if text: await event.client.send_file(event.to_id, text.encode(), attributes=[types.DocumentAttributeFilename(file_name="text2py.py")]) if reply: await event.client.send_file(event.to_id, reply.raw_text.encode(), attributes=[types.DocumentAttributeFilename(file_name="text2py.py")]) if not text and not reply: await event.edit("Нет текста или реплая.") async def boldcmd(self, message): """Сделать текст жирным.\nИспользуй: .bold <текст или реплай>.""" text = utils.get_args_raw(message) reply = await message.get_reply_message() if text: await message.edit(f"{text}") if reply: if message.from_id != reply.from_id: await message.edit(f"{reply.raw_text}") else: await message.delete() await reply.edit(f"{reply.raw_text}") async def italiccmd(self, message): """Сделать текст курсивным.\nИспользуй: .italic <текст или реплай>.""" text = utils.get_args_raw(message) reply = await message.get_reply_message() if text: await message.edit(f"{text}") if reply: if message.from_id != reply.from_id: await message.edit(f"{reply.raw_text}") else: await message.delete() await reply.edit(f"{reply.raw_text}") async def underlinecmd(self, message): """Сделать текст подчеркнутым.\nИспользуй: .underline <текст или реплай>.""" text = utils.get_args_raw(message) reply = await message.get_reply_message() if text: await message.edit(f"{text}") if reply: if message.from_id != reply.from_id: await message.edit(f"{reply.raw_text}") else: await message.delete() await reply.edit(f"{reply.raw_text}") async def monocmd(self, message): """Сделать текст моноширинным.\nИспользуй: .mono <текст или реплай>.""" text = utils.get_args_raw(message) reply = await message.get_reply_message() if text: await message.edit(f"{text}") if reply: if message.from_id != reply.from_id: await message.edit(f"{reply.raw_text}") else: await message.delete() await reply.edit(f"{reply.raw_text}") async def crosscmd(self, message): """Сделать текст зачеркнутым.\nИспользуй: .cross <текст или реплай>.""" text = utils.get_args_raw(message) reply = await message.get_reply_message() if text: await message.edit(f"{text}") if reply: if message.from_id != reply.from_id: await message.edit(f"{reply.raw_text}") else: await message.delete() await reply.edit(f"{reply.raw_text}") async def entercmd(self, message): """Перенос строки после каждого слова.\nИспользуй: .enter <текст или реплай>.""" text = utils.get_args_raw(message) reply = await message.get_reply_message() if text: await message.respond("\n".join(text.split(' '))) if reply: await message.edit("\n".join(reply.text.split(' '))) await message.delete()