mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2026-09-29 08:39:59 +08:00
开箱新增更新指定刀具皮肤命令
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user