2021-05-20 19:21:05 +08:00
|
|
|
|
from nonebot import on_command
|
|
|
|
|
|
from .data_source import get_bt_info
|
|
|
|
|
|
from services.log import logger
|
2022-02-19 18:20:19 +08:00
|
|
|
|
from nonebot.adapters.onebot.v11 import PrivateMessageEvent, Message
|
|
|
|
|
|
from nonebot.adapters.onebot.v11.permission import PRIVATE
|
2021-06-04 18:01:33 +08:00
|
|
|
|
from asyncio.exceptions import TimeoutError
|
2022-02-19 18:20:19 +08:00
|
|
|
|
from utils.utils import is_number
|
|
|
|
|
|
from nonebot.params import CommandArg, ArgStr
|
|
|
|
|
|
from nonebot.typing import T_State
|
2021-05-20 19:21:05 +08:00
|
|
|
|
|
2021-10-03 14:24:07 +08:00
|
|
|
|
__zx_plugin_name__ = "磁力搜索"
|
|
|
|
|
|
__plugin_usage__ = """
|
|
|
|
|
|
usage:
|
|
|
|
|
|
* 请各位使用后不要转发 *
|
|
|
|
|
|
* 拒绝反冲斗士! *
|
|
|
|
|
|
指令:
|
|
|
|
|
|
bt [关键词] ?[页数]
|
|
|
|
|
|
示例:bt 钢铁侠
|
|
|
|
|
|
示例:bt 钢铁侠 3
|
2021-05-20 19:21:05 +08:00
|
|
|
|
""".strip()
|
2021-10-03 14:24:07 +08:00
|
|
|
|
__plugin_des__ = "bt(磁力搜索)[仅支持私聊,懂的都懂]"
|
|
|
|
|
|
__plugin_cmd__ = ["bt [关键词] ?[页数]"]
|
|
|
|
|
|
__plugin_version__ = 0.1
|
|
|
|
|
|
__plugin_author__ = "HibiKier"
|
|
|
|
|
|
__plugin_settings__ = {
|
|
|
|
|
|
"level": 5,
|
|
|
|
|
|
"default_status": True,
|
|
|
|
|
|
"limit_superuser": False,
|
|
|
|
|
|
"cmd": ["bt", "磁力搜索", "Bt", "BT"],
|
|
|
|
|
|
}
|
2022-02-19 18:20:19 +08:00
|
|
|
|
__plugin_block_limit__ = {"rst": "您有bt任务正在进行,请等待结束."}
|
2021-11-04 16:11:50 +08:00
|
|
|
|
__plugin_configs__ = {
|
|
|
|
|
|
"BT_MAX_NUM": {
|
|
|
|
|
|
"value": 10,
|
|
|
|
|
|
"help": "单次BT搜索返回最大消息数量",
|
|
|
|
|
|
"default_value": 10,
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2021-05-20 19:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
2021-07-30 21:21:51 +08:00
|
|
|
|
bt = on_command("bt", permission=PRIVATE, priority=5, block=True)
|
2021-05-20 19:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@bt.handle()
|
2022-02-19 18:20:19 +08:00
|
|
|
|
async def _(state: T_State, arg: Message = CommandArg()):
|
|
|
|
|
|
msg = arg.extract_plain_text().strip().split()
|
|
|
|
|
|
if msg:
|
|
|
|
|
|
keyword = None
|
|
|
|
|
|
page = 1
|
|
|
|
|
|
if n := len(msg):
|
|
|
|
|
|
keyword = msg[0]
|
|
|
|
|
|
if n > 1 and is_number(msg[1]) and int(msg[1]) > 0:
|
|
|
|
|
|
page = int(msg[1])
|
|
|
|
|
|
state["keyword"] = keyword
|
|
|
|
|
|
state["page"] = page
|
2021-05-20 19:21:05 +08:00
|
|
|
|
else:
|
2022-02-19 18:20:19 +08:00
|
|
|
|
state["page"] = 1
|
2021-05-20 19:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
2022-02-19 18:20:19 +08:00
|
|
|
|
@bt.got("keyword", prompt="请输入要查询的内容!")
|
|
|
|
|
|
async def _(
|
|
|
|
|
|
event: PrivateMessageEvent,
|
|
|
|
|
|
state: T_State,
|
|
|
|
|
|
keyword: str = ArgStr("keyword"),
|
|
|
|
|
|
page: str = ArgStr("page"),
|
|
|
|
|
|
):
|
2021-06-04 18:01:33 +08:00
|
|
|
|
send_flag = False
|
2021-05-20 19:21:05 +08:00
|
|
|
|
try:
|
2022-02-19 18:20:19 +08:00
|
|
|
|
async for title, type_, create_time, file_size, link in get_bt_info(
|
2021-07-30 21:21:51 +08:00
|
|
|
|
keyword, page
|
|
|
|
|
|
):
|
|
|
|
|
|
await bt.send(
|
|
|
|
|
|
f"标题:{title}\n"
|
2022-02-19 18:20:19 +08:00
|
|
|
|
f"类型:{type_}\n"
|
2021-07-30 21:21:51 +08:00
|
|
|
|
f"创建时间:{create_time}\n"
|
|
|
|
|
|
f"文件大小:{file_size}\n"
|
|
|
|
|
|
f"种子:{link}"
|
|
|
|
|
|
)
|
2021-06-04 18:01:33 +08:00
|
|
|
|
send_flag = True
|
|
|
|
|
|
except TimeoutError:
|
2021-07-30 21:21:51 +08:00
|
|
|
|
await bt.finish(f"搜索 {keyword} 超时...")
|
2021-06-21 09:53:33 +08:00
|
|
|
|
except Exception as e:
|
2021-07-30 21:21:51 +08:00
|
|
|
|
await bt.finish(f"bt 其他未知错误..")
|
2021-11-23 21:44:59 +08:00
|
|
|
|
logger.error(f"bt 错误 {type(e)}:{e}")
|
2021-06-04 18:01:33 +08:00
|
|
|
|
if not send_flag:
|
2021-07-30 21:21:51 +08:00
|
|
|
|
await bt.send(f"{keyword} 未搜索到...")
|
|
|
|
|
|
logger.info(f"USER {event.user_id} BT搜索 {keyword} 第 {page} 页")
|