mirror of
https://github.com/MuRuLOSE/limoka.git
synced 2026-06-18 07:04:19 +02:00
Commited backup
This commit is contained in:
80
AmoreForever/amoremods/recognition.py
Normal file
80
AmoreForever/amoremods/recognition.py
Normal file
@@ -0,0 +1,80 @@
|
||||
# █ █ █ █▄▀ ▄▀█ █▀▄▀█ █▀█ █▀█ █ █
|
||||
# █▀█ █ █ █ █▀█ █ ▀ █ █▄█ █▀▄ █▄█
|
||||
|
||||
# 🔒 Licensed under the GNU GPLv3
|
||||
# 🌐 https://www.gnu.org/licenses/agpl-3.0.html
|
||||
# 👤 https://t.me/hikamoru
|
||||
|
||||
# meta developer: @hikamorumods
|
||||
# meta banner: https://raw.githubusercontent.com/AmoreForever/assets/master/recognition.jpg
|
||||
|
||||
from .. import utils, loader
|
||||
import imghdr
|
||||
import io
|
||||
import random
|
||||
from telethon.tl.types import Message
|
||||
|
||||
|
||||
@loader.tds
|
||||
class RecognitionMod(loader.Module):
|
||||
"""Recognition from photo"""
|
||||
|
||||
strings = {
|
||||
'name': 'Recognition',
|
||||
'args': "No args!"
|
||||
}
|
||||
|
||||
async def get_media(self, message: Message):
|
||||
reply = await message.get_reply_message()
|
||||
m = None
|
||||
if reply and reply.media:
|
||||
m = reply
|
||||
elif message.media:
|
||||
m = message
|
||||
elif not reply:
|
||||
await utils.answer(message, self.strings('args'))
|
||||
return False
|
||||
|
||||
if not m:
|
||||
file = io.BytesIO(bytes(reply.raw_text, "utf-8"))
|
||||
file.name = "file.txt"
|
||||
else:
|
||||
file = io.BytesIO(await self._client.download_media(m, bytes))
|
||||
file.name = (
|
||||
m.file.name
|
||||
or (
|
||||
"".join(
|
||||
[
|
||||
random.choice(
|
||||
"abcdefghijklmnopqrstuvwxyz1234567890")
|
||||
for _ in range(16)
|
||||
]
|
||||
)
|
||||
)
|
||||
+ m.file.ext
|
||||
)
|
||||
|
||||
return file
|
||||
|
||||
async def get_image(self, message: Message):
|
||||
file = await self.get_media(message)
|
||||
if not file:
|
||||
return False
|
||||
|
||||
if imghdr.what(file) not in ["gif", "png", "jpg", "jpeg", "tiff", "bmp"]:
|
||||
return False
|
||||
return file
|
||||
|
||||
@loader.command()
|
||||
async def reco(self, message: Message):
|
||||
"""recognize from photo <reply to photo>"""
|
||||
file = await self.get_image(message)
|
||||
if not file:
|
||||
return False
|
||||
async with self._client.conversation("@Rekognition_Bot") as conv:
|
||||
await conv.send_message(file=file) # upload step
|
||||
await conv.get_response() # ignore message
|
||||
cp = await conv.get_response() # get message
|
||||
|
||||
await utils.answer(message, cp)
|
||||
await self.client.delete_dialog("@Rekognition_Bot")
|
||||
Reference in New Issue
Block a user