zhenxun_bot/plugins/search_image/__init__.py

134 lines
3.9 KiB
Python
Raw Normal View History

2021-11-23 21:44:59 +08:00
# # -*- coding: utf-8 -*-
# from typing import Dict
#
# from aiohttp.client_exceptions import ClientError
# from nonebot.plugin import on_command, on_message
# from nonebot.adapters.cqhttp import Bot, MessageEvent, GroupMessageEvent
# from nonebot.typing import T_State
# from services.log import logger
# from utils.utils import get_message_text, get_message_imgs
# from configs.config import Config
# from nonebot.rule import to_me
#
#
#
# __zx_plugin_name__ = "识图"
# __plugin_usage__ = """
# usage
# 识别图片 [二次元图片]
# 指令:
# 识图 [图片]
# """.strip()
# __plugin_des__ = "以图搜图,看破本源"
# __plugin_cmd__ = ["识图"]
# __plugin_type__ = ("一些工具",)
# __plugin_version__ = 0.1
# __plugin_author__ = "synodriver"
# __plugin_settings__ = {
# "level": 5,
# "default_status": True,
# "limit_superuser": False,
# "cmd": ["识图"],
# }
# __plugin_configs__ = {
# "MAX_FIND_IMAGE_COUNT": {"value": 3, "help": "识图返回的最大结果数", "default_value": 3}
# }
#
#
# async def get_des(url: str, mode: str, user_id: int):
# """
# :param url: 图片链接
# :param mode: 图源
# :param user_id: 用户 id
# """
# if mode == "iqdb":
# async for msg in get_des_iqdb(url):
# yield msg
# elif mode == "ex":
# async for msg in get_des_ex(url):
# yield msg
# elif mode == "trace":
# async for msg in get_des_trace(url):
# yield msg
# elif mode == "yandex":
# async for msg in get_des_yandex(url):
# yield msg
# elif mode.startswith("asc"):
# async for msg in get_des_asc(url, user_id):
# yield msg
# else:
# async for msg in get_des_sau(url, user_id):
# yield msg
#
#
# setu = on_command("识图", aliases={"search"}, block=True, priority=5)
#
#
# @setu.handle()
# async def handle_first_receive(bot: Bot, event: MessageEvent, state: T_State):
# msg = get_message_text(event.json())
# imgs = get_message_imgs(event.json())
# if imgs:
# state["setu"] = imgs[0]
# if msg:
# state["mod"] = msg
#
#
# # ex/nao/trace/iqdb/ascii2d
# # @setu.got("mod", prompt="从哪里查找呢? ex/nao/trace/iqdb/ascii2d")
# # async def get_func(bot: Bot, event: MessageEvent, state: dict):
# # pass
#
#
# @setu.args_parser
# async def get_setu(bot: Bot, event: MessageEvent, state: T_State):
# imgs = get_message_imgs(event.json())
# msg = get_message_text(event.json())
# if not imgs:
# await setu.reject()
# if msg:
# state["mod"] = msg
# state["setu"] = imgs[0]
#
#
# @setu.got("setu", prompt="图呢?")
# async def get_setu(bot: Bot, event: MessageEvent, state: T_State):
# """
# 发现没有的时候要发问
# :return:
# """
# url: str = state["setu"]
# mod: str = state["mod"] if state.get("mod") else "nao" # 模式
# try:
# await bot.send(event=event, message="正在处理图片")
# idx = 1
# async for msg in get_des(url, mod, event.user_id):
# if msg:
# await bot.send(event=event, message=msg)
# if idx == Config.get_config(
# "nonebot_plugin_picsearcher", "MAX_FIND_IMAGE_COUNT"
# ):
# break
# idx += 1
# if id == 1:
# await bot.send(event=event, message="没找着.")
# logger.info(
# f"(USER {event.user_id}, GROUP "
# f"{event.group_id if isinstance(event, GroupMessageEvent) else 'private'}) 识图:{url}"
# )
# # image_data: List[Tuple] = await get_pic_from_url(url)
# # await setu.finish("hso")
# except IndexError:
# # await bot.send(event, traceback.format_exc())
# await setu.finish("参数错误")
# except ClientError:
# await setu.finish("连接失败")
#
#
#
#
#
#
#
#