mirror of
https://github.com/KimigaiiWuyi/GenshinUID.git
synced 2025-05-30 04:00:31 +08:00
128 lines
3.5 KiB
Python
128 lines
3.5 KiB
Python
from .draw_config_card import draw_config_img
|
|
from ..all_import import * # noqa: F403, F401
|
|
from ..utils.db_operation.db_operation import select_db
|
|
from .set_config import set_push_value, set_config_func
|
|
from ..utils.message.error_reply import * # noqa: F403,F401
|
|
|
|
|
|
@sv.on_fullmatch('gs配置')
|
|
async def send_config_card(bot: HoshinoBot, ev: CQEvent):
|
|
logger.info('开始执行[gs配置]')
|
|
im = await draw_config_img()
|
|
if isinstance(im, str):
|
|
await bot.send(ev, im)
|
|
elif isinstance(im, bytes):
|
|
im = await convert_img(im)
|
|
await bot.send(ev, im)
|
|
else:
|
|
await bot.send(ev, '发生了未知错误,请联系管理员检查后台输出!')
|
|
|
|
|
|
@sv.on_rex(
|
|
r'^(\[CQ:at,qq=[0-9]+\])?( )?'
|
|
r'(gs)(设置)([\u4e00-\u9fffa-zA-Z]*)([0-9]*)'
|
|
r'(\[CQ:at,qq=[0-9]+\])?( )?$'
|
|
)
|
|
async def send_config_msg(bot: HoshinoBot, ev: CQEvent):
|
|
args = ev['match'].groups()
|
|
logger.info('开始执行[设置阈值信息]')
|
|
logger.info('[设置阈值信息]参数: {}'.format(args))
|
|
|
|
at = re.search(r'\[CQ:at,qq=(\d*)]', str(ev.message))
|
|
|
|
if at:
|
|
qid = int(at.group(1))
|
|
else:
|
|
if ev.sender:
|
|
qid = int(ev.sender['user_id'])
|
|
else:
|
|
return
|
|
|
|
if qid in bot.config.SUPERUSERS:
|
|
is_admin = True
|
|
else:
|
|
is_admin = False
|
|
|
|
if at and is_admin:
|
|
qid = at
|
|
elif at and at != qid:
|
|
await bot.send(ev, '你没有权限操作别人的状态噢~', at_sender=True)
|
|
logger.info('[设置阈值信息]qid: {}'.format(qid))
|
|
|
|
try:
|
|
uid = await select_db(qid, mode='uid')
|
|
except TypeError:
|
|
await bot.send(ev, UID_HINT)
|
|
return
|
|
|
|
func = args[4].replace('阈值', '')
|
|
if args[5]:
|
|
try:
|
|
value = int(args[5])
|
|
except ValueError:
|
|
await bot.send(ev, '请输入数字哦~', at_sender=True)
|
|
return
|
|
else:
|
|
await bot.send(ev, '请输入正确的阈值数字!', at_sender=True)
|
|
return
|
|
logger.info('[设置阈值信息]func: {}, value: {}'.format(func, value))
|
|
im = await set_push_value(func, str(uid), value)
|
|
await bot.send(ev, im, at_sender=True)
|
|
|
|
|
|
# 开启 自动签到 和 推送树脂提醒 功能
|
|
@sv.on_rex(
|
|
r'^(\[CQ:at,qq=[0-9]+\])?( )?'
|
|
r'(gs)(开启|关闭)(.*)'
|
|
r'(\[CQ:at,qq=[0-9]+\])?( )?$'
|
|
)
|
|
async def open_switch_func(bot: HoshinoBot, ev: CQEvent):
|
|
args = ev['match'].groups()
|
|
at = re.search(r'\[CQ:at,qq=(\d*)]', str(ev.message))
|
|
|
|
if at:
|
|
qid = int(at.group(1))
|
|
else:
|
|
if ev.sender:
|
|
qid = int(ev.sender['user_id'])
|
|
else:
|
|
return
|
|
|
|
config_name = args[4]
|
|
|
|
logger.info(f'[{qid}]尝试[{args[3]}]了[{config_name}]功能')
|
|
|
|
if args[3] == '开启':
|
|
query = 'OPEN'
|
|
gid = str(ev.group_id) if ev.group_id else 'on'
|
|
else:
|
|
query = 'CLOSED'
|
|
gid = 'off'
|
|
|
|
if qid in bot.config.SUPERUSERS:
|
|
is_admin = True
|
|
else:
|
|
is_admin = False
|
|
|
|
if at and is_admin:
|
|
qid = at
|
|
elif at and at != qid:
|
|
bot.send(ev, '你没有权限操作别人的状态噢~', at_sender=True)
|
|
return
|
|
|
|
try:
|
|
uid = await select_db(qid, mode='uid')
|
|
except TypeError:
|
|
await bot.send(ev, UID_HINT)
|
|
return
|
|
|
|
im = await set_config_func(
|
|
config_name=config_name,
|
|
uid=uid, # type: ignore
|
|
qid=qid, # type: ignore
|
|
option=gid,
|
|
query=query,
|
|
is_admin=is_admin,
|
|
)
|
|
await bot.send(ev, im, at_sender=True)
|