From f085526da14d7f84beee2c2b1150b1ebf829783e Mon Sep 17 00:00:00 2001 From: Igor <50257429+igorechek06@users.noreply.github.com> Date: Thu, 11 Nov 2021 00:13:35 +0900 Subject: Bug fix (@arslee07 лох) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handlers/__init__.py | 2 +- handlers/gif.py | 57 ---------------------------------------------------- handlers/img.py | 52 +++++++++++++++++++++++++++++++++++++++++++++++ test.py | 3 +++ 4 files changed, 56 insertions(+), 58 deletions(-) delete mode 100644 handlers/gif.py create mode 100644 handlers/img.py diff --git a/handlers/__init__.py b/handlers/__init__.py index 05e50a2..6ba46f4 100644 --- a/handlers/__init__.py +++ b/handlers/__init__.py @@ -1,6 +1,6 @@ from . import ananas_only from . import msg from . import poll -from . import gif +from . import img from . import gen from . import all diff --git a/handlers/gif.py b/handlers/gif.py deleted file mode 100644 index 5b3d5bc..0000000 --- a/handlers/gif.py +++ /dev/null @@ -1,57 +0,0 @@ -from os import system as run - -from aiogram import types as t -from aiogram.dispatcher import filters - -from shared.instances import dp - - -@dp.message_handler( - filters.Command("gif", ignore_caption=False), - content_types=[t.ContentType.PHOTO, t.ContentType.DOCUMENT], -) -async def высрать_гифку_по_фото(msg: t.Message): - from handlers.gen import получить_говно - - if await скачать_и_обработать_файл(msg): - with open("tmp/gif.mp4", "rb") as file: - await msg.reply_animation(file, caption=получить_говно()) - - -@dp.message_handler( - commands=["gif"], - content_types=[t.ContentType.TEXT], -) -async def высрать_гифку_по_ответу(msg: t.Message): - from handlers.gen import получить_говно - - if await скачать_и_обработать_файл(msg): - with open("tmp/gif.mp4", "rb") as file: - await msg.reply_animation(file, caption=получить_говно()) - - -async def скачать_и_обработать_файл(msg: t.Message): - tmp = "tmp/" - inp = tmp + "gif.jpg" - out = tmp + "gif.mp4" - - try: - if msg.text: - photo = msg.reply_to_message.photo - document = msg.reply_to_message.document - else: - photo = msg.photo - document = msg.document - - if photo: - await photo[-1].download(destination_file=inp) - elif document: - await document.download(destination_file=inp) - else: - raise RuntimeError() - except Exception: - await msg.reply("Чел, ответь на фото или пришли мне его") - return False - - run(f"ffmpeg -loglevel quiet -y -i {inp} {out}") - return True diff --git a/handlers/img.py b/handlers/img.py new file mode 100644 index 0000000..61606f3 --- /dev/null +++ b/handlers/img.py @@ -0,0 +1,52 @@ +from os import system as run + +from aiogram import types as t +from aiogram.dispatcher import filters + +from handlers.gen import получить_говно +from shared.instances import dp, bot + + +async def скачать(name: str) -> str: + msg = t.Message.get_current() + if msg.content_type == t.ContentType.TEXT: + if msg.reply_to_message is None: + await msg.answer("Эээм… а где ответ ?") + return + msg = msg.reply_to_message + + if msg.content_type == t.ContentType.PHOTO: + file_id = msg.photo[-1].file_id + elif msg.content_type == t.ContentType.DOCUMENT: + file_id = msg.document.file_id + else: + await msg.answer("Эээм… а где фото ?") + return + + name = f"{name}.{msg.from_user.id}.{msg.chat.id}" + await bot.download_file_by_id(file_id, destination=f"tmp/{name}.jpg") + return name + + +def удалить(name: str): + run(f"rm -rf tmp/*{name}*") + + +@dp.message_handler( + filters.Command("gif", ignore_caption=False), + content_types=[t.ContentType.PHOTO, t.ContentType.DOCUMENT, t.ContentType.TEXT], +) +async def высрать_гифку_по_фото(msg: t.Message): + name = await скачать("gif") + run( + " ".join( + [ + "ffmpeg -loglevel quiet -y", + f"-i tmp/{name}.jpg", + '-vf scale="ceil(iw/2)*2:ceil(ih/2)*2"', + f"tmp/{name}.mp4", + ] + ) + ) + await msg.answer_animation(open(f"tmp/{name}.mp4", "rb"), caption=получить_говно()) + удалить(name) diff --git a/test.py b/test.py index e69de29..deea92d 100644 --- a/test.py +++ b/test.py @@ -0,0 +1,3 @@ +n = int(input("-> ")) + +print(n % 2 == 0) -- cgit v1.2.3