mirror of
https://github.com/baiqwerdvd/StarRailUID.git
synced 2025-05-04 18:57:33 +08:00
✨ 网页控制台新增定时检查体力
开关
This commit is contained in:
parent
b2e41f2bf7
commit
9ca34cccc0
@ -2,9 +2,9 @@ from typing import Dict
|
||||
|
||||
from gsuid_core.utils.plugins_config.models import (
|
||||
GSC,
|
||||
GsStrConfig,
|
||||
GsBoolConfig,
|
||||
GsListStrConfig,
|
||||
GsStrConfig,
|
||||
)
|
||||
|
||||
CONIFG_DEFAULT: Dict[str, GSC] = {
|
||||
@ -36,4 +36,9 @@ CONIFG_DEFAULT: Dict[str, GSC] = {
|
||||
"开启后mr功能将转为调用组件API, 可能缺失数据、数据不准",
|
||||
True,
|
||||
),
|
||||
"StaminaCheck": GsBoolConfig(
|
||||
"定时检查体力(全体)",
|
||||
"开启后将定时检查体力是否超过阈值",
|
||||
True,
|
||||
),
|
||||
}
|
||||
|
@ -1,20 +1,21 @@
|
||||
import asyncio
|
||||
|
||||
from gsuid_core.aps import scheduler
|
||||
from gsuid_core.sv import SV
|
||||
from gsuid_core.bot import Bot
|
||||
from gsuid_core.gss import gss
|
||||
from gsuid_core.logger import logger
|
||||
from gsuid_core.models import Event
|
||||
from gsuid_core.aps import scheduler
|
||||
from gsuid_core.logger import logger
|
||||
from gsuid_core.segment import MessageSegment
|
||||
from gsuid_core.sv import SV
|
||||
from gsuid_core.utils.database.api import get_uid
|
||||
from gsuid_core.utils.database.models import GsBind
|
||||
|
||||
from .draw_stamina_card import get_stamina_img
|
||||
from .notice import get_notice_list
|
||||
from .stamina_text import get_stamina_text
|
||||
from ..utils.error_reply import UID_HINT
|
||||
from ..utils.sr_prefix import PREFIX
|
||||
from ..utils.error_reply import UID_HINT
|
||||
from .stamina_text import get_stamina_text
|
||||
from .draw_stamina_card import get_stamina_img
|
||||
from ..starrailuid_config.sr_config import srconfig
|
||||
|
||||
sv_get_stamina = SV("sr查询体力")
|
||||
sv_get_stamina_admin = SV("sr强制推送", pm=1)
|
||||
@ -41,6 +42,11 @@ async def force_notice_job(bot: Bot, ev: Event):
|
||||
|
||||
@scheduler.scheduled_job("cron", minute="*/30")
|
||||
async def sr_notice_job():
|
||||
StaminaCheck = srconfig.get_config("StaminaCheck").data
|
||||
if not StaminaCheck:
|
||||
logger.trace('[sr推送检查] 暂停...')
|
||||
return
|
||||
|
||||
result = await get_notice_list()
|
||||
logger.info("[sr推送检查]完成!等待消息推送中...")
|
||||
logger.debug(result)
|
||||
|
@ -3,14 +3,16 @@ from io import BytesIO
|
||||
from pathlib import Path
|
||||
from typing import Optional
|
||||
|
||||
from PIL import Image, ImageDraw
|
||||
import aiohttp
|
||||
from PIL import Image, ImageDraw
|
||||
from gsuid_core.logger import logger
|
||||
from gsuid_core.utils.database.models import GsBind, GsUser
|
||||
from gsuid_core.utils.image.convert import convert_img
|
||||
from gsuid_core.utils.database.models import GsBind, GsUser
|
||||
|
||||
from ..utils.mys_api import mys_api
|
||||
from ..sruid_utils.api.mys.models import Expedition
|
||||
from ..starrailuid_config.sr_config import srconfig
|
||||
from ..utils.image.image_tools import get_simple_bg
|
||||
from ..utils.error_reply import get_error as get_error_msg
|
||||
from ..utils.fonts.starrail_fonts import (
|
||||
sr_font_22,
|
||||
@ -19,8 +21,6 @@ from ..utils.fonts.starrail_fonts import (
|
||||
sr_font_36,
|
||||
sr_font_50,
|
||||
)
|
||||
from ..utils.image.image_tools import get_simple_bg
|
||||
from ..utils.mys_api import mys_api
|
||||
|
||||
use_widget = srconfig.get_config("WidgetResin").data
|
||||
|
||||
|
@ -2,8 +2,8 @@ from typing import List
|
||||
|
||||
from gsuid_core.logger import logger
|
||||
|
||||
from ..utils.error_reply import get_error
|
||||
from ..utils.mys_api import mys_api
|
||||
from ..utils.error_reply import get_error
|
||||
|
||||
daily_im = """*数据刷新可能存在一定延迟,请以当前游戏实际数据为准
|
||||
==============
|
||||
@ -28,15 +28,15 @@ async def get_stamina_text(uid: str) -> str:
|
||||
rec_time = ""
|
||||
current_stamina = dailydata.current_stamina
|
||||
if current_stamina < 160:
|
||||
stamina_recover_time = seconds2hours(dailydata.stamina_recover_time)
|
||||
recover_time = seconds2hours(dailydata.stamina_recover_time)
|
||||
next_stamina_rec_time = seconds2hours(
|
||||
8 * 60
|
||||
- (
|
||||
(dailydata.max_stamina - dailydata.current_stamina) * 8 * 60
|
||||
(max_stamina - dailydata.current_stamina) * 8 * 60
|
||||
- dailydata.stamina_recover_time
|
||||
)
|
||||
)
|
||||
rec_time = f" ({next_stamina_rec_time}/{stamina_recover_time})"
|
||||
rec_time = f" ({next_stamina_rec_time}/{recover_time})"
|
||||
|
||||
accepted_epedition_num = dailydata.accepted_expedition_num
|
||||
total_expedition_num = dailydata.total_expedition_num
|
||||
@ -50,7 +50,8 @@ async def get_stamina_text(uid: str) -> str:
|
||||
finished_expedition_num += 1
|
||||
else:
|
||||
remaining_time: str = seconds2hours(expedition.remaining_time)
|
||||
expedition_info.append(f"{expedition_name} 剩余时间{remaining_time}")
|
||||
_time = f"{expedition_name} 剩余时间"
|
||||
expedition_info.append(f"{_time}{remaining_time}")
|
||||
|
||||
expedition_data = "\n".join(expedition_info)
|
||||
return daily_im.format(
|
||||
|
@ -1,34 +1,34 @@
|
||||
import copy
|
||||
import time
|
||||
from typing import Dict, Literal, Optional, Union
|
||||
from typing import Dict, Union, Literal, Optional
|
||||
|
||||
from gsuid_core.utils.api.mys.tools import (
|
||||
generate_os_ds,
|
||||
get_ds_token,
|
||||
get_web_ds_token,
|
||||
mys_version,
|
||||
)
|
||||
from gsuid_core.utils.api.mys_api import _MysApi
|
||||
import msgspec
|
||||
from gsuid_core.utils.api.mys_api import _MysApi
|
||||
from gsuid_core.utils.api.mys.tools import (
|
||||
mys_version,
|
||||
get_ds_token,
|
||||
generate_os_ds,
|
||||
get_web_ds_token,
|
||||
)
|
||||
|
||||
from ..sruid_utils.api.mys.api import _API
|
||||
from ..sruid_utils.api.mys.models import (
|
||||
AbyssBossData,
|
||||
AbyssData,
|
||||
AbyssStoryData,
|
||||
AvatarDetail,
|
||||
AvatarInfo,
|
||||
DailyNoteData,
|
||||
GachaLog,
|
||||
MonthlyAward,
|
||||
MysSign,
|
||||
RogueData,
|
||||
RogueLocustData,
|
||||
RoleBasicInfo,
|
||||
RoleIndex,
|
||||
GachaLog,
|
||||
SignInfo,
|
||||
SignList,
|
||||
AbyssData,
|
||||
RogueData,
|
||||
RoleIndex,
|
||||
AvatarInfo,
|
||||
AvatarDetail,
|
||||
MonthlyAward,
|
||||
AbyssBossData,
|
||||
DailyNoteData,
|
||||
RoleBasicInfo,
|
||||
WidgetStamina,
|
||||
AbyssStoryData,
|
||||
RogueLocustData,
|
||||
)
|
||||
|
||||
RECOGNIZE_SERVER = {
|
||||
@ -216,13 +216,14 @@ class MysApi(_MysApi):
|
||||
HEADER["Cookie"] = ck
|
||||
HEADER["DS"] = generate_os_ds()
|
||||
header = HEADER
|
||||
os_server = "prod_official_asia"
|
||||
data = await self.simple_sr_req(
|
||||
"STAR_RAIL_AVATAR_INFO_URL",
|
||||
uid,
|
||||
params={
|
||||
"need_wiki": "true" if need_wiki else "false",
|
||||
"role_id": uid,
|
||||
"server": RECOGNIZE_SERVER.get(str(uid)[0], "prod_official_asia"),
|
||||
"server": RECOGNIZE_SERVER.get(str(uid)[0], os_server),
|
||||
},
|
||||
header=header,
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user