mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 06:12:53 +08:00
fix bug
This commit is contained in:
parent
77478e4483
commit
9b33894a30
@ -331,6 +331,10 @@ PS: **ARM平台** 请使用全量版 同时 **如果你的机器 RAM < 1G 可能
|
||||
|
||||
## 更新
|
||||
|
||||
### 2023/3/27
|
||||
|
||||
* 优化开箱更新
|
||||
|
||||
### 2023/3/25
|
||||
|
||||
* 删除BUFF_SKIN表约束,新增`skin_id`字段
|
||||
|
||||
@ -93,3 +93,14 @@ class Genshin(Model):
|
||||
await user.save(update_fields=["today_query_uid"])
|
||||
return user.cookie
|
||||
return None
|
||||
|
||||
@classmethod
|
||||
async def _run_script(cls):
|
||||
return [
|
||||
"ALTER TABLE genshin ADD auto_sign_time timestamp with time zone;",
|
||||
"ALTER TABLE genshin ADD resin_remind boolean DEFAULT False;",
|
||||
"ALTER TABLE genshin ADD resin_recovery_time timestamp with time zone;",
|
||||
"ALTER TABLE genshin ADD login_ticket VARCHAR(255) DEFAULT '';"
|
||||
"ALTER TABLE genshin ADD stuid VARCHAR(255) DEFAULT '';"
|
||||
"ALTER TABLE genshin ADD stoken VARCHAR(255) DEFAULT '';",
|
||||
]
|
||||
|
||||
@ -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}, 请稍等")
|
||||
|
||||
@ -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()
|
||||
|
||||
@ -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='左轮武器箱'",
|
||||
]
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user