zhenxun_bot/plugins/search_buff_skin_price/__init__.py

97 lines
3.2 KiB
Python
Raw Normal View History

2021-05-20 19:23:32 +08:00
from nonebot import on_command
from .data_source import get_price, update_buff_cookie
from services.log import logger
from nonebot.typing import T_State
2022-02-19 18:20:19 +08:00
from nonebot.adapters.onebot.v11 import MessageEvent, GroupMessageEvent, Message
2021-05-20 19:23:32 +08:00
from nonebot.rule import to_me
from nonebot.permission import SUPERUSER
2022-02-19 18:20:19 +08:00
from nonebot.params import CommandArg, ArgStr
2021-08-17 23:17:08 +08:00
from configs.config import NICKNAME
2021-05-20 19:23:32 +08:00
2021-10-03 14:24:07 +08:00
__zx_plugin_name__ = "BUFF查询皮肤"
__plugin_usage__ = """
usage
在线实时获取BUFF指定皮肤所有磨损底价
指令
查询皮肤 [枪械名] [皮肤名称]
示例查询皮肤 ak47 二西莫夫
""".strip()
__plugin_des__ = "BUFF皮肤底价查询"
__plugin_cmd__ = ["查询皮肤 [枪械名] [皮肤名称]"]
__plugin_type__ = ("一些工具",)
__plugin_version__ = 0.1
__plugin_author__ = "HibiKier"
__plugin_settings__ = {
"level": 5,
"default_status": True,
"limit_superuser": False,
"cmd": ["查询皮肤"],
}
2022-02-19 18:20:19 +08:00
__plugin_block_limit__ = {"rst": "您有皮肤正在搜索,请稍等..."}
2021-11-04 16:11:50 +08:00
__plugin_configs__ = {
2022-02-19 18:20:19 +08:00
"BUFF_PROXY": {"value": None, "help": "BUFF代理有些厂ip可能被屏蔽"},
"COOKIE": {"value": None, "help": "BUFF的账号cookie"},
2021-11-04 16:11:50 +08:00
}
2021-05-20 19:23:32 +08:00
2021-07-30 21:21:51 +08:00
search_skin = on_command("查询皮肤", aliases={"皮肤查询"}, priority=5, block=True)
2021-05-20 19:23:32 +08:00
@search_skin.handle()
2022-02-19 18:20:19 +08:00
async def _(event: MessageEvent, state: T_State, arg: Message = CommandArg()):
raw_arg = arg.extract_plain_text().strip()
2021-05-20 19:23:32 +08:00
if raw_arg:
2022-02-19 18:20:19 +08:00
args = raw_arg.split()
2021-05-20 19:23:32 +08:00
if len(args) >= 2:
2021-07-30 21:21:51 +08:00
state["name"] = args[0]
state["skin"] = args[1]
2021-05-20 19:23:32 +08:00
2021-07-30 21:21:51 +08:00
@search_skin.got("name", prompt="要查询什么武器呢?")
@search_skin.got("skin", prompt="要查询该武器的什么皮肤呢?")
2022-02-19 18:20:19 +08:00
async def arg_handle(
event: MessageEvent,
state: T_State,
name: str = ArgStr("name"),
skin: str = ArgStr("skin"),
):
if name in ["算了", "取消"] or skin in ["算了", "取消"]:
await search_skin.finish("已取消操作...")
2021-07-30 21:21:51 +08:00
result = ""
2022-02-19 18:20:19 +08:00
if name in ["ak", "ak47"]:
name = "ak-47"
name = name + " | " + skin
2021-05-20 19:23:32 +08:00
try:
result, status_code = await get_price(name)
except FileNotFoundError:
2021-10-03 14:24:07 +08:00
await search_skin.finish(f'请先对{NICKNAME}"设置cookie"来设置cookie')
2021-05-20 19:23:32 +08:00
if status_code in [996, 997, 998]:
await search_skin.finish(result)
if result:
logger.info(
2021-07-30 21:21:51 +08:00
f"(USER {event.user_id}, GROUP "
f"{event.group_id if isinstance(event, GroupMessageEvent) else 'private'}) 查询皮肤:"
+ name
)
2021-05-20 19:23:32 +08:00
await search_skin.finish(result)
else:
2021-07-30 21:21:51 +08:00
logger.info(
f"USER {event.user_id}, GROUP "
f"{event.group_id if isinstance(event, GroupMessageEvent) else 'private'}"
f" 查询皮肤:{name} 没有查询到"
)
2021-05-20 19:23:32 +08:00
await search_skin.finish("没有查询到哦,请检查格式吧")
2021-07-30 21:21:51 +08:00
update_buff_session = on_command(
2021-10-03 14:24:07 +08:00
"更新cookie", aliases={"设置cookie"}, rule=to_me(), permission=SUPERUSER, priority=1
2021-07-30 21:21:51 +08:00
)
2021-05-20 19:23:32 +08:00
@update_buff_session.handle()
2022-02-19 18:20:19 +08:00
async def _(event: MessageEvent):
2021-07-30 21:21:51 +08:00
await update_buff_session.finish(
update_buff_cookie(str(event.get_message())), at_sender=True
)