diff options
Diffstat (limited to 'ATRI/plugins')
-rw-r--r-- | ATRI/plugins/admin/__init__.py | 7 | ||||
-rw-r--r-- | ATRI/plugins/setu/__init__.py | 52 | ||||
-rw-r--r-- | ATRI/plugins/setu/data_source.py | 29 |
3 files changed, 78 insertions, 10 deletions
diff --git a/ATRI/plugins/admin/__init__.py b/ATRI/plugins/admin/__init__.py index e69de29..dfc8f4b 100644 --- a/ATRI/plugins/admin/__init__.py +++ b/ATRI/plugins/admin/__init__.py @@ -0,0 +1,7 @@ +# ===========================[Begin Command Processing]=========================== + + + + + +# ===========================[End Command Processing]============================= diff --git a/ATRI/plugins/setu/__init__.py b/ATRI/plugins/setu/__init__.py index 68cb1d2..2d630de 100644 --- a/ATRI/plugins/setu/__init__.py +++ b/ATRI/plugins/setu/__init__.py @@ -1,13 +1,23 @@ -from nonebot.plugin import on_regex +import random + +from nonebot.plugin import on_regex, on_command +from nonebot.adapters.cqhttp.message import MessageSegment, Message from nonebot.adapters.cqhttp import Bot +from nonebot.permission import SUPERUSER from nonebot.adapters.cqhttp.event import MessageEvent from ATRI.service.plugin import Plugin from ATRI.config import SETU_CONFIG +from ATRI.utils import compress_image +from ATRI.request import Request from ATRI.rule import is_in_service, is_in_ban_list, is_in_dormant +from .data_source import setu_port + # ===========================[Begin Command Processing]=========================== +resolution = 1 + __plugin_name__ = 'setu' __doc__ = """ @@ -23,7 +33,45 @@ setu = on_regex('|'.join(SETU_CONFIG['setu']['command']), @setu.handle() async def _(bot: Bot, event: MessageEvent) -> None: await bot.send(event, SETU_CONFIG['setu']['repo']['waiting']) + rd = random.randint(1, 2) + + if rd == 1: + data = await setu_port() + else: + data = await setu_port() + + if resolution == 1: + img = compress_image(await Request.get_image(data['data'][0]['url'])) + else: + img = await Request.get_image(data['data'][0]['url']) + msg0 = ( + f"{data['data'][0]['title']}\n" + f"pid: {data['data'][0]['pid']}\n" + f"{MessageSegment.image(file=f'file:///{img}')}" + ) + + await setu.finish(Message(msg0)) + + +setu_resolution = on_command(SETU_CONFIG['admin']['command'][0], + aliases=set(SETU_CONFIG['admin']['command']), + permission=SUPERUSER) + +@setu_resolution.handle() +async def _(bot, event: MessageEvent, state: dict) -> None: + msg = str(event.get_message()).strip() + if msg: + state['msg'] = msg + +@setu_resolution.got('msg', prompt='请键入正确参数奥') +async def _(bot, event: MessageEvent, state: dict) -> None: + global resolution + resolution = int(state['msg']) + if resolution == 1: + await setu_resolution.finish('完成~!已启用涩图压缩') + else: + await setu_resolution.finish('完成~!已关闭涩图压缩') -# ===========================[End Command Processing]=============================
\ No newline at end of file +# ===========================[End Command Processing]============================= diff --git a/ATRI/plugins/setu/data_source.py b/ATRI/plugins/setu/data_source.py index c5fffce..521b716 100644 --- a/ATRI/plugins/setu/data_source.py +++ b/ATRI/plugins/setu/data_source.py @@ -1,14 +1,27 @@ +import json from pathlib import Path from ATRI.config import SETU_CONFIG +from ATRI.request import Request +from ATRI.exceptions import InvalidRequest + DATA_PATH = Path('.') / 'ATRI' / 'data' / 'database' -class Function: - @staticmethod - async def setu_port() -> str: - ... - - @staticmethod - async def setu_local() -> str: - ... +async def setu_port() -> dict: + url = SETU_CONFIG['setu']['link']['url'] + params = { + "apikey": SETU_CONFIG['setu']['link']['api_key'], + "r18": 0, + "num": 1 + } + data = {} + try: + data = json.loads(await Request.post_bytes(url, params)) + except InvalidRequest: + raise InvalidRequest('Request failed!') + return data + + +async def setu_local() -> str: + ... |