mirror of
https://github.com/baiqwerdvd/ArknightsUID.git
synced 2025-05-05 03:23:45 +08:00
update
This commit is contained in:
parent
b4390d0467
commit
7e56bd5fcd
@ -85,9 +85,7 @@ async def sub_ann_(bot: Bot, ev: Event):
|
|||||||
await bot.send("成功订阅明日方舟公告!")
|
await bot.send("成功订阅明日方舟公告!")
|
||||||
|
|
||||||
|
|
||||||
@sv_ann_sub.on_fullmatch(
|
@sv_ann_sub.on_fullmatch((f"{PREFIX}取消订阅公告", f"{PREFIX}取消公告", f"{PREFIX}退订公告"))
|
||||||
(f"{PREFIX}取消订阅公告", f"{PREFIX}取消公告", f"{PREFIX}退订公告")
|
|
||||||
)
|
|
||||||
async def unsub_ann_(bot: Bot, ev: Event):
|
async def unsub_ann_(bot: Bot, ev: Event):
|
||||||
if ev.group_id is None:
|
if ev.group_id is None:
|
||||||
return await bot.send("请在群聊中取消订阅")
|
return await bot.send("请在群聊中取消订阅")
|
||||||
|
@ -96,9 +96,7 @@ async def process_tag(
|
|||||||
return point, elements
|
return point, elements
|
||||||
|
|
||||||
|
|
||||||
async def soup_to_img(
|
async def soup_to_img(header: str, soup: BeautifulSoup, bannerImageUrl: str) -> str | bytes:
|
||||||
header: str, soup: BeautifulSoup, bannerImageUrl: str
|
|
||||||
) -> str | bytes:
|
|
||||||
banner_img = None
|
banner_img = None
|
||||||
banner_img_new_h = 0
|
banner_img_new_h = 0
|
||||||
header_img = None
|
header_img = None
|
||||||
@ -110,9 +108,7 @@ async def soup_to_img(
|
|||||||
banner_img = banner_img.resize((930, banner_img_new_h))
|
banner_img = banner_img.resize((930, banner_img_new_h))
|
||||||
|
|
||||||
if header != "":
|
if header != "":
|
||||||
header_img = (
|
header_img = "https://ak.hycdn.cn/announce/assets/images/announcement/header.jpg"
|
||||||
"https://ak.hycdn.cn/announce/assets/images/announcement/header.jpg"
|
|
||||||
)
|
|
||||||
header_img = await download_pic_to_image(header_img)
|
header_img = await download_pic_to_image(header_img)
|
||||||
header_img_new_h = int((930 / header_img.size[0]) * header_img.size[1])
|
header_img_new_h = int((930 / header_img.size[0]) * header_img.size[1])
|
||||||
header_img = header_img.resize((930, header_img_new_h))
|
header_img = header_img.resize((930, header_img_new_h))
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
|
import asyncio
|
||||||
import json
|
import json
|
||||||
from typing import cast
|
import random
|
||||||
|
|
||||||
import aiohttp
|
import aiohttp
|
||||||
|
from msgspec import Struct, convert
|
||||||
|
|
||||||
from gsuid_core.aps import scheduler
|
from gsuid_core.aps import scheduler
|
||||||
from gsuid_core.bot import Bot
|
from gsuid_core.bot import Bot
|
||||||
from gsuid_core.data_store import get_res_path
|
from gsuid_core.data_store import get_res_path
|
||||||
@ -9,7 +12,6 @@ from gsuid_core.logger import logger
|
|||||||
from gsuid_core.models import Event
|
from gsuid_core.models import Event
|
||||||
from gsuid_core.subscribe import gs_subscribe
|
from gsuid_core.subscribe import gs_subscribe
|
||||||
from gsuid_core.sv import SV
|
from gsuid_core.sv import SV
|
||||||
from msgspec import Struct, convert
|
|
||||||
|
|
||||||
from ..arknightsuid_config import PREFIX
|
from ..arknightsuid_config import PREFIX
|
||||||
|
|
||||||
@ -24,7 +26,14 @@ class VersionModel(Struct):
|
|||||||
resVersion: str
|
resVersion: str
|
||||||
|
|
||||||
|
|
||||||
async def check_update() -> tuple[VersionModel, bool, bool]:
|
class UpdateCheckResult(Struct):
|
||||||
|
version: VersionModel
|
||||||
|
old_version: VersionModel | None
|
||||||
|
client_updated: bool
|
||||||
|
res_updated: bool
|
||||||
|
|
||||||
|
|
||||||
|
async def check_update() -> UpdateCheckResult:
|
||||||
"""
|
"""
|
||||||
check if there is an update
|
check if there is an update
|
||||||
|
|
||||||
@ -41,17 +50,17 @@ async def check_update() -> tuple[VersionModel, bool, bool]:
|
|||||||
data = json.loads(await response.text())
|
data = json.loads(await response.text())
|
||||||
version = convert(data, VersionModel)
|
version = convert(data, VersionModel)
|
||||||
|
|
||||||
return_data = [version, False, False]
|
|
||||||
version_path = get_res_path("ArknightsUID") / "version.json"
|
version_path = get_res_path("ArknightsUID") / "version.json"
|
||||||
|
|
||||||
is_first = False if version_path.exists() else True
|
is_first = False if version_path.exists() else True
|
||||||
|
|
||||||
if is_first:
|
if is_first:
|
||||||
with open(version_path, "w", encoding="utf-8") as f:
|
with open(version_path, "w", encoding="utf-8") as f:
|
||||||
json.dump(data, f, indent=2)
|
json.dump(data, f, indent=2)
|
||||||
|
|
||||||
logger.info("First time checking version")
|
logger.info("First time checking version")
|
||||||
return cast(tuple[VersionModel, bool, bool], tuple(return_data))
|
return UpdateCheckResult(
|
||||||
|
version=version, old_version=None, client_updated=False, res_updated=False
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
with open(version_path, encoding="utf-8") as f:
|
with open(version_path, encoding="utf-8") as f:
|
||||||
base_version_json = json.load(f)
|
base_version_json = json.load(f)
|
||||||
@ -65,18 +74,27 @@ async def check_update() -> tuple[VersionModel, bool, bool]:
|
|||||||
with open(version_path, "w", encoding="utf-8") as f:
|
with open(version_path, "w", encoding="utf-8") as f:
|
||||||
json.dump(data, f, indent=2)
|
json.dump(data, f, indent=2)
|
||||||
|
|
||||||
if version.clientVersion != base_version.clientVersion:
|
result = UpdateCheckResult(
|
||||||
return_data[1] = True
|
version=version,
|
||||||
if version.resVersion != base_version.resVersion:
|
old_version=base_version,
|
||||||
return_data[2] = True
|
client_updated=False,
|
||||||
|
res_updated=False,
|
||||||
|
)
|
||||||
|
|
||||||
return cast(tuple[VersionModel, bool, bool], tuple(return_data))
|
if version.clientVersion != base_version.clientVersion:
|
||||||
|
result.client_updated = True
|
||||||
|
if version.resVersion != base_version.resVersion:
|
||||||
|
result.res_updated = True
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
@sv_server_check.on_command("取明日方舟最新版本")
|
@sv_server_check.on_command("取明日方舟最新版本")
|
||||||
async def get_latest_version(bot: Bot, ev: Event):
|
async def get_latest_version(bot: Bot, ev: Event):
|
||||||
version = await check_update()
|
result = await check_update()
|
||||||
await bot.send(f"当前版本: {version[0].clientVersion}\n资源版本: {version[0].resVersion}")
|
await bot.send(
|
||||||
|
f"clientVersion: {result.version.clientVersion}\nresVersion: {result.version.resVersion}"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@sv_server_check_sub.on_fullmatch(f"{PREFIX}订阅版本更新")
|
@sv_server_check_sub.on_fullmatch(f"{PREFIX}订阅版本更新")
|
||||||
@ -104,7 +122,10 @@ async def sub_ann_(bot: Bot, ev: Event):
|
|||||||
async def match_checker():
|
async def match_checker():
|
||||||
logger.info("Checking for Arknights client update")
|
logger.info("Checking for Arknights client update")
|
||||||
|
|
||||||
version = await check_update()
|
result = await check_update()
|
||||||
|
if not result.res_updated and not result.client_updated:
|
||||||
|
logger.info("No update found")
|
||||||
|
return
|
||||||
|
|
||||||
datas = await gs_subscribe.get_subscribe(task_name_server_check)
|
datas = await gs_subscribe.get_subscribe(task_name_server_check)
|
||||||
if not datas:
|
if not datas:
|
||||||
@ -112,13 +133,25 @@ async def match_checker():
|
|||||||
return
|
return
|
||||||
|
|
||||||
for subscribe in datas:
|
for subscribe in datas:
|
||||||
if version[1]:
|
if result.client_updated:
|
||||||
logger.warning("检测到明日方舟客户端版本更新")
|
logger.warning("检测到明日方舟客户端版本更新")
|
||||||
await subscribe.send(
|
if result.old_version is None:
|
||||||
f"检测到明日方舟客户端版本更新\n当前版本: {version[0].clientVersion}\n资源版本: {version[0].resVersion}",
|
await subscribe.send(
|
||||||
)
|
f"检测到明日方舟客户端版本更新\nclientVersion: {result.version.clientVersion}\nresVersion: {result.version.resVersion}",
|
||||||
elif version[2]:
|
)
|
||||||
|
else:
|
||||||
|
await subscribe.send(
|
||||||
|
f"检测到明日方舟客户端版本更新\nclientVersion: {result.old_version.clientVersion} -> {result.version.clientVersion}\nresVersion: {result.old_version.resVersion} -> {result.version.resVersion}",
|
||||||
|
)
|
||||||
|
await asyncio.sleep(random.uniform(1, 3))
|
||||||
|
elif result.res_updated:
|
||||||
logger.warning("检测到明日方舟资源版本更新")
|
logger.warning("检测到明日方舟资源版本更新")
|
||||||
await subscribe.send(
|
if result.old_version is None:
|
||||||
f"检测到明日方舟资源版本更新\n当前版本: {version[0].clientVersion}\n资源版本: {version[0].resVersion}",
|
await subscribe.send(
|
||||||
)
|
f"检测到明日方舟资源版本更新\nclientVersion: {result.version.clientVersion}\nresVersion: {result.version.resVersion}",
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
await subscribe.send(
|
||||||
|
f"检测到明日方舟资源版本更新\nclientVersion: {result.version.clientVersion}\nresVersion: {result.old_version.resVersion} -> {result.version.resVersion}",
|
||||||
|
)
|
||||||
|
await asyncio.sleep(random.uniform(1, 3))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user