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