from .. import loader, utils
import requests
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
import io
from textwrap import wrap
def register(cb):
cb(ZapomniZabudSoglMod())
class ZapomniZabudSoglMod(loader.Module):
"""Запомните;забудьте твари, согласен."""
strings = {'name': 'Запомните;забудьте твари, согласен'}
def __init__(self):
self.name = self.strings['name']
self._me = None
self._ratelimit = []
async def client_ready(self, client, db):
self._db = db
self._client = client
self.me = await client.get_me()
async def zapcmd(self, message):
""".zap <текст или реплай>"""
ufr = requests.get("https://fl1yd.ml/modules/stuff/font.ttf")
f = ufr.content
reply = await message.get_reply_message()
txet = utils.get_args_raw(message)
if not txet:
if not reply:
await message.edit("text?")
else:
txt = reply.raw_text
else:
txt = utils.get_args_raw(message)
await message.edit("Извиняюсь...")
pic = requests.get("https://fl1yd.ml/modules/stuff/man.jpg")
pic.raw.decode_content = True
img = Image.open(io.BytesIO(pic.content)).convert("RGB")
black = Image.new("RGBA", img.size, (0, 0, 0, 100))
img.paste(black, (0, 0), black)
W, H = img.size
txt = txt.replace("\n", "𓃐")
text = "\n".join(wrap(txt, 40))
t = "Запомните твари:\n" +text
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+20, h+20), (0, 0,0,0))
draw = ImageDraw.Draw(imtext)
draw.multiline_text((10, 10),t,(255,255,255),font=font, align='center')
imtext.thumbnail((W, H))
w, h = imtext.size
img.paste(imtext, ((W-w)//2,(H-h)//2), imtext)
out = io.BytesIO()
out.name = "out.jpg"
img.save(out)
out.seek(0)
await message.client.send_file(message.to_id, out, reply_to=reply)
await message.delete()
async def zabcmd(self, message):
""".zab <текст или реплай>"""
ufr = requests.get("https://fl1yd.ml/modules/stuff/font.ttf")
f = ufr.content
reply = await message.get_reply_message()
txet = utils.get_args_raw(message)
if not txet:
if not reply:
await message.edit("text?")
else:
txt = reply.raw_text
else:
txt = utils.get_args_raw(message)
await message.edit("Извиняюсь...")
pic = requests.get("https://fl1yd.ml/modules/stuff/man.jpg")
pic.raw.decode_content = True
img = Image.open(io.BytesIO(pic.content)).convert("RGB")
black = Image.new("RGBA", img.size, (0, 0, 0, 100))
img.paste(black, (0, 0), black)
W, H = img.size
txt = txt.replace("\n", "𓃐")
text = "\n".join(wrap(txt, 40))
t = "Забудьте твари:\n" + text
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 + 20, h + 20), (0, 0, 0, 0))
draw = ImageDraw.Draw(imtext)
draw.multiline_text((10, 10), t, (255, 255, 255), font=font, align='center')
imtext.thumbnail((W, H))
w, h = imtext.size
img.paste(imtext, ((W - w) // 2, (H - h) // 2), imtext)
out = io.BytesIO()
out.name = "out.jpg"
img.save(out)
out.seek(0)
await message.client.send_file(message.to_id, out, reply_to=reply)
await message.delete()
async def soglcmd(self, message):
""".sogl <текст или реплай>"""
ufr = requests.get("https://fl1yd.ml/modules/stuff/font.ttf")
f = ufr.content
reply = await message.get_reply_message()
txet = utils.get_args_raw(message)
if not txet:
if not reply:
await message.edit("text?")
else:
txt = reply.raw_text
else:
txt = utils.get_args_raw(message)
await message.edit("Извиняюсь...")
pic = requests.get("https://fl1yd.ml/modules/stuff/shrek.jpg")
pic.raw.decode_content = True
img = Image.open(io.BytesIO(pic.content)).convert("RGB")
black = Image.new("RGBA", img.size, (0, 0, 0, 100))
img.paste(black, (0, 0), black)
W, H = img.size
txt = txt.replace("\n", "𓃐")
text = "\n".join(wrap(txt, 40))
t = "Согласен, " + text
t = t.replace("𓃐", "\n")
draw = ImageDraw.Draw(img)
font = ImageFont.truetype(io.BytesIO(f), 28, encoding='UTF-8')
w, h = draw.multiline_textsize(t, font=font)
imtext = Image.new("RGBA", (w + 20, h + 20), (0, 0, 0, 0))
draw = ImageDraw.Draw(imtext)
draw.multiline_text((10, 10), t, (255, 255, 255), font=font, align='center')
imtext.thumbnail((W, H))
w, h = imtext.size
img.paste(imtext, ((W - w) // 2, (H - h) // 2), imtext)
out = io.BytesIO()
out.name = "out.jpg"
img.save(out)
out.seek(0)
await message.client.send_file(message.to_id, out, reply_to=reply)
await message.delete()