vip 支持通过图片查找相似动漫。

This commit is contained in:
xtaodada 2021-07-03 14:35:45 +08:00
parent cfd94e667a
commit 1395c71678
No known key found for this signature in database
GPG Key ID: EE4DC37B55E24736
2 changed files with 70 additions and 2 deletions

View File

@ -342,13 +342,13 @@
},
{
"name": "vip",
"version": "0.31",
"version": "0.40",
"section": "chat",
"maintainer": "xtaodada",
"size": "4.0 kb",
"supported": true,
"des-short": "vip 捐赠用户功能",
"des": "命令天气weather Pixivpixiv 百度baidu Duckduckgoduckduckgo。与 weather 插件冲突"
"des": "命令天气weather Pixivpixiv \n百度baidu Duckduckgoduckduckgo\n相似动漫whatanime。与 weather 插件冲突"
},
{
"name": "calculator",

68
vip.py
View File

@ -1,5 +1,8 @@
import io
from requests import get
from os import remove
from telethon.tl.types import MessageMediaPhoto
from pagermaid import bot
from pagermaid.listener import listener
from pagermaid.utils import obtain_message, alias_command
@ -96,3 +99,68 @@ async def pixiv(context):
pass
else:
await context.edit(pixiv_text)
@listener(is_plugin=True, outgoing=True, command=alias_command("whatanime"),
description="通过图片查找相似动漫。(需要回复图片)")
async def whatanime(context):
reply = await context.get_reply_message()
if reply is not None:
if reply.media:
if not isinstance(reply.media, MessageMediaPhoto):
await context.edit("宁需要回复一张图片")
return
else:
await context.edit("宁需要回复一张图片")
return
else:
await context.edit("宁需要回复一张图片")
return
await context.edit("获取中。。。")
async with bot.conversation('PagerMaid_Modify_bot') as conversation:
await conversation.send_message(message='/whatanime_api', file=reply.photo)
chat_response = await conversation.get_response()
await bot.send_read_acknowledge(conversation.chat_id)
whatanime_text = chat_response.text
whatanime_list = whatanime_text.split('|||')
if len(whatanime_list) == 1:
await context.edit(whatanime_text)
return
link = whatanime_list[0]
name = whatanime_list[1]
native = whatanime_list[2]
episode = whatanime_list[3]
alias = whatanime_list[4]
r18 = whatanime_list[5]
percent = whatanime_list[6]
img = whatanime_list[7]
video = whatanime_list[8]
text = f'[{name}]({link}) `{native}`\n'
if bool(episode):
text += f'\n**集数:** `{episode}`'
if bool(alias):
text += f'\n**别名:** `{alias}`'
if bool(r18):
text += f'\n**R-18**'
text += f'\n**相似度:** `{percent}`'
r = get(img)
photo = io.BytesIO(r.content)
photo.name = f'{name}.png'
msg = await context.client.send_file(context.chat_id,
file=photo,
caption=text,
reply_to=reply.id)
if not video == '':
video_list = video.split('||')
video = video_list[0]
title = video_list[1]
start = video_list[2]
end = video_list[3]
text = f'`{title}`\n\n`{start}` - `{end}`'
await context.client.send_file(context.chat_id,
video,
caption=text,
reply_to=msg.id)
await context.delete()