diff options
Diffstat (limited to 'ATRI/plugins/setu/modules/store.py')
-rw-r--r-- | ATRI/plugins/setu/modules/store.py | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/ATRI/plugins/setu/modules/store.py b/ATRI/plugins/setu/modules/store.py deleted file mode 100644 index e278c77..0000000 --- a/ATRI/plugins/setu/modules/store.py +++ /dev/null @@ -1,136 +0,0 @@ -import json -from random import choice - -from nonebot.typing import T_State -from nonebot.permission import SUPERUSER -from nonebot.adapters.cqhttp import Bot, MessageEvent -from nonebot.adapters.cqhttp.message import Message, MessageSegment - -from ATRI.service import Service as sv -from ATRI.utils.request import get_bytes -from ATRI.exceptions import RequestError - -from .data_source import SetuData - - -API_URL: str = "https://api.kyomotoi.moe/api/pixiv/illust?id=" - - -__doc__ = """ -为本地添加涩图! -权限组:维护者 -用法: - 添加涩图 (pid) -补充: - pid: Pixiv 作品id -""" - - -add_setu = sv.on_command(cmd="添加涩图", docs=__doc__, permission=SUPERUSER) - - -@add_setu.args_parser # type: ignore -async def _load_add_setu(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message).strip() - cancel = ["算了", "罢了"] - if msg in cancel: - await add_setu.finish("好吧...") - if not msg: - await add_setu.reject("涩图(pid)速发!") - else: - state["setu_add"] = msg - - -@add_setu.handle() -async def _add_setu(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message).strip() - if msg: - state["setu_add"] = msg - - -@add_setu.got("setu_add", prompt="涩图(pid)速发!") -async def _deal_add_setu(bot: Bot, event: MessageEvent, state: T_State) -> None: - pid = state["setu_add"] - - URL = API_URL + pid - try: - data = json.loads(await get_bytes(URL))["illust"] - except RequestError: - raise RequestError("Request failed!") - - try: - pic = data["meta_single_page"]["original_image_url"].replace( - "pximg.net", "pixiv.cat" - ) - except Exception: - pic = choice(data["meta_pages"])["image_urls"]["original"].replace( - "pximg.net", "pixiv.cat" - ) - - d = { - "pid": pid, - "title": data["title"], - "tags": str(data["tags"]), - "user_id": data["user"]["id"], - "user_name": data["user"]["name"], - "user_account": data["user"]["account"], - "url": pic, - } - await SetuData.add_data(d) - - show_img = data["image_urls"]["medium"].replace("pximg.net", "pixiv.cat") - msg = ( - "好欸!是新涩图:\n" - f"Pid: {pid}\n" - f"Title: {data['title']}\n" - f"{MessageSegment.image(show_img)}" - ) - await add_setu.finish(Message(msg)) - - -__doc__ = """ -删除涩图! -权限组:维护者 -用法: - 删除涩图 (pid) -补充: - pid: Pixiv 作品id -""" - - -del_setu = sv.on_command(cmd="删除涩图", docs=__doc__, permission=SUPERUSER) - - -@del_setu.args_parser # type: ignore -async def _load_del_setu(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message).strip() - cancel = ["算了", "罢了"] - if msg in cancel: - await add_setu.finish("好吧...") - if not msg: - await add_setu.reject("涩图(pid)速发!") - else: - state["setu_del"] = msg - - -@del_setu.handle() -async def _del_setu(bot: Bot, event: MessageEvent, state: T_State) -> None: - msg = str(event.message).strip() - if msg: - state["setu_del"] = msg - - -@del_setu.got("setu_del", prompt="涩图(pid)速发!") -async def _deal_del_setu(bot: Bot, event: MessageEvent, state: T_State) -> None: - pid = int(state["setu_del"]) - await SetuData.del_data(pid) - await del_setu.finish(f"涩图({pid})已删除...") - - -count_setu = sv.on_command(cmd="涩图总量", permission=SUPERUSER) - - -@count_setu.handle() -async def _count_setu(bot: Bot, event: MessageEvent) -> None: - msg = f"咱本地搭载了 {await SetuData.count()} 张涩图!" - await count_setu.finish(msg) |