This commit is contained in:
HibiKier
2023-03-27 21:58:29 +08:00
parent 77478e4483
commit 9b33894a30
7 changed files with 59 additions and 20 deletions
+15 -13
View File
@@ -226,19 +226,21 @@ async def _(event: MessageEvent, arg: Message = CommandArg(), cmd: str = OneComm
type_ = "罕见皮肤"
await update_case.send(f"即将更新所有{type_}, 请稍等")
for i, case_name in enumerate(case_list):
try:
await update_skin_data(case_name)
rand = random.randint(300, 500)
result = f"更新全部{type_}完成"
if i < len(case_list):
next_case = case_list[i + 1]
result = f"将在 {rand} 秒后更新下一{type_}: {next_case}"
await update_case.send(f"成功更新{type_}: {case_name}, {result}")
logger.info(f"成功更新{type_}: {case_name}, {result}", "更新武器箱")
await asyncio.sleep(rand)
except Exception as e:
logger.error(f"更新{type_}: {case_name}", e=e)
await update_case.send(f"更新{type_}: {case_name} 发生错误: {type(e)}: {e}")
# try:
info = await update_skin_data(case_name)
if "请先登录" in info:
await update_case.finish(f"未登录, 已停止更新...")
rand = random.randint(300, 500)
result = f"更新全部{type_}完成"
if i < len(case_list):
next_case = case_list[i + 1]
result = f"将在 {rand} 秒后更新下一{type_}: {next_case}"
await update_case.send(f"{info}, {result}")
logger.info(f"info, {result}", "更新武器箱")
await asyncio.sleep(rand)
# except Exception as e:
# logger.error(f"更新{type_}: {case_name}", e=e)
# await update_case.send(f"更新{type_}: {case_name} 发生错误: {type(e)}: {e}")
await update_case.send(f"更新全部{type_}完成")
else:
await update_case.send(f"开始{cmd}: {msg}, 请稍等")
+3 -2
View File
@@ -131,12 +131,12 @@ CASE2ID = {
"光谱2号": "set_community_18",
"九头蛇大行动": "set_community_17",
"光谱": "set_community_16",
"手套武器箱": "set_community_15",
"手套": "set_community_15",
"伽玛2号": "set_gamma_2",
"伽玛": "set_community_13",
"幻彩3号": "set_community_12",
"野火大行动": "set_community_11",
"左轮武器箱": "set_community_10",
"左轮": "set_community_10",
"暗影": "set_community_9",
"弯曲猎手": "set_community_8",
"幻彩2号": "set_community_7",
@@ -211,6 +211,7 @@ async def random_skin(num: int, case_name: str) -> List[Tuple[BuffSkin, float]]:
"""
随机抽取皮肤
"""
case_name = case_name.replace("武器箱", "").replace(" ", "")
color_map = {}
for _ in range(num):
rand = random.random()
+2
View File
@@ -91,4 +91,6 @@ class BuffSkin(Model):
"ALTER TABLE buff_skin ADD sell_reference_price float DEFAULT 0;", # 新增sell_reference_price
"ALTER TABLE buff_skin DROP COLUMN skin_price;", # 删除skin_price
"alter table buff_skin drop constraint if EXISTS uid_buff_skin_case_na_c35c93;", # 删除唯一约束
"UPDATE buff_skin set case_name='手套' where case_name='手套武器箱'",
"UPDATE buff_skin set case_name='左轮' where case_name='左轮武器箱'",
]
@@ -42,3 +42,10 @@ class BuffSkinLog(Model):
class Meta:
table = "buff_skin_log"
table_description = "Buff皮肤更新日志表"
@classmethod
async def _run_script(cls):
return [
"UPDATE buff_skin_log set case_name='手套' where case_name='手套武器箱'",
"UPDATE buff_skin_log set case_name='左轮' where case_name='左轮武器箱'",
]
+17 -5
View File
@@ -103,7 +103,12 @@ async def update_skin_data(name: str) -> str:
if skin.skin_id in exists_id_list:
continue
if skin.case_name:
skin.case_name = skin.case_name.replace("“", "").replace("”", "")
skin.case_name = (
skin.case_name.replace("”", "")
.replace("“", "")
.replace("武器箱", "")
.replace(" ", "")
)
exists_id_list.append(skin.skin_id)
key = skin.name + skin.skin_name
name_ = skin.name + skin.skin_name + skin.abrasion
@@ -123,7 +128,8 @@ async def update_skin_data(name: str) -> str:
case_name = "未知武器箱"
else:
weapon2case[key] = case_name
case_name = case_name.replace("”", "").replace("“", "")
if skin.case_name == "反恐精英20周年":
skin.case_name = "CS20"
skin.case_name = case_name
if skin.skin_id in db_skin_id_list:
update_list.append(skin)
@@ -211,7 +217,7 @@ async def update_skin_data(name: str) -> str:
logger.debug(f"更新武器箱/皮肤: [<u><e>{name}</e></u>], 新增 {len(log_list)} 条皮肤日志!")
await BuffSkinLog.bulk_create(log_list)
if name not in CaseManager.CURRENT_CASES:
CaseManager.CURRENT_CASES.append(case_name) # type: ignore
CaseManager.CURRENT_CASES.append(name) # type: ignore
return f"更新武器箱/皮肤: [{name}] 成功, 共更新 {len(update_list)} 个皮肤, 新创建 {len(create_list)} 个皮肤!"
@@ -268,7 +274,7 @@ async def search_skin_page(
if not response:
return f"访问发生异常: {error}", -1
if response.status_code == 200:
logger.debug(f"访问BUFF API: {response.text}", "开箱更新")
# logger.debug(f"访问BUFF API: {response.text}", "开箱更新")
json_data = response.json()
update_data = []
if json_data["code"] == "OK":
@@ -512,7 +518,13 @@ async def get_skin_case(id_: str) -> Optional[str]:
if response.status_code == 200:
text = response.text
if r := re.search('<meta name="description".*,(.*)武器箱.*?>', text):
return r.group(1)
return (
r.group(1)
.replace("”", "")
.replace("“", "")
.replace("武器箱", "")
.replace(" ", "")
)
else:
logger.debug(f"访问皮肤所属武器箱异常 url: {url} code: {response.status_code}")
return None