mirror of
https://github.com/Genshin-bots/gsuid_core.git
synced 2025-05-08 21:15:46 +08:00
✨ config.json
新增白名单配置
This commit is contained in:
parent
fe98ec6b76
commit
08dbd01791
@ -48,7 +48,7 @@ class GsClient:
|
|||||||
user_type='direct',
|
user_type='direct',
|
||||||
user_pm=2,
|
user_pm=2,
|
||||||
group_id=None,
|
group_id=None,
|
||||||
user_id='51',
|
user_id='511',
|
||||||
content=content,
|
content=content,
|
||||||
)
|
)
|
||||||
msg_send = msgjson.encode(msg)
|
msg_send = msgjson.encode(msg)
|
||||||
|
@ -71,7 +71,15 @@ def main():
|
|||||||
if name in SL.lst:
|
if name in SL.lst:
|
||||||
sv = SL.lst[name]
|
sv = SL.lst[name]
|
||||||
data['pm'] = int(data['pm'])
|
data['pm'] = int(data['pm'])
|
||||||
|
data['black_list'] = data['black_list'].replace(';', ';')
|
||||||
|
data['white_list'] = data['white_list'].replace(';', ';')
|
||||||
|
|
||||||
data['black_list'] = data['black_list'].split(';')
|
data['black_list'] = data['black_list'].split(';')
|
||||||
|
data['white_list'] = data['white_list'].split(';')
|
||||||
|
if data['black_list'] == ['']:
|
||||||
|
data['black_list'] = []
|
||||||
|
if data['white_list'] == ['']:
|
||||||
|
data['white_list'] = []
|
||||||
sv.set(**data)
|
sv.set(**data)
|
||||||
|
|
||||||
@app.post('/genshinuid/setGsConfig')
|
@app.post('/genshinuid/setGsConfig')
|
||||||
|
@ -91,11 +91,21 @@ async def handle_event(ws: _Bot, msg: MessageReceive):
|
|||||||
and user_pm <= SL.lst[sv].pm
|
and user_pm <= SL.lst[sv].pm
|
||||||
and msg.group_id not in SL.lst[sv].black_list
|
and msg.group_id not in SL.lst[sv].black_list
|
||||||
and msg.user_id not in SL.lst[sv].black_list
|
and msg.user_id not in SL.lst[sv].black_list
|
||||||
and True
|
and (
|
||||||
if SL.lst[sv].area == 'ALL'
|
True
|
||||||
or (msg.group_id and SL.lst[sv].area == 'GROUP')
|
if SL.lst[sv].area == 'ALL'
|
||||||
or (not msg.group_id and SL.lst[sv].area == 'DIRECT')
|
or (msg.group_id and SL.lst[sv].area == 'GROUP')
|
||||||
else False
|
or (not msg.group_id and SL.lst[sv].area == 'DIRECT')
|
||||||
|
else False
|
||||||
|
)
|
||||||
|
and (
|
||||||
|
True
|
||||||
|
if (not SL.lst[sv].white_list or SL.lst[sv].white_list == [''])
|
||||||
|
else (
|
||||||
|
msg.user_id in SL.lst[sv].white_list
|
||||||
|
or msg.group_id in SL.lst[sv].white_list
|
||||||
|
)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
await asyncio.gather(*pending, return_exceptions=True)
|
await asyncio.gather(*pending, return_exceptions=True)
|
||||||
|
@ -49,6 +49,7 @@ class SV:
|
|||||||
enabled: bool = True,
|
enabled: bool = True,
|
||||||
area: Literal['GROUP', 'DIRECT', 'ALL'] = 'ALL',
|
area: Literal['GROUP', 'DIRECT', 'ALL'] = 'ALL',
|
||||||
black_list: List = [],
|
black_list: List = [],
|
||||||
|
white_list: List = [],
|
||||||
):
|
):
|
||||||
if not self.is_initialized:
|
if not self.is_initialized:
|
||||||
logger.info(f'【{name}】模块初始化中...')
|
logger.info(f'【{name}】模块初始化中...')
|
||||||
@ -65,6 +66,11 @@ class SV:
|
|||||||
self.pm = config_sv[name]['pm']
|
self.pm = config_sv[name]['pm']
|
||||||
self.black_list = config_sv[name]['black_list']
|
self.black_list = config_sv[name]['black_list']
|
||||||
self.area = config_sv[name]['area']
|
self.area = config_sv[name]['area']
|
||||||
|
if 'white_list' not in config_sv[name]:
|
||||||
|
self.white_list = white_list
|
||||||
|
self.set(white_list=white_list)
|
||||||
|
else:
|
||||||
|
self.white_list = config_sv[name]['white_list']
|
||||||
else:
|
else:
|
||||||
# sv优先级
|
# sv优先级
|
||||||
self.priority = priority
|
self.priority = priority
|
||||||
@ -76,6 +82,7 @@ class SV:
|
|||||||
self.pm = pm
|
self.pm = pm
|
||||||
# 作用范围
|
# 作用范围
|
||||||
self.area = area
|
self.area = area
|
||||||
|
self.white_list = white_list
|
||||||
# 写入
|
# 写入
|
||||||
self.set(
|
self.set(
|
||||||
priority=priority,
|
priority=priority,
|
||||||
@ -83,6 +90,7 @@ class SV:
|
|||||||
pm=pm,
|
pm=pm,
|
||||||
black_list=black_list,
|
black_list=black_list,
|
||||||
area=area,
|
area=area,
|
||||||
|
white_list=white_list,
|
||||||
)
|
)
|
||||||
|
|
||||||
if name == '测试开关':
|
if name == '测试开关':
|
||||||
|
@ -10,6 +10,7 @@ def get_sv_panel(
|
|||||||
enabled: bool = True,
|
enabled: bool = True,
|
||||||
area: Literal['GROUP', 'DIRECT', 'ALL'] = 'ALL',
|
area: Literal['GROUP', 'DIRECT', 'ALL'] = 'ALL',
|
||||||
black_list: List = [],
|
black_list: List = [],
|
||||||
|
white_list: List = [],
|
||||||
):
|
):
|
||||||
api = f'/genshinuid/setSV/{name}'
|
api = f'/genshinuid/setSV/{name}'
|
||||||
card = {
|
card = {
|
||||||
@ -230,6 +231,33 @@ def get_sv_panel(
|
|||||||
'id': 'u:a7b2f1bbc0a8',
|
'id': 'u:a7b2f1bbc0a8',
|
||||||
'label': '',
|
'label': '',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'type': 'flex',
|
||||||
|
'className': 'p-1',
|
||||||
|
'items': [
|
||||||
|
{
|
||||||
|
'type': 'container',
|
||||||
|
'size': 'xs',
|
||||||
|
'body': [
|
||||||
|
{
|
||||||
|
'type': 'input-text',
|
||||||
|
'label': '白名单(以;为分割)',
|
||||||
|
'name': 'white_list',
|
||||||
|
'id': 'u:ab168d425936',
|
||||||
|
'value': ';'.join(white_list),
|
||||||
|
}
|
||||||
|
],
|
||||||
|
'wrapperBody': False,
|
||||||
|
'style': {'flex': '0 0 auto', 'display': 'block'},
|
||||||
|
'id': 'u:48c938f71548',
|
||||||
|
}
|
||||||
|
],
|
||||||
|
'direction': 'column',
|
||||||
|
'justify': 'center',
|
||||||
|
'alignItems': 'stretch',
|
||||||
|
'id': 'u:a7b2f1bbc0a8',
|
||||||
|
'label': '',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
'actions': [
|
'actions': [
|
||||||
{
|
{
|
||||||
@ -282,6 +310,7 @@ def get_sv_page():
|
|||||||
sv.enabled,
|
sv.enabled,
|
||||||
sv.area, # type:ignore
|
sv.area, # type:ignore
|
||||||
sv.black_list,
|
sv.black_list,
|
||||||
|
sv.white_list,
|
||||||
)
|
)
|
||||||
page['body'].append(panel)
|
page['body'].append(panel)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user