开箱新增更新指定刀具皮肤命令

This commit is contained in:
HibiKier
2023-03-25 15:38:12 +08:00
parent a48661745e
commit f72988a71a
6 changed files with 288 additions and 181 deletions
+48 -25
View File
@@ -6,7 +6,6 @@ from typing import Any, List, Tuple
from nonebot import on_command
from nonebot.adapters.onebot.v11 import GroupMessageEvent, Message, MessageEvent
from nonebot.adapters.onebot.v11.permission import GROUP
from nonebot.matcher import Matcher
from nonebot.params import CommandArg, RegexGroup
from nonebot.permission import SUPERUSER
from nonebot.plugin import MatcherGroup
@@ -15,6 +14,8 @@ from nonebot.typing import T_State
from configs.config import Config
from configs.path_config import IMAGE_PATH
from services.log import logger
from utils.depends import OneCommand
from utils.image_utils import text2image
from utils.message_builder import image
from utils.utils import CN2NUM, is_number, scheduler
@@ -28,10 +29,12 @@ from .open_cases_c import (
)
from .utils import (
CASE2ID,
KNIFE2ID,
CaseManager,
build_case_image,
get_skin_case,
reset_count_daily,
update_case_data,
update_skin_data,
)
__zx_plugin_name__ = "开箱"
@@ -55,8 +58,8 @@ usage:
更新皮肤指令
重置开箱: 重置今日开箱所有次数
指令:
更新开箱图片 ?[武器箱]
更新开箱价格 ?[武器箱]
更新武器箱 ?[武器箱]
更新皮肤 ?[刀具名称]
* 不指定武器箱时则全部更新 *
* 过多的爬取会导致账号API被封 *
""".strip()
@@ -68,8 +71,8 @@ __plugin_cmd__ = [
"我的金色",
"群开箱统计",
"查看武器箱?[武器箱]",
"更新开箱图片 ?[武器箱] [_superuser]",
"更新开箱价格 ?[武器箱] [_superuser]",
"更新武器箱 ?[武器箱] [_superuser]",
"更新皮肤 ?[刀具名称] [_superuser]",
]
__plugin_type__ = ("抽卡相关", 1)
__plugin_version__ = 0.1
@@ -125,11 +128,19 @@ total_case_data = cases_matcher_group.on_command(
)
group_open_case_statistics = cases_matcher_group.on_command("群开箱统计")
open_multiple = cases_matcher_group.on_regex("(.*)连开箱(.*)?")
update_case = on_command("更新武器箱", priority=1, permission=SUPERUSER, block=True)
update_case = on_command(
"更新武器箱", aliases={"更新皮肤"}, priority=1, permission=SUPERUSER, block=True
)
show_case = on_command("查看武器箱", priority=5, block=True)
my_knifes = on_command("我的金色", priority=1, permission=GROUP, block=True)
show_skin = on_command("查看皮肤", priority=5, block=True)
# show_case = on_command("test", priority=1, permission=GROUP, block=True)
test = on_command("test", priority=1, permission=GROUP, block=True)
@test.handle()
async def _(event: GroupMessageEvent):
a = await get_skin_case("872472")
print(a)
@reload_count.handle()
@@ -189,41 +200,53 @@ async def _(
@update_case.handle()
async def _(event: MessageEvent, arg: Message = CommandArg()):
async def _(event: MessageEvent, arg: Message = CommandArg(), cmd: str = OneCommand()):
msg = arg.extract_plain_text().strip()
if not msg:
case_list = []
skin_list = []
for i, case_name in enumerate(CASE2ID):
if case_name in CaseManager.CURRENT_CASES:
case_list.append(f"{i+1}.{case_name} [已更新]")
else:
case_list.append(f"{i+1}.{case_name}")
await update_case.finish("未指定武器箱, 当前已包含武器箱\n" + "\n".join(case_list))
if msg == "ALL":
await update_case.send(f"即将更新所有武器箱, 请稍等")
case_list = list(CASE2ID.keys())
for skin_name in KNIFE2ID:
skin_list.append(f"{skin_name}")
text = "武器箱:\n" + "\n".join(case_list) + "\n皮肤:\n" + ", ".join(skin_list)
await update_case.finish(
"未指定武器箱, 当前已包含武器箱/皮肤\n"
+ image(await text2image(text, padding=20, color="#f9f6f2"))
)
if msg in ["ALL", "ALL1"]:
if msg == "ALL":
case_list = list(CASE2ID.keys())
result = "武器箱"
else:
case_list = list(KNIFE2ID.keys())
result = "罕见皮肤"
await update_case.send(f"即将更新所有{result}, 请稍等")
for i, case_name in enumerate(case_list):
try:
await update_case_data(case_name)
await update_skin_data(case_name)
rand = random.randint(300, 500)
result = "更新全部武器箱完成"
result = f"更新全部{result}完成"
if i < len(case_list):
next_case = case_list[i + 1]
result = f"将在 {rand} 秒后更新下一武器箱: {next_case}"
await update_case.send(f"成功更新武器箱: {case_name}, {result}")
logger.info(f"成功更新武器箱: {case_name}, {result}", "更新武器箱")
result = f"将在 {rand} 秒后更新下一{result}: {next_case}"
await update_case.send(f"成功更新{result}: {case_name}, {result}")
logger.info(f"成功更新{result}: {case_name}, {result}", "更新武器箱")
await asyncio.sleep(rand)
except Exception as e:
logger.error(f"更新武器箱: {case_name}", e=e)
await update_case.send(f"成功更新武器箱: {case_name} 发生错误: {type(e)}: {e}")
await update_case.send(f"更新全部武器箱完成")
logger.error(f"更新{result}: {case_name}", e=e)
await update_case.send(f"更新{result}: {case_name} 发生错误: {type(e)}: {e}")
await update_case.send(f"更新全部{result}完成")
else:
await update_case.send(f"开始更新武器箱: {msg}, 请稍等")
await update_case.send(f"开始{cmd}: {msg}, 请稍等")
try:
await update_case.send(await update_case_data(msg), at_sender=True)
await update_case.send(await update_skin_data(msg), at_sender=True)
except Exception as e:
logger.error(f"更新武器箱: {msg}", e=e)
await update_case.send(f"成功自动更新武器箱: {msg} 发生错误: {type(e)}: {e}")
logger.error(f"{cmd}: {msg}", e=e)
await update_case.send(f"成功{cmd}: {msg} 发生错误: {type(e)}: {e}")
@show_case.handle()