🎨 兼容PEP614

This commit is contained in:
Wuyi无疑 2023-03-25 01:07:24 +08:00
parent a8b097e990
commit f24f22c6d5
31 changed files with 162 additions and 82 deletions

View File

@ -6,8 +6,10 @@ from ..utils.convert import get_uid
from ..utils.error_reply import UID_HINT from ..utils.error_reply import UID_HINT
from .draw_abyss_card import draw_abyss_img from .draw_abyss_card import draw_abyss_img
sv_abyss = SV('查询深渊')
@SV('查询深渊').on_command(('查询深渊', 'sy', '查询上期深渊', 'sqsy'), block=True)
@sv_abyss.on_command(('查询深渊', 'sy', '查询上期深渊', 'sqsy'), block=True)
async def send_abyss_info(bot: Bot, ev: Event): async def send_abyss_info(bot: Bot, ev: Event):
await bot.logger.info('开始执行[查询深渊信息]') await bot.logger.info('开始执行[查询深渊信息]')
uid = await get_uid(bot, ev) uid = await get_uid(bot, ev)

View File

@ -4,15 +4,17 @@ from gsuid_core.models import Event
from .get_achi_desc import get_achi, get_daily_achi from .get_achi_desc import get_achi, get_daily_achi
sv_task_achi = SV('成就委托查询')
@SV('成就委托查询').on_prefix('查委托')
@sv_task_achi.on_prefix('查委托')
async def send_task_info(bot: Bot, ev: Event): async def send_task_info(bot: Bot, ev: Event):
await bot.logger.info(f'[查委托] 参数:{ev.text}') await bot.logger.info(f'[查委托] 参数:{ev.text}')
im = await get_daily_achi(ev.text) im = await get_daily_achi(ev.text)
await bot.send(im) await bot.send(im)
@SV('成就委托查询').on_prefix('查成就') @sv_task_achi.on_prefix('查成就')
async def send_achi_info(bot: Bot, ev: Event): async def send_achi_info(bot: Bot, ev: Event):
await bot.logger.info(f'[查成就] 参数:{ev.text}') await bot.logger.info(f'[查成就] 参数:{ev.text}')
im = await get_achi(ev.text) im = await get_achi(ev.text)

View File

@ -4,12 +4,14 @@ from gsuid_core.models import Event
from .get_adv import char_adv, weapon_adv from .get_adv import char_adv, weapon_adv
sv_adv_text = SV('文字推荐')
@SV('文字推荐').on_suffix(('用什么', '能用啥', '怎么养'))
@sv_adv_text.on_suffix(('用什么', '能用啥', '怎么养'))
async def send_char_adv(bot: Bot, ev: Event): async def send_char_adv(bot: Bot, ev: Event):
await bot.send(await char_adv(ev.text)) await bot.send(await char_adv(ev.text))
@SV('文字推荐').on_suffix(('能给谁', '谁能用')) @sv_adv_text.on_suffix(('能给谁', '谁能用'))
async def send_weapon_adv(bot: Bot, ev: Event): async def send_weapon_adv(bot: Bot, ev: Event):
await bot.send(await weapon_adv(ev.text)) await bot.send(await weapon_adv(ev.text))

View File

@ -16,8 +16,12 @@ from ..utils.image.convert import convert_img
from ..genshinuid_config.gs_config import gsconfig from ..genshinuid_config.gs_config import gsconfig
from .ann_card import sub_ann, unsub_ann, ann_list_card, ann_detail_card from .ann_card import sub_ann, unsub_ann, ann_list_card, ann_detail_card
sv_ann = SV('原神公告')
sv_ann_sub = SV('原神公告订阅', pm=2)
sv_ann_hint = SV('原神公告红点')
@SV('原神公告').on_command(('原神公告'))
@sv_ann.on_command(('原神公告'))
async def ann_(bot: Bot, ev: Event): async def ann_(bot: Bot, ev: Event):
ann_id = ev.text ann_id = ev.text
if not ann_id: if not ann_id:
@ -33,21 +37,21 @@ async def ann_(bot: Bot, ev: Event):
await bot.send(img) await bot.send(img)
@SV('原神公告订阅', pm=2).on_fullmatch('订阅原神公告') @sv_ann_sub.on_fullmatch('订阅原神公告')
async def sub_ann_(bot: Bot, ev: Event): async def sub_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('请在群聊中订阅')
await bot.send(sub_ann(bot.bot_id, ev.group_id)) await bot.send(sub_ann(bot.bot_id, ev.group_id))
@SV('原神公告订阅', pm=2).on_fullmatch(('取消订阅原神公告', '取消原神公告', '退订原神公告')) @sv_ann_sub.on_fullmatch(('取消订阅原神公告', '取消原神公告', '退订原神公告'))
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('请在群聊中取消订阅')
await bot.send(unsub_ann(bot.bot_id, ev.group_id)) await bot.send(unsub_ann(bot.bot_id, ev.group_id))
@SV('原神公告红点').on_fullmatch(('取消原神公告红点', '清除原神公告红点')) @sv_ann_hint.on_fullmatch(('取消原神公告红点', '清除原神公告红点'))
async def consume_remind_(bot: Bot, ev: Event): async def consume_remind_(bot: Bot, ev: Event):
uid = await get_uid(bot, ev) uid = await get_uid(bot, ev)
if uid is None: if uid is None:

View File

@ -12,19 +12,21 @@ from .backup_data import data_backup
from ..utils.database import get_sqla from ..utils.database import get_sqla
from ..gsuid_utils.database.models import GsUser from ..gsuid_utils.database.models import GsUser
sv_data_manger = SV('数据管理', pm=2)
@scheduler.scheduled_job('cron', hour=0, minute=6) @scheduler.scheduled_job('cron', hour=0, minute=6)
async def daily_refresh_charData(): async def daily_refresh_charData():
await data_backup() await data_backup()
@SV('数据管理', pm=2).on_fullmatch(('gs清除缓存')) @sv_data_manger.on_fullmatch(('gs清除缓存'))
async def send_backup_msg(bot: Bot, ev: Event): async def send_backup_msg(bot: Bot, ev: Event):
await data_backup() await data_backup()
await bot.send('操作成功完成!') await bot.send('操作成功完成!')
@SV('数据管理', pm=2).on_fullmatch(('校验全部Cookies')) @sv_data_manger.on_fullmatch(('校验全部Cookies'))
async def send_check_cookie(bot: Bot, ev: Event): async def send_check_cookie(bot: Bot, ev: Event):
user_list = await get_sqla(bot.bot_id).get_all_user() user_list = await get_sqla(bot.bot_id).get_all_user()
invalid_user: List[GsUser] = [] invalid_user: List[GsUser] = []
@ -74,7 +76,7 @@ async def send_check_cookie(bot: Bot, ev: Event):
await asyncio.sleep(3 + random.randint(1, 3)) await asyncio.sleep(3 + random.randint(1, 3))
@SV('数据管理', pm=2).on_fullmatch(('校验全部Stoken')) @sv_data_manger.on_fullmatch(('校验全部Stoken'))
async def send_check_stoken(bot: Bot, ev: Event): async def send_check_stoken(bot: Bot, ev: Event):
user_list = await get_sqla(bot.bot_id).get_all_user() user_list = await get_sqla(bot.bot_id).get_all_user()
invalid_user: List[GsUser] = [] invalid_user: List[GsUser] = []

View File

@ -6,8 +6,11 @@ from ..utils.convert import get_uid
from ..utils.error_reply import UID_HINT from ..utils.error_reply import UID_HINT
from .draw_collection_card import draw_explora_img, draw_collection_img from .draw_collection_card import draw_explora_img, draw_collection_img
sv_sj = SV('查询收集')
sv_ts = SV('查询探索')
@SV('查询数据').on_command(('查询收集', 'sj'), block=True)
@sv_sj.on_command(('查询收集', 'sj'), block=True)
async def send_collection_info(bot: Bot, ev: Event): async def send_collection_info(bot: Bot, ev: Event):
await bot.logger.info('开始执行[查询收集信息]') await bot.logger.info('开始执行[查询收集信息]')
user_id = ev.at if ev.at else ev.user_id user_id = ev.at if ev.at else ev.user_id
@ -22,7 +25,7 @@ async def send_collection_info(bot: Bot, ev: Event):
await bot.send(im) await bot.send(im)
@SV('查询数据').on_command(('查询探索', 'ts'), block=True) @sv_ts.on_command(('查询探索', 'ts'), block=True)
async def send_explora_info(bot: Bot, ev: Event): async def send_explora_info(bot: Bot, ev: Event):
await bot.logger.info('开始执行[查询探索信息]') await bot.logger.info('开始执行[查询探索信息]')
user_id = ev.at if ev.at else ev.user_id user_id = ev.at if ev.at else ev.user_id

View File

@ -9,15 +9,17 @@ from ..utils.error_reply import UID_HINT
from .draw_config_card import draw_config_img from .draw_config_card import draw_config_img
from .set_config import set_push_value, set_config_func from .set_config import set_push_value, set_config_func
sv_self_config = SV('原神配置')
@SV('原神配置').on_fullmatch(('gs配置', '原神配置'))
@sv_self_config.on_fullmatch(('gs配置', '原神配置'))
async def send_config_card(bot: Bot, ev: Event): async def send_config_card(bot: Bot, ev: Event):
await bot.logger.info('开始执行[gs配置]') await bot.logger.info('开始执行[gs配置]')
im = await draw_config_img(ev.bot_id) im = await draw_config_img(ev.bot_id)
await bot.send(im) await bot.send(im)
@SV('原神配置').on_prefix(('gs设置')) @sv_self_config.on_prefix(('gs设置'))
async def send_config_ev(bot: Bot, ev: Event): async def send_config_ev(bot: Bot, ev: Event):
await bot.logger.info('开始执行[设置阈值信息]') await bot.logger.info('开始执行[设置阈值信息]')
@ -39,7 +41,7 @@ async def send_config_ev(bot: Bot, ev: Event):
# 开启 自动签到 和 推送树脂提醒 功能 # 开启 自动签到 和 推送树脂提醒 功能
@SV('原神配置').on_prefix(('gs开启', 'gs关闭')) @sv_self_config.on_prefix(('gs开启', 'gs关闭'))
async def open_switch_func(bot: Bot, ev: Event): async def open_switch_func(bot: Bot, ev: Event):
sqla = get_sqla(ev.bot_id) sqla = get_sqla(ev.bot_id)
user_id = ev.user_id user_id = ev.user_id

View File

@ -4,8 +4,10 @@ from gsuid_core.models import Event
from .import_data import import_v3_data from .import_data import import_v3_data
sv_v3_data = SV('数据备份恢复', pm=2)
@SV('数据备份恢复', pm=2).on_fullmatch(('导入v3数据'))
@sv_v3_data.on_fullmatch(('导入v3数据'))
async def send_import_data_msg(bot: Bot, ev: Event): async def send_import_data_msg(bot: Bot, ev: Event):
await bot.send('开始导入v3数据...可能会比较久...') await bot.send('开始导入v3数据...可能会比较久...')
await bot.send(await import_v3_data()) await bot.send(await import_v3_data())

View File

@ -12,13 +12,16 @@ from .get_enka_img import draw_enka_img
from ..utils.error_reply import UID_HINT from ..utils.error_reply import UID_HINT
from .draw_char_rank import draw_cahrcard_list from .draw_char_rank import draw_cahrcard_list
sv_enka_config = SV('面板设置', pm=2)
sv_get_enka = SV('面板查询', priority=10)
@SV('面板设置', pm=2).on_fullmatch('切换api')
@sv_enka_config.on_fullmatch('切换api')
async def send_change_api_info(bot: Bot, ev: Event): async def send_change_api_info(bot: Bot, ev: Event):
await bot.send(await switch_api()) await bot.send(await switch_api())
@SV('面板查询', priority=10).on_prefix('查询') @sv_get_enka.on_prefix('查询')
async def send_char_info(bot: Bot, ev: Event): async def send_char_info(bot: Bot, ev: Event):
# 获取角色名 # 获取角色名
msg = ''.join(re.findall('[\u4e00-\u9fa5]', ev.text)) msg = ''.join(re.findall('[\u4e00-\u9fa5]', ev.text))
@ -40,7 +43,7 @@ async def send_char_info(bot: Bot, ev: Event):
await bot.send('发生未知错误') await bot.send('发生未知错误')
@SV('面板查询', priority=10).on_command('强制刷新') @sv_get_enka.on_command('强制刷新')
async def send_card_info(bot: Bot, ev: Event): async def send_card_info(bot: Bot, ev: Event):
uid = await get_uid(bot, ev) uid = await get_uid(bot, ev)
if uid is None: if uid is None:
@ -51,7 +54,7 @@ async def send_card_info(bot: Bot, ev: Event):
await bot.send(im) await bot.send(im)
@SV('面板查询', priority=10).on_command('毕业度统计') @sv_get_enka.on_command('毕业度统计')
async def send_charcard_list(bot: Bot, ev: Event): async def send_charcard_list(bot: Bot, ev: Event):
uid = await get_uid(bot, ev) uid = await get_uid(bot, ev)
user_id = ev.at if ev.at else ev.user_id user_id = ev.at if ev.at else ev.user_id

View File

@ -10,8 +10,11 @@ from ..utils.image.convert import convert_img
PRIMOGEMS_DATA_PATH = Path(__file__).parent / 'primogems_data' PRIMOGEMS_DATA_PATH = Path(__file__).parent / 'primogems_data'
IMG_PATH = Path(__file__).parent / 'img_data' IMG_PATH = Path(__file__).parent / 'img_data'
sv_primogems_data = SV('版本规划')
sv_etc_img = SV('杂图')
@SV('版本规划').on_command(('版本规划', '原石预估'))
@sv_primogems_data.on_command(('版本规划', '原石预估'))
async def send_primogems_data(bot: Bot, ev: Event): async def send_primogems_data(bot: Bot, ev: Event):
await bot.logger.info('开始执行[图片][版本规划]') await bot.logger.info('开始执行[图片][版本规划]')
if ev.text: if ev.text:
@ -28,7 +31,7 @@ async def send_primogems_data(bot: Bot, ev: Event):
await bot.send(primogems_img) await bot.send(primogems_img)
@SV('杂图').on_fullmatch(('伤害乘区', '血量表', '抗性表', '血量排行')) @sv_etc_img.on_fullmatch(('伤害乘区', '血量表', '抗性表', '血量排行'))
async def send_img_data(bot: Bot, ev: Event): async def send_img_data(bot: Bot, ev: Event):
await bot.logger.info('开始执行[图片][杂图]') await bot.logger.info('开始执行[图片][杂图]')
img = IMG_PATH / f'{ev.command}.jpg' img = IMG_PATH / f'{ev.command}.jpg'

View File

@ -6,19 +6,21 @@ from gsuid_core.aps import scheduler
from ..utils.image.convert import convert_img from ..utils.image.convert import convert_img
from .draw_event_img import get_event_img, get_all_event_img from .draw_event_img import get_event_img, get_all_event_img
sv_event_list = SV('活动列表')
@scheduler.scheduled_job('cron', hour='2') @scheduler.scheduled_job('cron', hour='2')
async def draw_event(): async def draw_event():
await get_all_event_img() await get_all_event_img()
@SV('活动列表').on_fullmatch('活动列表') @sv_event_list.on_fullmatch('活动列表')
async def send_events(bot: Bot, ev: Event): async def send_events(bot: Bot, ev: Event):
img = await get_event_img('EVENT') img = await get_event_img('EVENT')
await bot.send(await convert_img(img)) await bot.send(await convert_img(img))
@SV('活动列表').on_fullmatch('卡池列表') @sv_event_list.on_fullmatch('卡池列表')
async def send_gachas(bot: Bot, ev: Event): async def send_gachas(bot: Bot, ev: Event):
img = await get_event_img('GACHA') img = await get_event_img('GACHA')
await bot.send(await convert_img(img)) await bot.send(await convert_img(img))

View File

@ -10,8 +10,12 @@ from .get_gachalogs import save_gachalogs
from .draw_gachalogs import draw_gachalogs_img from .draw_gachalogs import draw_gachalogs_img
from .export_and_import import export_gachalogs from .export_and_import import export_gachalogs
sv_gacha_log = SV('抽卡记录')
sv_refresh_gacha_log = SV('刷新抽卡记录')
sv_export_gacha_log = SV('导出抽卡记录')
@SV('抽卡记录').on_fullmatch(('抽卡记录'))
@sv_gacha_log.on_fullmatch(('抽卡记录'))
async def send_gacha_log_card_info(bot: Bot, ev: Event): async def send_gacha_log_card_info(bot: Bot, ev: Event):
await bot.logger.info('开始执行[抽卡记录]') await bot.logger.info('开始执行[抽卡记录]')
uid = await get_uid(bot, ev) uid = await get_uid(bot, ev)
@ -21,7 +25,7 @@ async def send_gacha_log_card_info(bot: Bot, ev: Event):
await bot.send(im) await bot.send(im)
@SV('抽卡记录').on_fullmatch(('刷新抽卡记录', '强制刷新抽卡记录')) @sv_refresh_gacha_log.on_fullmatch(('刷新抽卡记录', '强制刷新抽卡记录'))
async def send_refresh_gacha_info(bot: Bot, ev: Event): async def send_refresh_gacha_info(bot: Bot, ev: Event):
await bot.logger.info('开始执行[刷新抽卡记录]') await bot.logger.info('开始执行[刷新抽卡记录]')
uid = await get_uid(bot, ev) uid = await get_uid(bot, ev)
@ -36,7 +40,7 @@ async def send_refresh_gacha_info(bot: Bot, ev: Event):
await bot.send(im) await bot.send(im)
@SV('导出抽卡记录').on_fullmatch(('导出抽卡记录')) @sv_export_gacha_log.on_fullmatch(('导出抽卡记录'))
async def send_export_gacha_info(bot: Bot, ev: Event): async def send_export_gacha_info(bot: Bot, ev: Event):
await bot.logger.info('开始执行[导出抽卡记录]') await bot.logger.info('开始执行[导出抽卡记录]')
sqla = get_sqla(ev.bot_id) sqla = get_sqla(ev.bot_id)

View File

@ -7,8 +7,10 @@ from .draw_gcgdesk import draw_deck_img
from .draw_gcginfo import draw_gcg_info from .draw_gcginfo import draw_gcg_info
from ..utils.error_reply import UID_HINT from ..utils.error_reply import UID_HINT
sv_gcg = SV('查询七圣')
@SV('查询七圣').on_command(('七圣召唤', 'qszh'))
@sv_gcg.on_command(('七圣召唤', 'qszh'))
async def send_gcg_pic(bot: Bot, ev: Event): async def send_gcg_pic(bot: Bot, ev: Event):
uid = await get_uid(bot, ev) uid = await get_uid(bot, ev)
if uid is None: if uid is None:
@ -19,7 +21,7 @@ async def send_gcg_pic(bot: Bot, ev: Event):
await bot.send(im) await bot.send(im)
@SV('查询七圣').on_command(('我的卡组', '我的牌组')) @sv_gcg.on_command(('我的卡组', '我的牌组'))
async def send_deck_pic(bot: Bot, ev: Event): async def send_deck_pic(bot: Bot, ev: Event):
uid = await get_uid(bot, ev) uid = await get_uid(bot, ev)
if uid is None: if uid is None:

View File

@ -12,8 +12,11 @@ from ..utils.image.convert import convert_img
from ..utils.resource.RESOURCE_PATH import REF_PATH from ..utils.resource.RESOURCE_PATH import REF_PATH
from ..utils.map.name_covert import alias_to_char_name from ..utils.map.name_covert import alias_to_char_name
sv_char_guide = SV('查询角色攻略')
sv_abyss_review = SV('查询深渊阵容')
@SV('查询角色攻略').on_suffix(('攻略', '推荐'))
@sv_char_guide.on_suffix(('攻略', '推荐'))
async def send_guide_pic(bot: Bot, ev: Event): async def send_guide_pic(bot: Bot, ev: Event):
im = await get_gs_guide(ev.text) im = await get_gs_guide(ev.text)
@ -24,7 +27,7 @@ async def send_guide_pic(bot: Bot, ev: Event):
await bot.logger.warning('未找到{}攻略图片'.format(ev.text)) await bot.logger.warning('未找到{}攻略图片'.format(ev.text))
@SV('查询角色攻略').on_prefix(('参考面板')) @sv_char_guide.on_prefix(('参考面板'))
async def send_bluekun_pic(bot: Bot, ev: Event): async def send_bluekun_pic(bot: Bot, ev: Event):
if ev.text in ['', '', '', '', '', '', '']: if ev.text in ['', '', '', '', '', '', '']:
name = ev.text name = ev.text
@ -39,7 +42,7 @@ async def send_bluekun_pic(bot: Bot, ev: Event):
await bot.logger.warning('未找到{}参考面板图片'.format(name)) await bot.logger.warning('未找到{}参考面板图片'.format(name))
@SV('查询深渊阵容').on_command(('版本深渊', '深渊阵容')) @sv_abyss_review.on_command(('版本深渊', '深渊阵容'))
async def send_abyss_review(bot: Bot, ev: Event): async def send_abyss_review(bot: Bot, ev: Event):
if not ev.text: if not ev.text:
version = Genshin_version[:-2] version = Genshin_version[:-2]

File diff suppressed because one or more lines are too long

View File

@ -8,8 +8,10 @@ from ..utils.image.convert import convert_img
HELP_IMG = Path(__file__).parent / 'help.png' HELP_IMG = Path(__file__).parent / 'help.png'
sv_gsuid_help = SV('原神帮助')
@SV('原神帮助').on_fullmatch('gs帮助')
@sv_gsuid_help.on_fullmatch('gs帮助')
async def send_guide_pic(bot: Bot, ev: Event): async def send_guide_pic(bot: Bot, ev: Event):
img = await convert_img(HELP_IMG) img = await convert_img(HELP_IMG)
await bot.logger.info('获得gs帮助图片成功') await bot.logger.info('获得gs帮助图片成功')

View File

@ -18,8 +18,11 @@ MAP_CHN_NAME = {
# MapID.golden_apple_archipelago: '金苹果群岛', # MapID.golden_apple_archipelago: '金苹果群岛',
} }
sv_find_map_config = SV('查询地图设置', pm=2)
sv_find_map = SV('查询地图', pm=2)
@SV('查询地图设置', pm=2).on_fullmatch(('切换地图'))
@sv_find_map_config.on_fullmatch(('切换地图'))
async def send_change_map_msg(bot: Bot, ev: Event): async def send_change_map_msg(bot: Bot, ev: Event):
await bot.logger.info('[切换地图]正在执行...') await bot.logger.info('[切换地图]正在执行...')
MAP_ID_LIST.append(MAP_ID_LIST[0]) MAP_ID_LIST.append(MAP_ID_LIST[0])
@ -30,7 +33,7 @@ async def send_change_map_msg(bot: Bot, ev: Event):
await bot.send(f'切换到{chn}地图') await bot.send(f'切换到{chn}地图')
@SV('查询地图').on_prefix(('哪里有', '哪儿有', '哪有')) @sv_find_map.on_prefix(('哪里有', '哪儿有', '哪有'))
async def send_find_map_msg(bot: Bot, ev: Event): async def send_find_map_msg(bot: Bot, ev: Event):
map_id = MAP_ID_LIST[0] map_id = MAP_ID_LIST[0]
map_name = MAP_CHN_NAME[map_id] map_name = MAP_CHN_NAME[map_id]

View File

@ -9,8 +9,11 @@ from .get_lots_data import get_lots_msg
from .get_meme_card import get_meme_img from .get_meme_card import get_meme_img
from .get_mys_data import get_region_task, get_task_detail from .get_mys_data import get_region_task, get_task_detail
sv_find_task = SV('查询游戏攻略')
sv_fun = SV('娱乐功能')
@SV('查询游戏攻略').on_prefix(('原神任务', '任务详情', 'qszh'))
@sv_find_task.on_prefix(('原神任务', '任务详情', 'qszh'))
async def send_task_adv(bot: Bot, ev: Event): async def send_task_adv(bot: Bot, ev: Event):
if ev.text in ['须弥', '层岩', '海岛']: if ev.text in ['须弥', '层岩', '海岛']:
im = await get_region_task(ev.text) im = await get_region_task(ev.text)
@ -24,13 +27,13 @@ async def send_task_adv(bot: Bot, ev: Event):
await bot.send(im) await bot.send(im)
@SV('娱乐功能').on_fullmatch(('抽表情')) @sv_fun.on_fullmatch(('抽表情'))
async def send_meme_card(bot: Bot, ev: Event): async def send_meme_card(bot: Bot, ev: Event):
await bot.logger.info('开始执行[抽表情]') await bot.logger.info('开始执行[抽表情]')
await bot.send(await get_meme_img()) await bot.send(await get_meme_img())
@SV('娱乐功能').on_fullmatch(('御神签')) @sv_fun.on_fullmatch(('御神签'))
async def send_lots_data(bot: Bot, ev: Event): async def send_lots_data(bot: Bot, ev: Event):
await bot.logger.info('开始执行[御神签]') await bot.logger.info('开始执行[御神签]')
await bot.send(await get_lots_msg(ev.user_id)) await bot.send(await get_lots_msg(ev.user_id))

View File

@ -16,9 +16,12 @@ from .daily_get import mihoyo_coin, all_daily_mihoyo_bbs_coin
BBS_TASK_TIME = gsconfig.get_config('BBSTaskTime').data BBS_TASK_TIME = gsconfig.get_config('BBSTaskTime').data
sv_mysbbs_config = SV('米游币获取管理', pm=2)
sv_get_mysbbs = SV('米游币获取')
# 获取米游币 # 获取米游币
@SV('米游币获取').on_fullmatch('开始获取米游币') @sv_get_mysbbs.on_fullmatch('开始获取米游币')
async def send_mihoyo_coin(bot: Bot, ev: Event): async def send_mihoyo_coin(bot: Bot, ev: Event):
await bot.send('开始操作……') await bot.send('开始操作……')
sqla = get_sqla(ev.bot_id) sqla = get_sqla(ev.bot_id)
@ -32,7 +35,7 @@ async def send_mihoyo_coin(bot: Bot, ev: Event):
await bot.send(im) await bot.send(im)
@SV('米游币获取管理', pm=2).on_fullmatch('全部重获取') @sv_mysbbs_config.on_fullmatch('全部重获取')
async def bbs_recheck(bot: Bot, ev: Event): async def bbs_recheck(bot: Bot, ev: Event):
await bot.send('已开始执行!可能需要较久时间!') await bot.send('已开始执行!可能需要较久时间!')
await send_daily_mihoyo_bbs_sign(ev) await send_daily_mihoyo_bbs_sign(ev)

View File

@ -8,9 +8,11 @@ from ..utils.database import get_sqla
from ..utils.error_reply import UID_HINT from ..utils.error_reply import UID_HINT
from .draw_note_card import draw_note_img from .draw_note_card import draw_note_img
sv_get_monthly_data = SV('查询札记')
# 群聊内 每月统计 功能 # 群聊内 每月统计 功能
@SV('查询札记').on_fullmatch(('每月统计')) @sv_get_monthly_data.on_fullmatch(('每月统计'))
async def send_monthly_data(bot: Bot, ev: Event): async def send_monthly_data(bot: Bot, ev: Event):
sqla = get_sqla(ev.bot_id) sqla = get_sqla(ev.bot_id)
uid = await sqla.get_bind_uid(ev.user_id) uid = await sqla.get_bind_uid(ev.user_id)
@ -19,7 +21,7 @@ async def send_monthly_data(bot: Bot, ev: Event):
await bot.send(await award(uid)) await bot.send(await award(uid))
@SV('查询札记').on_fullmatch(('当前信息', 'zj', '札记')) @sv_get_monthly_data.on_fullmatch(('当前信息', 'zj', '札记'))
async def send_monthly_pic(bot: Bot, ev: Event): async def send_monthly_pic(bot: Bot, ev: Event):
await bot.logger.info('开始执行[每日信息]') await bot.logger.info('开始执行[每日信息]')
uid = await get_uid(bot, ev) uid = await get_uid(bot, ev)

View File

@ -14,8 +14,10 @@ from .resin_text import get_resin_text
from ..utils.error_reply import UID_HINT from ..utils.error_reply import UID_HINT
from .draw_resin_card import get_resin_img from .draw_resin_card import get_resin_img
sv_get_resin = SV('查询体力')
@SV('查询体力').on_fullmatch(('当前状态'))
@sv_get_resin.on_fullmatch(('当前状态'))
async def send_daily_info(bot: Bot, ev: Event): async def send_daily_info(bot: Bot, ev: Event):
await bot.logger.info('开始执行[每日信息文字版]') await bot.logger.info('开始执行[每日信息文字版]')
uid = await get_uid(bot, ev) uid = await get_uid(bot, ev)
@ -52,7 +54,7 @@ async def notice_job():
logger.info('[推送检查] 群聊推送完成') logger.info('[推送检查] 群聊推送完成')
@SV('查询体力').on_fullmatch(('每日', 'mr', '实时便笺', '便笺', '便签')) @sv_get_resin.on_fullmatch(('每日', 'mr', '实时便笺', '便笺', '便签'))
async def send_daily_info_pic(bot: Bot, ev: Event): async def send_daily_info_pic(bot: Bot, ev: Event):
await bot.logger.info('开始执行[每日信息]') await bot.logger.info('开始执行[每日信息]')
user_id = ev.at if ev.at else ev.user_id user_id = ev.at if ev.at else ev.user_id

View File

@ -5,8 +5,10 @@ from gsuid_core.logger import logger
from ..utils.resource.download_all_resource import download_all_resource from ..utils.resource.download_all_resource import download_all_resource
sv_download_config = SV('下载资源', pm=2)
@SV('下载资源', pm=2).on_fullmatch(('下载全部资源'))
@sv_download_config.on_fullmatch(('下载全部资源'))
async def send_download_resource_msg(bot: Bot, ev: Event): async def send_download_resource_msg(bot: Bot, ev: Event):
await bot.send('正在开始下载~可能需要较久的时间!') await bot.send('正在开始下载~可能需要较久的时间!')
im = await download_all_resource() im = await download_all_resource()

View File

@ -9,8 +9,11 @@ from .get_regtime import calc_reg_time
from ..utils.error_reply import UID_HINT from ..utils.error_reply import UID_HINT
from .draw_roleinfo_card import draw_pic from .draw_roleinfo_card import draw_pic
sv_get_regtime = SV('查询注册时间')
sv_get_info = SV('查询原神信息')
@SV('查询注册时间').on_command(('原神注册时间', '注册时间', '查询注册时间'), block=True)
@sv_get_regtime.on_command(('原神注册时间', '注册时间', '查询注册时间'), block=True)
async def regtime(bot: Bot, ev: Event): async def regtime(bot: Bot, ev: Event):
await bot.logger.info('开始执行[查询注册时间]') await bot.logger.info('开始执行[查询注册时间]')
uid = await get_uid(bot, ev) uid = await get_uid(bot, ev)
@ -22,7 +25,7 @@ async def regtime(bot: Bot, ev: Event):
await bot.send(im) await bot.send(im)
@SV('查询原神信息').on_command(('查询')) @sv_get_info.on_command(('查询'))
async def send_role_info(bot: Bot, ev: Event): async def send_role_info(bot: Bot, ev: Event):
name = ''.join(re.findall('[\u4e00-\u9fa5]', ev.text)) name = ''.join(re.findall('[\u4e00-\u9fa5]', ev.text))
if name: if name:

View File

@ -15,6 +15,9 @@ from ..genshinuid_config.gs_config import gsconfig
SIGN_TIME = gsconfig.get_config('SignTime').data SIGN_TIME = gsconfig.get_config('SignTime').data
sv_sign = SV('原神签到')
sv_sign_config = SV('原神签到', pm=2)
# 每日零点半执行米游社原神签到 # 每日零点半执行米游社原神签到
@scheduler.scheduled_job('cron', hour=SIGN_TIME[0], minute=SIGN_TIME[1]) @scheduler.scheduled_job('cron', hour=SIGN_TIME[0], minute=SIGN_TIME[1])
@ -24,7 +27,7 @@ async def sign_at_night():
# 群聊内 签到 功能 # 群聊内 签到 功能
@SV('原神签到').on_fullmatch('签到') @sv_sign.on_fullmatch('签到')
async def get_sign_func(bot: Bot, ev: Event): async def get_sign_func(bot: Bot, ev: Event):
await bot.logger.info('[签到]QQ号: {}'.format(ev.user_id)) await bot.logger.info('[签到]QQ号: {}'.format(ev.user_id))
sqla = get_sqla(ev.bot_id) sqla = get_sqla(ev.bot_id)
@ -35,7 +38,7 @@ async def get_sign_func(bot: Bot, ev: Event):
await bot.send(await sign_in(uid)) await bot.send(await sign_in(uid))
@SV('原神签到', pm=2).on_fullmatch('全部重签') @sv_sign_config.on_fullmatch('全部重签')
async def recheck(bot: Bot, ev: Event): async def recheck(bot: Bot, ev: Event):
await bot.logger.info('开始执行[全部重签]') await bot.logger.info('开始执行[全部重签]')
await bot.send('已开始执行') await bot.send('已开始执行')

View File

@ -5,8 +5,10 @@ from gsuid_core.models import Event
from .gs_topup import GOODS, topup_ from .gs_topup import GOODS, topup_
from ..genshinuid_config.gs_config import gsconfig from ..genshinuid_config.gs_config import gsconfig
sv_topup = SV('原神充值')
@SV('原神充值').on_command(('gsrc', '原神充值', 'pay'))
@sv_topup.on_command(('gsrc', '原神充值', 'pay'))
async def send_qrcode_login(bot: Bot, ev: Event): async def send_qrcode_login(bot: Bot, ev: Event):
await bot.logger.info('开始执行[原神充值]') await bot.logger.info('开始执行[原神充值]')
value = ev.text value = ev.text
@ -36,4 +38,9 @@ async def send_qrcode_login(bot: Bot, ev: Event):
if goods_id is None: if goods_id is None:
return await bot.send('请输入正确的商品编号(1~6), 例如原神充值6!') return await bot.send('请输入正确的商品编号(1~6), 例如原神充值6!')
await topup_(bot, ev.bot_id, ev.user_id, ev.group_id, goods_id, method) if ev.group_id is None:
gid = 'direct'
else:
gid = ev.group_id
await topup_(bot, ev.bot_id, ev.user_id, gid, goods_id, method)

View File

@ -10,6 +10,9 @@ from gsuid_core.segment import MessageSegment
from .restart import restart_message, restart_genshinuid from .restart import restart_message, restart_genshinuid
from .draw_update_log import get_all_update_log, draw_update_log_img from .draw_update_log import get_all_update_log, draw_update_log_img
sv_core_config = SV('Core管理', pm=1)
sv_update_history = SV('Core更新记录')
@gss.on_bot_connect @gss.on_bot_connect
async def check_msg(): async def check_msg():
@ -41,7 +44,7 @@ async def check_msg():
logger.warning('遗留信息检查失败!') logger.warning('遗留信息检查失败!')
@SV('Core管理', pm=1).on_fullmatch(('gs重启')) @sv_core_config.on_fullmatch(('gs重启'))
async def send_restart_msg(bot: Bot, ev: Event): async def send_restart_msg(bot: Bot, ev: Event):
await bot.logger.warning('开始执行[重启]') await bot.logger.warning('开始执行[重启]')
if ev.group_id: if ev.group_id:
@ -54,21 +57,21 @@ async def send_restart_msg(bot: Bot, ev: Event):
await restart_genshinuid(bot.bot_id, send_type, str(send_id)) await restart_genshinuid(bot.bot_id, send_type, str(send_id))
@SV('Core管理', pm=1).on_fullmatch(('gs关闭core', 'gs关闭Core')) @sv_core_config.on_fullmatch(('gs关闭core', 'gs关闭Core'))
async def send_shutdown_msg(bot: Bot, ev: Event): async def send_shutdown_msg(bot: Bot, ev: Event):
await bot.logger.warning('开始执行[关闭]') await bot.logger.warning('开始执行[关闭]')
await bot.send('正在执行[gs关闭Core]...') await bot.send('正在执行[gs关闭Core]...')
os._exit(0) os._exit(0)
@SV('Core更新记录').on_fullmatch(('更新记录')) @sv_update_history.on_fullmatch(('更新记录'))
async def send_updatelog_msg(bot: Bot, ev: Event): async def send_updatelog_msg(bot: Bot, ev: Event):
await bot.logger.info('正在执行[更新记录]...') await bot.logger.info('正在执行[更新记录]...')
im = await draw_update_log_img(is_update=False) im = await draw_update_log_img(is_update=False)
await bot.send(im) await bot.send(im)
@SV('Core管理', pm=1).on_fullmatch(('gs更新', 'gs强制更新', 'gs强行强制更新', 'gs全部更新')) @sv_core_config.on_fullmatch(('gs更新', 'gs强制更新', 'gs强行强制更新', 'gs全部更新'))
async def send_update_msg(bot: Bot, ev: Event): async def send_update_msg(bot: Bot, ev: Event):
await bot.logger.info('[gs更新] 正在执行 ...') await bot.logger.info('[gs更新] 正在执行 ...')
level = 2 level = 2

View File

@ -12,22 +12,29 @@ from ..utils.message import send_diff_msg
from .draw_user_card import get_user_card from .draw_user_card import get_user_card
from .add_ck import deal_ck, get_ck_by_stoken, get_ck_by_all_stoken from .add_ck import deal_ck, get_ck_by_stoken, get_ck_by_all_stoken
sv_user_config = SV('用户管理', pm=2)
sv_user_add = SV('用户添加')
sv_user_qrcode_login = SV('扫码登陆')
sv_user_addck = SV('添加CK', area='DIRECT')
sv_user_info = SV('用户信息')
sv_user_help = SV('绑定帮助')
@SV('用户管理', pm=2).on_fullmatch(('刷新全部CK', '刷新全部ck'))
@sv_user_config.on_fullmatch(('刷新全部CK', '刷新全部ck'))
async def send_refresh_all_ck_msg(bot: Bot, ev: Event): async def send_refresh_all_ck_msg(bot: Bot, ev: Event):
await bot.logger.info('开始执行[刷新全部CK]') await bot.logger.info('开始执行[刷新全部CK]')
im = await get_ck_by_all_stoken(ev.bot_id) im = await get_ck_by_all_stoken(ev.bot_id)
await bot.send(im) await bot.send(im)
@SV('用户添加').on_fullmatch(('刷新CK', '刷新ck')) @sv_user_add.on_fullmatch(('刷新CK', '刷新ck'))
async def send_refresh_ck_msg(bot: Bot, ev: Event): async def send_refresh_ck_msg(bot: Bot, ev: Event):
await bot.logger.info('开始执行[刷新CK]') await bot.logger.info('开始执行[刷新CK]')
im = await get_ck_by_stoken(ev.bot_id, ev.user_id) im = await get_ck_by_stoken(ev.bot_id, ev.user_id)
await bot.send(im) await bot.send(im)
@SV('扫码登陆').on_fullmatch(('扫码登陆', '扫码登录')) @sv_user_qrcode_login.on_fullmatch(('扫码登陆', '扫码登录'))
async def send_qrcode_login(bot: Bot, ev: Event): async def send_qrcode_login(bot: Bot, ev: Event):
await bot.logger.info('开始执行[扫码登陆]') await bot.logger.info('开始执行[扫码登陆]')
im = await qrcode_login(bot, ev, ev.user_id) im = await qrcode_login(bot, ev, ev.user_id)
@ -37,7 +44,7 @@ async def send_qrcode_login(bot: Bot, ev: Event):
await bot.send(im) await bot.send(im)
@SV('用户信息').on_fullmatch(('绑定信息')) @sv_user_info.on_fullmatch(('绑定信息'))
async def send_bind_card(bot: Bot, ev: Event): async def send_bind_card(bot: Bot, ev: Event):
await bot.logger.info('开始执行[查询用户绑定状态]') await bot.logger.info('开始执行[查询用户绑定状态]')
im = await get_user_card(ev.bot_id, ev.user_id) im = await get_user_card(ev.bot_id, ev.user_id)
@ -45,13 +52,13 @@ async def send_bind_card(bot: Bot, ev: Event):
await bot.send(im) await bot.send(im)
@SV('添加CK', area='DIRECT').on_prefix(('添加')) @sv_user_addck.on_prefix(('添加'))
async def send_add_ck_msg(bot: Bot, ev: Event): async def send_add_ck_msg(bot: Bot, ev: Event):
im = await deal_ck(ev.bot_id, ev.text, ev.user_id) im = await deal_ck(ev.bot_id, ev.text, ev.user_id)
await bot.send(im) await bot.send(im)
@SV('用户信息').on_prefix(('绑定uid', '切换uid', '删除uid', '解绑uid')) @sv_user_info.on_prefix(('绑定uid', '切换uid', '删除uid', '解绑uid'))
async def send_link_uid_msg(bot: Bot, ev: Event): async def send_link_uid_msg(bot: Bot, ev: Event):
await bot.logger.info('开始执行[绑定/解绑用户信息]') await bot.logger.info('开始执行[绑定/解绑用户信息]')
qid = ev.user_id qid = ev.user_id
@ -89,7 +96,7 @@ async def send_link_uid_msg(bot: Bot, ev: Event):
) )
@SV('帮助').on_fullmatch(('ck帮助', '绑定帮助')) @sv_user_help.on_fullmatch(('ck帮助', '绑定帮助'))
async def send_ck_help(bot: Bot, ev: Event): async def send_ck_help(bot: Bot, ev: Event):
msg_list = await get_ck_help() msg_list = await get_ck_help()
await bot.send(MessageSegment.node(msg_list)) await bot.send(MessageSegment.node(msg_list))

View File

@ -19,23 +19,25 @@ from .get_wiki_text import (
constellation_wiki, constellation_wiki,
) )
sv_wiki_text = SV('原神WIKI文字版')
@SV('原神WIKI文字版').on_prefix(('原魔介绍', '原魔资料'))
@sv_wiki_text.on_prefix(('原魔介绍', '原魔资料'))
async def send_enemies(bot: Bot, ev: Event): async def send_enemies(bot: Bot, ev: Event):
await bot.send(await enemies_wiki(ev.text)) await bot.send(await enemies_wiki(ev.text))
@SV('原神WIKI文字版').on_prefix(('食物介绍', '食物资料')) @sv_wiki_text.on_prefix(('食物介绍', '食物资料'))
async def send_food(bot: Bot, ev: Event): async def send_food(bot: Bot, ev: Event):
await bot.send(await foods_wiki(ev.text)) await bot.send(await foods_wiki(ev.text))
@SV('原神WIKI文字版').on_prefix(('圣遗物介绍', '圣遗物资料')) @sv_wiki_text.on_prefix(('圣遗物介绍', '圣遗物资料'))
async def send_artifacts(bot: Bot, ev: Event): async def send_artifacts(bot: Bot, ev: Event):
await bot.send(await artifacts_wiki(ev.text)) await bot.send(await artifacts_wiki(ev.text))
@SV('原神WIKI文字版').on_prefix(('武器介绍', '武器资料')) @sv_wiki_text.on_prefix(('武器介绍', '武器资料'))
async def send_weapon(bot: Bot, ev: Event): async def send_weapon(bot: Bot, ev: Event):
name = ''.join(re.findall('[\u4e00-\u9fa5]', ev.text)) name = ''.join(re.findall('[\u4e00-\u9fa5]', ev.text))
level = re.findall(r'\d+', ev.text) level = re.findall(r'\d+', ev.text)
@ -46,7 +48,7 @@ async def send_weapon(bot: Bot, ev: Event):
await bot.send(im) await bot.send(im)
@SV('原神WIKI文字版').on_prefix(('角色天赋')) @sv_wiki_text.on_prefix(('角色天赋'))
async def send_talents(bot: Bot, ev: Event): async def send_talents(bot: Bot, ev: Event):
name = ''.join(re.findall('[\u4e00-\u9fa5]', ev.text)) name = ''.join(re.findall('[\u4e00-\u9fa5]', ev.text))
num = re.findall(r'\d+', ev.text) num = re.findall(r'\d+', ev.text)
@ -59,7 +61,7 @@ async def send_talents(bot: Bot, ev: Event):
await bot.send(im) await bot.send(im)
@SV('原神WIKI文字版').on_prefix(('角色介绍', '角色资料')) @sv_wiki_text.on_prefix(('角色介绍', '角色资料'))
async def send_char(bot: Bot, ev: Event): async def send_char(bot: Bot, ev: Event):
name = ''.join(re.findall('[\u4e00-\u9fa5]', ev.text)) name = ''.join(re.findall('[\u4e00-\u9fa5]', ev.text))
level = re.findall(r'\d+', ev.text) level = re.findall(r'\d+', ev.text)
@ -70,19 +72,19 @@ async def send_char(bot: Bot, ev: Event):
await bot.send(im) await bot.send(im)
@SV('原神WIKI文字版').on_prefix(('角色材料')) @sv_wiki_text.on_prefix(('角色材料'))
async def send_char_cost(bot: Bot, ev: Event): async def send_char_cost(bot: Bot, ev: Event):
im = await char_costs_wiki(ev.text) im = await char_costs_wiki(ev.text)
await bot.send(im) await bot.send(im)
@SV('原神WIKI文字版').on_prefix(('武器材料')) @sv_wiki_text.on_prefix(('武器材料'))
async def send_weapon_cost(bot: Bot, ev: Event): async def send_weapon_cost(bot: Bot, ev: Event):
im = await weapon_costs_wiki(ev.text) im = await weapon_costs_wiki(ev.text)
await bot.send(im) await bot.send(im)
@SV('原神WIKI文字版').on_prefix(('角色命座')) @sv_wiki_text.on_prefix(('角色命座'))
async def send_polar(bot: Bot, ev: Event): async def send_polar(bot: Bot, ev: Event):
num = int(re.findall(r'\d+', ev.text)[0]) num = int(re.findall(r'\d+', ev.text)[0])
m = ''.join(re.findall('[\u4e00-\u9fa5]', ev.text)) m = ''.join(re.findall('[\u4e00-\u9fa5]', ev.text))

View File

@ -9,6 +9,8 @@ from gsuid_core.aps import scheduler
from ..utils.image.convert import convert_img from ..utils.image.convert import convert_img
from .draw_abyss_total import TOTAL_IMG, draw_xk_abyss_img from .draw_abyss_total import TOTAL_IMG, draw_xk_abyss_img
sv_get_abyss_database = SV('查询深渊数据库')
@scheduler.scheduled_job('interval', hours=3) @scheduler.scheduled_job('interval', hours=3)
async def scheduled_draw_abyss(): async def scheduled_draw_abyss():
@ -16,7 +18,7 @@ async def scheduled_draw_abyss():
await draw_xk_abyss_img() await draw_xk_abyss_img()
@SV('查询深渊数据库').on_fullmatch(('深渊概览', '深渊统计', '深渊使用率')) @sv_get_abyss_database.on_fullmatch(('深渊概览', '深渊统计', '深渊使用率'))
async def send_abyss_pic(bot: Bot, ev: Event): async def send_abyss_pic(bot: Bot, ev: Event):
img = await convert_img(TOTAL_IMG) img = await convert_img(TOTAL_IMG)
await bot.logger.info('获得gs帮助图片成功!') await bot.logger.info('获得gs帮助图片成功!')

12
poetry.lock generated
View File

@ -668,14 +668,14 @@ test = ["aiosqlite (>=0.15.0)", "jinja2 (>=2.11.2,<4.0.0)", "pytest (>=6.2.4)",
[[package]] [[package]]
name = "filelock" name = "filelock"
version = "3.10.2" version = "3.10.4"
description = "A platform independent file lock." description = "A platform independent file lock."
category = "dev" category = "dev"
optional = false optional = false
python-versions = ">=3.7" python-versions = ">=3.7"
files = [ files = [
{file = "filelock-3.10.2-py3-none-any.whl", hash = "sha256:eb8f0f2d37ed68223ea63e3bddf2fac99667e4362c88b3f762e434d160190d18"}, {file = "filelock-3.10.4-py3-none-any.whl", hash = "sha256:6d332dc5c896f18ba93a21d987155e97c434a96d3fe4042ca70d0b3b46e3b470"},
{file = "filelock-3.10.2.tar.gz", hash = "sha256:75997740323c5f12e18f10b494bc11c03e42843129f980f17c04352cc7b09d40"}, {file = "filelock-3.10.4.tar.gz", hash = "sha256:9fc1734dbddcdcd4aaa02c160dd94db5272b92dfa859b44ec8df28e160b751f0"},
] ]
[package.extras] [package.extras]
@ -2234,14 +2234,14 @@ typing-extensions = ">=3.7.4"
[[package]] [[package]]
name = "tzdata" name = "tzdata"
version = "2022.7" version = "2023.2"
description = "Provider of IANA time zone data" description = "Provider of IANA time zone data"
category = "main" category = "main"
optional = false optional = false
python-versions = ">=2" python-versions = ">=2"
files = [ files = [
{file = "tzdata-2022.7-py2.py3-none-any.whl", hash = "sha256:2b88858b0e3120792a3c0635c23daf36a7d7eeeca657c323da299d2094402a0d"}, {file = "tzdata-2023.2-py2.py3-none-any.whl", hash = "sha256:905ae9e6744dd9ef5ce94d2aaa2dd00282fee38b670b2133407f23c388f110a1"},
{file = "tzdata-2022.7.tar.gz", hash = "sha256:fe5f866eddd8b96e9fcba978f8e503c909b19ea7efda11e52e39494bad3a7bfa"}, {file = "tzdata-2023.2.tar.gz", hash = "sha256:c3b51b235b07f9f1889089c2264bcbeaaba260a63f89bea09e350ea4205eb95f"},
] ]
[[package]] [[package]]

View File

@ -58,7 +58,7 @@ sqlmodelx==0.0.4 ; python_full_version >= "3.8.1" and python_full_version < "4.0
starlette==0.26.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" starlette==0.26.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0"
tomlkit==0.11.6 ; python_full_version >= "3.8.1" and python_version < "4.0" tomlkit==0.11.6 ; python_full_version >= "3.8.1" and python_version < "4.0"
typing-extensions==4.5.0 ; python_full_version >= "3.8.1" and python_version < "4.0" typing-extensions==4.5.0 ; python_full_version >= "3.8.1" and python_version < "4.0"
tzdata==2022.7 ; python_full_version >= "3.8.1" and python_version < "4.0" tzdata==2023.2 ; python_full_version >= "3.8.1" and python_version < "4.0"
tzlocal==4.3 ; python_full_version >= "3.8.1" and python_version < "4.0" tzlocal==4.3 ; python_full_version >= "3.8.1" and python_version < "4.0"
win32-setctime==1.1.0 ; python_full_version >= "3.8.1" and python_version < "4.0" and sys_platform == "win32" win32-setctime==1.1.0 ; python_full_version >= "3.8.1" and python_version < "4.0" and sys_platform == "win32"
yarl==1.8.2 ; python_full_version >= "3.8.1" and python_version < "4.0" yarl==1.8.2 ; python_full_version >= "3.8.1" and python_version < "4.0"