from telethon import events
from .. import loader, utils
import os
import requests
from PIL import Image,ImageFont,ImageDraw
import re
import io
from textwrap import wrap
def register(cb):
cb(JacquesMod())
class JacquesMod(loader.Module):
"""Жаконизатор"""
strings = {
'name': 'Жаконизатор',
'usage': 'Напиши .help Жаконизатор',
}
def __init__(self):
self.name = self.strings['name']
self._me = None
self._ratelimit = []
async def jcmd(self, message):
""".j <реплай на сообщение/свой текст>\n@offsd подпишись-пожалеешь"""
ufr = requests.get("https://github.com/Sad0ff/modules-ftg/raw/master/open-sans.ttf")
f = ufr.content
reply = await message.get_reply_message()
args = utils.get_args_raw(message)
if not args:
if not reply:
await utils.answer(message, self.strings('usage', message))
return
else:
txt = reply.raw_text
else:
txt = utils.get_args_raw(message)
await message.edit("Извинись, быдло...")
pic = requests.get("https://www.meme-arsenal.com/memes/54c7ee322f4b0ae586ec96195a59a073.jpg")
pic.raw.decode_content = True
img = Image.open(io.BytesIO(pic.content)).convert("RGB")
W, H = img.size
#txt = txt.replace("\n", "𓃐")
text = "\n".join(wrap(txt, 19))
t = text + "\n"
#t = t.replace("𓃐","\n")
draw = ImageDraw.Draw(img)
font = ImageFont.truetype(io.BytesIO(f), 32, encoding='UTF-8')
w, h = draw.multiline_textsize(t, font=font)
imtext = Image.new("RGBA", (w+10, h+10), (0, 0,0,0))
draw = ImageDraw.Draw(imtext)
draw.multiline_text((10, 10),t,(0,0,0),font=font, align='left')
imtext.thumbnail((339, 181))
w, h = 339, 181
img.paste(imtext, (10,10), imtext)
out = io.BytesIO()
out.name = "@offsd.jpg"
img.save(out)
out.seek(0)
await message.client.send_file(message.to_id, out, reply_to=reply)
await message.delete()