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()