nonebot-plugin-l4d2-server 0.6.3.post1__py3-none-any.whl → 0.6.4.post1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nonebot_plugin_l4d2_server/__init__.py +4 -2
- nonebot_plugin_l4d2_server/data/L4D2/image/template/group_ip.html +7 -7
- nonebot_plugin_l4d2_server/data/L4D2/image/template/ip.html +33 -27
- nonebot_plugin_l4d2_server/l4d2_file/__init__.py +2 -0
- nonebot_plugin_l4d2_server/l4d2_image/__init__.py +16 -1
- nonebot_plugin_l4d2_server/l4d2_queries/__init__.py +40 -21
- nonebot_plugin_l4d2_server/l4d2_queries/send_msg.py +71 -69
- nonebot_plugin_l4d2_server/l4d2_utils/classcal.py +4 -0
- nonebot_plugin_l4d2_server/l4d2_utils/config.py +1 -0
- {nonebot_plugin_l4d2_server-0.6.3.post1.dist-info → nonebot_plugin_l4d2_server-0.6.4.post1.dist-info}/METADATA +1 -1
- {nonebot_plugin_l4d2_server-0.6.3.post1.dist-info → nonebot_plugin_l4d2_server-0.6.4.post1.dist-info}/RECORD +13 -13
- {nonebot_plugin_l4d2_server-0.6.3.post1.dist-info → nonebot_plugin_l4d2_server-0.6.4.post1.dist-info}/WHEEL +0 -0
- {nonebot_plugin_l4d2_server-0.6.3.post1.dist-info → nonebot_plugin_l4d2_server-0.6.4.post1.dist-info}/licenses/LICENSE +0 -0
@@ -41,7 +41,7 @@ from .l4d2_web import web, webUI # noqa: F401
|
|
41
41
|
|
42
42
|
driver = get_driver()
|
43
43
|
|
44
|
-
__version__ = "0.6.
|
44
|
+
__version__ = "0.6.4"
|
45
45
|
__plugin_meta__ = PluginMetadata(
|
46
46
|
name="求生之路小助手",
|
47
47
|
description="可用于管理求生之路查服和本地管理",
|
@@ -74,7 +74,7 @@ __plugin_meta__ = PluginMetadata(
|
|
74
74
|
@help_.handle()
|
75
75
|
async def _(matcher: Matcher):
|
76
76
|
msg = """=====求生机器人帮助=====
|
77
|
-
1、电信服战绩查询【求生anne[id/steamid/@]】
|
77
|
+
1、电信服战绩查询【求生anne | Ranne[id/steamid/@]】
|
78
78
|
2、电信服绑定【求生绑定[id/steamid]】",
|
79
79
|
3、电信服状态查询【云xx】
|
80
80
|
4、创意工坊下载【创意工坊下载[物品id/链接]】
|
@@ -87,6 +87,8 @@ async def _(matcher: Matcher):
|
|
87
87
|
|
88
88
|
@search_api.got("is_sure", prompt='如果需要上传,请发送 "yes"')
|
89
89
|
async def _(matcher: Matcher, bot: Bot, event: GroupMessageEvent, state: T_State):
|
90
|
+
if not l4_config.l4_group_upload:
|
91
|
+
return
|
90
92
|
is_sure = str(state["is_sure"])
|
91
93
|
if is_sure == "yes":
|
92
94
|
data_dict: dict = state["maps"][0]
|
@@ -222,7 +222,7 @@
|
|
222
222
|
<div class="plugin">
|
223
223
|
<div class="plugin_meta">
|
224
224
|
<div class="plugin_meta_line1">
|
225
|
-
<div class="plugin_name">{{ plugin.
|
225
|
+
<div class="plugin_name">{{ plugin.server_id }}:{{ plugin.server_tag }}</div>
|
226
226
|
<div class="plugin_status">
|
227
227
|
<label class="switch">
|
228
228
|
<input class="checkbox" type="checkbox" {% if plugin.enabled %} checked {% endif %} />
|
@@ -233,18 +233,18 @@
|
|
233
233
|
</div>
|
234
234
|
</div>
|
235
235
|
<div class="plugin_meta_line2">
|
236
|
-
<font color="blue"
|
237
|
-
|
238
|
-
<font color="green"
|
239
|
-
|
236
|
+
<font color="blue">服务器在线:{{ plugin.server_number }} / {{ plugin.server_all_number }}</font><br>
|
237
|
+
<font color="blue"></font><br>
|
238
|
+
<font color="green">服务器玩家{{ plugin.server_people }} / {{ plugin.server_all_people }}</font><br>
|
239
|
+
<font color="green"></font><br>
|
240
240
|
</div>
|
241
|
-
<div class="plugin_meta_line3">
|
241
|
+
<!-- <div class="plugin_meta_line3">
|
242
242
|
<svg width="13px" height="13px">
|
243
243
|
<image xlink:href="{{ plugin.system }}" width="13px" height="13px" />
|
244
244
|
</svg>
|
245
245
|
<div class="package_name"> {{ plugin.max_players }} </div>
|
246
246
|
<div class="package_name"> {{ plugin.tick }} </div>
|
247
|
-
</div>
|
247
|
+
</div> -->
|
248
248
|
</div>
|
249
249
|
</div>
|
250
250
|
{% endfor %}
|
@@ -1,49 +1,55 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html class="pc">
|
3
|
+
|
3
4
|
<head>
|
4
|
-
|
5
|
+
<link rel="stylesheet" type="text/css" href="vue.css">
|
5
6
|
<title>Server Information</title>
|
6
7
|
<style>
|
7
8
|
table {
|
8
9
|
border-collapse: collapse;
|
9
10
|
width: 100%;
|
10
11
|
}
|
11
|
-
|
12
|
+
|
13
|
+
th,
|
14
|
+
td {
|
12
15
|
border: 1px solid #ddd;
|
13
16
|
padding: 8px;
|
14
17
|
text-align: left;
|
15
18
|
}
|
19
|
+
|
16
20
|
th {
|
17
21
|
background-color: #f2f2f2;
|
18
22
|
}
|
19
23
|
</style>
|
20
24
|
</head>
|
25
|
+
|
21
26
|
<body style="background-image: url('back2.jpg'); background-size: 1200px 1800px;">
|
22
|
-
<div class="myinfo">
|
23
|
-
<table>
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
{% if j < data|length %}
|
28
|
-
<
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
<font color="yellow">{{ data[j].max_players }}{{data[j].ping}}</font>
|
27
|
+
<div class="myinfo">
|
28
|
+
<table>
|
29
|
+
{% for i in range(0, data|length, 3) %}
|
30
|
+
<tr>
|
31
|
+
{% for j in range(i, i + 3) %}
|
32
|
+
{% if j < data|length %} <td>
|
33
|
+
<font color="red">{{ data[j].number }}</font><br>
|
34
|
+
<font color="yellow">{{ data[j].name }}</font><br>
|
35
|
+
<font color="gray">{{ data[j].ip }}</font><br>
|
36
|
+
<font color="blue">{{ data[j].map_ }}</font><br>
|
37
|
+
{% for Player in data[j].Players %}
|
38
|
+
<font color="green">{{ Player }}</font><br>
|
39
|
+
{% endfor %}
|
40
|
+
<font color="yellow">{{ data[j].max_players }}{{data[j].ping}}</font>
|
37
41
|
</td>
|
38
|
-
|
42
|
+
{% endif %}
|
43
|
+
{% endfor %}
|
44
|
+
</tr>
|
39
45
|
{% endfor %}
|
40
|
-
</
|
41
|
-
|
42
|
-
|
43
|
-
<
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
</
|
48
|
-
|
46
|
+
</table>
|
47
|
+
<h5>
|
48
|
+
<center>©爱丽数码</center></br>
|
49
|
+
<center>
|
50
|
+
github.com/Agnes4m/nonebot_plugin_l4d2_server
|
51
|
+
</center>
|
52
|
+
</h5>
|
53
|
+
</div>
|
54
|
+
|
49
55
|
</html>
|
@@ -4,7 +4,7 @@ import jinja2
|
|
4
4
|
from nonebot.log import logger
|
5
5
|
from nonebot_plugin_htmlrender import html_to_pic
|
6
6
|
|
7
|
-
from ..l4d2_utils.classcal import PlayerInfo, ServerStatus
|
7
|
+
from ..l4d2_utils.classcal import PlayerInfo, ServerGroup, ServerStatus
|
8
8
|
|
9
9
|
# from .htmlimg import dict_to_dict_img
|
10
10
|
# from ..l4d2_anne.anne_telecom import ANNE_API
|
@@ -107,3 +107,18 @@ async def get_help_img(plugins: List[ServerStatus]) -> Optional[bytes]:
|
|
107
107
|
except Exception as e:
|
108
108
|
logger.warning(f"Error in get_help_img: {e}")
|
109
109
|
return None
|
110
|
+
|
111
|
+
|
112
|
+
async def server_group_ip_pic(msg_list: List[ServerGroup]):
|
113
|
+
"""
|
114
|
+
输入一个群组字典列表,输出图片
|
115
|
+
msg_dict:folder/name/map_/players/max_players/Players/[Name]
|
116
|
+
"""
|
117
|
+
template = env.get_template("group_ip.html")
|
118
|
+
html = await template.render_async(plugins=msg_list)
|
119
|
+
return await html_to_pic(
|
120
|
+
html=html,
|
121
|
+
wait=0,
|
122
|
+
viewport={"width": 1100, "height": 800},
|
123
|
+
template_path=f"file://{template_path.absolute()}",
|
124
|
+
)
|
@@ -11,6 +11,7 @@ from nonebot.params import ArgPlainText, CommandArg, CommandStart, Keyword, RawC
|
|
11
11
|
from nonebot_plugin_saa import Image, MessageFactory, Text
|
12
12
|
|
13
13
|
from ..l4d2_anne.server import updata_anne_server
|
14
|
+
from ..l4d2_image import server_group_ip_pic
|
14
15
|
from ..l4d2_queries.qqgroup import add_ip, del_ip, get_number_url, show_ip
|
15
16
|
from ..l4d2_queries.utils import queries_server
|
16
17
|
from ..l4d2_server.rcon import command_server
|
@@ -20,7 +21,7 @@ from ..l4d2_utils.utils import split_maohao, str_to_picstr
|
|
20
21
|
from .himi import get_himi_ip
|
21
22
|
from .local_ip import ALL_HOST
|
22
23
|
from .qqgroup import get_tan_jian
|
23
|
-
from .send_msg import get_ip_to_mes
|
24
|
+
from .send_msg import get_group_ip_to_msg, get_ip_to_mes
|
24
25
|
from .utils import server_key
|
25
26
|
|
26
27
|
tan_jian = on_command("tj", aliases={"探监"}, priority=20, block=True)
|
@@ -134,32 +135,50 @@ async def get_read_ip(ip_anne_list: List[Tuple[str, str, str]]):
|
|
134
135
|
command: str = RawCommand(),
|
135
136
|
args: Message = CommandArg(),
|
136
137
|
):
|
138
|
+
"""例:
|
139
|
+
指令: /橘5
|
140
|
+
start: /(command开头指令)
|
141
|
+
command: /橘(响应的全部指令)
|
142
|
+
args: 5(响应的指令后的数字)
|
143
|
+
"""
|
144
|
+
print(start, command, args)
|
137
145
|
if start:
|
138
146
|
command = command.replace(start, "")
|
139
147
|
if command == "anne":
|
140
148
|
command = "云"
|
141
149
|
msg: str = args.extract_plain_text()
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
await MessageFactory([Image(push_msg[0]), Text(push_msg[-1])]).finish()
|
153
|
-
return
|
154
|
-
if msg and isinstance(push_msg, str):
|
155
|
-
send_msg = push_msg
|
150
|
+
if "组" in msg:
|
151
|
+
logger.info(f"关键词:{command}")
|
152
|
+
# 以群组模式输出
|
153
|
+
push_msg = await get_group_ip_to_msg(command)
|
154
|
+
if push_msg is None or not push_msg:
|
155
|
+
await matcher.finish("当前对象里并没有组")
|
156
|
+
return
|
157
|
+
print(push_msg)
|
158
|
+
msg_img = await server_group_ip_pic(push_msg)
|
159
|
+
await MessageFactory([Image(msg_img)]).send()
|
156
160
|
else:
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
161
|
+
push_msg = await get_ip_to_mes(msg, command)
|
162
|
+
if push_msg is None:
|
163
|
+
return
|
164
|
+
|
165
|
+
if isinstance(push_msg, bytes):
|
166
|
+
logger.info("直接发送图片")
|
167
|
+
await MessageFactory([Image(push_msg)]).finish()
|
168
|
+
return
|
169
|
+
if msg and isinstance(push_msg, list):
|
170
|
+
logger.info("更加构造函数")
|
171
|
+
await MessageFactory([Image(push_msg[0]), Text(push_msg[-1])]).finish()
|
172
|
+
return
|
173
|
+
if msg and isinstance(push_msg, str):
|
174
|
+
send_msg = push_msg
|
175
|
+
else:
|
176
|
+
logger.info("出错了")
|
177
|
+
return
|
178
|
+
logger.info(type(send_msg))
|
179
|
+
if not send_msg:
|
180
|
+
logger.warning("没有")
|
181
|
+
await matcher.finish(send_msg)
|
163
182
|
|
164
183
|
|
165
184
|
# tests = on_command("测试1")
|
@@ -1,21 +1,15 @@
|
|
1
1
|
import asyncio
|
2
|
-
from typing import Dict, List, Tuple
|
2
|
+
from typing import Dict, List, Optional, Tuple
|
3
3
|
|
4
|
-
from nonebot import on_command
|
5
|
-
from nonebot.adapters import Message
|
6
4
|
from nonebot.log import logger
|
7
|
-
from nonebot.matcher import Matcher
|
8
|
-
from nonebot.params import CommandArg, CommandStart, RawCommand
|
9
|
-
from nonebot_plugin_saa import Image, MessageFactory, Text
|
10
5
|
|
11
6
|
from ..l4d2_queries.local_ip import ALL_HOST
|
12
7
|
from ..l4d2_queries.qqgroup import qq_ip_queries_pic
|
13
8
|
from ..l4d2_queries.utils import get_anne_server_ip, json_server_to_tag_dict
|
14
9
|
from ..l4d2_utils.classcal import ServerGroup, ServerStatus
|
15
|
-
from ..l4d2_utils.utils import split_maohao
|
10
|
+
from ..l4d2_utils.utils import split_maohao
|
16
11
|
from .local_ip import Group_All_HOST
|
17
12
|
from .qqgroup import qq_ip_querie
|
18
|
-
from .utils import group_key
|
19
13
|
|
20
14
|
|
21
15
|
async def get_ip_to_mes(msg: str, command: str = ""):
|
@@ -50,55 +44,67 @@ async def get_ip_to_mes(msg: str, command: str = ""):
|
|
50
44
|
logger.info(ip)
|
51
45
|
|
52
46
|
try:
|
53
|
-
msg_send = await get_anne_server_ip(ip)
|
54
|
-
if msg_send:
|
47
|
+
msg_send: Optional[str] = await get_anne_server_ip(ip)
|
48
|
+
if msg_send is not None:
|
55
49
|
return msg_send
|
56
50
|
|
57
51
|
except (OSError, asyncio.exceptions.TimeoutError):
|
58
52
|
return "服务器无响应"
|
59
53
|
|
60
54
|
|
61
|
-
async def get_read_group_ip():
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
55
|
+
# async def get_read_group_ip():
|
56
|
+
# """输出群组服务器"""
|
57
|
+
# get_grou_ip = on_command("anne", aliases=group_key(), priority=80, block=True)
|
58
|
+
|
59
|
+
# @get_grou_ip.handle()
|
60
|
+
# async def _(
|
61
|
+
# matcher: Matcher,
|
62
|
+
# start: str = CommandStart(),
|
63
|
+
# command: str = RawCommand(),
|
64
|
+
# args: Message = CommandArg(),
|
65
|
+
# ):
|
66
|
+
# if start:
|
67
|
+
# command = command.replace(start, "")
|
68
|
+
# msg: str = args.extract_plain_text()
|
69
|
+
# push_msg = await get_group_ip_to_msg(msg, command)
|
70
|
+
# msg_img = await server_group_ip_pic(push_msg)
|
71
|
+
# if isinstance(push_msg, bytes):
|
72
|
+
# await MessageFactory([Image(push_msg)]).finish()
|
73
|
+
# elif msg and type(push_msg) == list:
|
74
|
+
# await MessageFactory([Image(push_msg[0]), Text(push_msg[-1])]).finish()
|
75
|
+
# elif msg and isinstance(push_msg, str):
|
76
|
+
# await str_to_picstr(push_msg, matcher)
|
77
|
+
# await matcher.finish()
|
78
|
+
|
79
|
+
|
80
|
+
async def get_group_ip_to_msg(command: str):
|
86
81
|
"""输出群组ip的dict信息"""
|
87
|
-
if
|
82
|
+
if command in Group_All_HOST:
|
88
83
|
group_tag_list: List[str] = Group_All_HOST[command]
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
84
|
+
elif command in ALL_HOST:
|
85
|
+
group_tag_list = [command]
|
86
|
+
else:
|
87
|
+
return None
|
88
|
+
logger.info(f"组内关键词{group_tag_list}")
|
89
|
+
group_ip_dict: Dict[str, List[Dict[str, str]]] = {}
|
90
|
+
tag = len(group_tag_list) == 0
|
91
|
+
return_list: List[ServerGroup] = []
|
92
|
+
id_number = 0
|
93
|
+
for tag, one_group in ALL_HOST.items():
|
94
|
+
id_number += 1
|
95
|
+
if tag in group_tag_list and tag:
|
96
|
+
group_ip_dict.update({tag: one_group})
|
97
|
+
ip_tuple_list: List[Tuple[str, str, int]] = []
|
98
|
+
for one_server in one_group:
|
99
|
+
number = one_server["id"]
|
100
|
+
host, port = split_maohao(one_server["ip"])
|
101
|
+
ip_tuple_list.append((number, host, int(port)))
|
102
|
+
msg_group_server = await qq_ip_querie(ip_tuple_list)
|
103
|
+
return_list.append(
|
104
|
+
await check_group_msg(msg_group_server, id_number, command),
|
105
|
+
)
|
106
|
+
|
107
|
+
return return_list
|
102
108
|
# 还没写完
|
103
109
|
# host, port = split_maohao(one_ip["ip"])
|
104
110
|
# msg_tuple = (one_ip["id"], host, port)
|
@@ -106,23 +112,19 @@ async def get_group_ip_to_msg(command: str, text: str = ""):
|
|
106
112
|
# img = await qq_ip_queries_pic(ip_list, igr)
|
107
113
|
|
108
114
|
|
109
|
-
async def check_group_msg(
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
server_info.server_all_people += one_server.max_players
|
126
|
-
send_msg[tag] = server_info
|
127
|
-
return send_msg
|
128
|
-
return None
|
115
|
+
async def check_group_msg(msg: Dict[str, List[ServerStatus]], number: int, command: str):
|
116
|
+
server_info = ServerGroup()
|
117
|
+
server_info.server_id = number
|
118
|
+
|
119
|
+
for server_group in msg["msg_list"]:
|
120
|
+
# 服务器,服务器玩家数量
|
121
|
+
# 当前/总数
|
122
|
+
server_info.server_tag = command
|
123
|
+
if server_group.name == "null":
|
124
|
+
server_info.server_all_number += 1
|
125
|
+
continue
|
126
|
+
server_info.server_all_number += 1
|
127
|
+
server_info.server_number += 1
|
128
|
+
server_info.server_people += server_group.players
|
129
|
+
server_info.server_all_people += server_group.max_players
|
130
|
+
return server_info
|
@@ -93,6 +93,7 @@ class L4d2Config(BaseModel):
|
|
93
93
|
l4_push_interval: int = Field(3, alias="定时任务间隔")
|
94
94
|
l4_push_times: int = Field(10, alias="定时任务次数")
|
95
95
|
l4_connect: bool = Field(True, alias="是否在查服命令后加入connect ip")
|
96
|
+
l4_group_upload: bool = Field(False, alias="是否在群里传地图的时候,提示上传服务器")
|
96
97
|
group_config: Dict[int, L4d2GroupConfig] = Field({}, alias="分群配置")
|
97
98
|
|
98
99
|
def update(self, **kwargs):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: nonebot-plugin-l4d2-server
|
3
|
-
Version: 0.6.
|
3
|
+
Version: 0.6.4.post1
|
4
4
|
Summary: L4D2 server related operations plugin for NoneBot2
|
5
5
|
Keywords: steam game l4d2 nonebot2 plugin
|
6
6
|
Home-page: https://github.com/Agnes4m/nonebot_plugin_l4d2_server
|
@@ -1,17 +1,17 @@
|
|
1
|
-
nonebot_plugin_l4d2_server-0.6.
|
2
|
-
nonebot_plugin_l4d2_server-0.6.
|
3
|
-
nonebot_plugin_l4d2_server-0.6.
|
4
|
-
nonebot_plugin_l4d2_server/__init__.py,sha256=
|
1
|
+
nonebot_plugin_l4d2_server-0.6.4.post1.dist-info/METADATA,sha256=GJpdprlMBkilf8go0V294HqsAb91UzuDKv2KHadQAF0,7946
|
2
|
+
nonebot_plugin_l4d2_server-0.6.4.post1.dist-info/WHEEL,sha256=1D4d-_ODszlK6-qFybc5BLF-ZhZvee-uKVh2hLa3IIc,90
|
3
|
+
nonebot_plugin_l4d2_server-0.6.4.post1.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
4
|
+
nonebot_plugin_l4d2_server/__init__.py,sha256=mMa34sf_bsxPGHfWCloeNYj1S-fkmb57HJNKWVt769k,5012
|
5
5
|
nonebot_plugin_l4d2_server/data/L4D2/image/head/head.png,sha256=Z72PEvp7xF1DZcLDeuWlg2_g6JAfHxtisptWn6BYGN8,158357
|
6
6
|
nonebot_plugin_l4d2_server/data/L4D2/image/header/logo.png,sha256=1KhQNsx7zsCKGHmyIZ65dP9npkKzo7Im-Aafyi5_lhc,631630
|
7
7
|
nonebot_plugin_l4d2_server/data/L4D2/image/header/player1.jpg,sha256=2A_llIi9YVhJs9JOMuF36by7Ewc7P7qOgQS8t5jemNw,405369
|
8
8
|
nonebot_plugin_l4d2_server/data/L4D2/image/template/anne.html,sha256=8JOUXoWdulhoP2Axy_omuSDafbduKDZ9Y8Rz2VZWTso,1590
|
9
9
|
nonebot_plugin_l4d2_server/data/L4D2/image/template/back.png,sha256=tFXhpNiFnbTZiEF9Z2O2EjxCxcrhsFJH4po8Cb7SnIg,242997
|
10
10
|
nonebot_plugin_l4d2_server/data/L4D2/image/template/fingerprint.svg,sha256=qtbdXb-5o62YQU2-LR4S9b7-ddKC1UOpJG4w8xDrytw,2135
|
11
|
-
nonebot_plugin_l4d2_server/data/L4D2/image/template/group_ip.html,sha256=
|
11
|
+
nonebot_plugin_l4d2_server/data/L4D2/image/template/group_ip.html,sha256=0RCWB0q8Wx0NcKdVmGeVr2odaNzODNVCJK0jiQ826U8,7222
|
12
12
|
nonebot_plugin_l4d2_server/data/L4D2/image/template/help.html,sha256=X_R6o5bkW3FFN4BvG3bL8px1slPBY8xhtZM9aSBsAns,5832
|
13
13
|
nonebot_plugin_l4d2_server/data/L4D2/image/template/help_dack.html,sha256=fpguTXl--5ivFsJIMgaTjt8BS2BK-0fW2BYC66aEuuA,6170
|
14
|
-
nonebot_plugin_l4d2_server/data/L4D2/image/template/ip.html,sha256=
|
14
|
+
nonebot_plugin_l4d2_server/data/L4D2/image/template/ip.html,sha256=hvKDc7ASbuaGxtx5Doavg5qa82K1vGq4bSapjrwrTy8,1611
|
15
15
|
nonebot_plugin_l4d2_server/data/L4D2/image/template/l.svg,sha256=I9iOeq-XqnWDECC7GqApV6Of3Tm26xmmYdchvXw2tAE,5506
|
16
16
|
nonebot_plugin_l4d2_server/data/L4D2/image/template/m.svg,sha256=rnZwx2X1dXPiKFQvccBZqspDZzLUin5ylesv-rRy1lo,2408
|
17
17
|
nonebot_plugin_l4d2_server/data/L4D2/image/template/vue.css,sha256=2sGjCFrR-3tFMB_x7l4K6k40tZ5JVzhWqD759cagYBA,7874
|
@@ -28,12 +28,12 @@ nonebot_plugin_l4d2_server/l4d2_data/config.py,sha256=j_Iq2fmJkCX9G-oscuibhCvozF
|
|
28
28
|
nonebot_plugin_l4d2_server/l4d2_data/database.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
29
29
|
nonebot_plugin_l4d2_server/l4d2_data/players.py,sha256=0c4OAEKC38ZBTcbvI-lBl2D0wRUqwm0Spccmi4KlhqQ,3368
|
30
30
|
nonebot_plugin_l4d2_server/l4d2_data/serverip.py,sha256=YnzPwjQaESgOQq8m_aJxZlhwTqzVbwPHD6-EWoIXq60,1293
|
31
|
-
nonebot_plugin_l4d2_server/l4d2_file/__init__.py,sha256=
|
31
|
+
nonebot_plugin_l4d2_server/l4d2_file/__init__.py,sha256=4gRhIQ6-Fw0jyobgz4GJ0C-AQGmAe63YXYdvP2RITCA,6963
|
32
32
|
nonebot_plugin_l4d2_server/l4d2_file/ayromote.py,sha256=CND4LSKEYO86bSrd6_TGe9A5RvVJpy2_--tX9mROHIM,1868
|
33
33
|
nonebot_plugin_l4d2_server/l4d2_file/input_json.py,sha256=_S7NIUZhZlE63ueETnPyVcZMnBAAwIVZdmW3VBukccY,2347
|
34
34
|
nonebot_plugin_l4d2_server/l4d2_file/remote.py,sha256=vzW1RhqAUi7lMLjeoYOUvy_70NVHgGQS07oPkeWNxgk,3074
|
35
35
|
nonebot_plugin_l4d2_server/l4d2_file/utils.py,sha256=wYNYLqHDS6h5uEqdqpOlNXu-JKjCoEDAK2wNz5irdfg,3056
|
36
|
-
nonebot_plugin_l4d2_server/l4d2_image/__init__.py,sha256=
|
36
|
+
nonebot_plugin_l4d2_server/l4d2_image/__init__.py,sha256=ib2nzMdXzVJ9N3fDuwGdslS2jSwDS1XWU8biJHRMJ1g,4484
|
37
37
|
nonebot_plugin_l4d2_server/l4d2_image/download.py,sha256=_ndH2KlehQ5L84hX0b3Lqz0GYQhAWXGy6XJZZODcGqM,4248
|
38
38
|
nonebot_plugin_l4d2_server/l4d2_image/htmlimg.py,sha256=7nVaLI89e8UXehCfBrxumYMj2wIR1V8UWRDueQW-lhQ,664
|
39
39
|
nonebot_plugin_l4d2_server/l4d2_image/images.py,sha256=jZwwerx2oPDZ40VTYhWgMz5nUoRibOkyZFzSL9b4giE,2801
|
@@ -42,11 +42,11 @@ nonebot_plugin_l4d2_server/l4d2_image/send_image_tool.py,sha256=0qcce0wOI7liuwjs
|
|
42
42
|
nonebot_plugin_l4d2_server/l4d2_image/steam.py,sha256=4c428t9bkRxig4Hmj4XllaoKCSsY6fpIYIkq1DhHUiE,2203
|
43
43
|
nonebot_plugin_l4d2_server/l4d2_image/vtfs.py,sha256=AltoUKpMzWQHY_PSqmlSHQyomk2dZHHML4YN6rnP1s0,1415
|
44
44
|
nonebot_plugin_l4d2_server/l4d2_push/__init__.py,sha256=-_iAQPvxYyO9yjv9yr1TM_NEjOPHnXx7CDZfD2CNxdw,7537
|
45
|
-
nonebot_plugin_l4d2_server/l4d2_queries/__init__.py,sha256=
|
45
|
+
nonebot_plugin_l4d2_server/l4d2_queries/__init__.py,sha256=g_8l3_3THyFPlk4t8HSzMc3CJlwEv6J2M-h2qN88a2w,11620
|
46
46
|
nonebot_plugin_l4d2_server/l4d2_queries/himi.py,sha256=iu34wD6P7yWXK_WtErpqmSlNLUjq2pwqO_wf_Rd3X8c,3547
|
47
47
|
nonebot_plugin_l4d2_server/l4d2_queries/local_ip.py,sha256=-wPvCx8mzl7KVh_OlC3j_EjYMf5IEIeLYkZNnknxITY,1281
|
48
48
|
nonebot_plugin_l4d2_server/l4d2_queries/qqgroup.py,sha256=Fcfdprwg2rKXKC5tfGiwkReAXnqdD7WRizhhDmV3Grg,12495
|
49
|
-
nonebot_plugin_l4d2_server/l4d2_queries/send_msg.py,sha256=
|
49
|
+
nonebot_plugin_l4d2_server/l4d2_queries/send_msg.py,sha256=qsOPh8z-A2fDUVHx8vSx0rr2gVC4qyhwrSCoVduig_s,4622
|
50
50
|
nonebot_plugin_l4d2_server/l4d2_queries/utils.py,sha256=CjGpDvmo44q5fOVMB6t0yxv1zWwBO8VXrW_TUd2REg0,6208
|
51
51
|
nonebot_plugin_l4d2_server/l4d2_server/__init__.py,sha256=azvqgmH-SY2_AESIl8Uta9AzFA4ijefR_0NlLH8MBQo,4353
|
52
52
|
nonebot_plugin_l4d2_server/l4d2_server/index.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -56,9 +56,9 @@ nonebot_plugin_l4d2_server/l4d2_update/__init__.py,sha256=M8KTxo250GQ-3CZw3fSmgf
|
|
56
56
|
nonebot_plugin_l4d2_server/l4d2_update/draw_update_log.py,sha256=-Tkn2GBIrDskHbwgAtrh05HflqX32z79vGjIBjR1GQo,1186
|
57
57
|
nonebot_plugin_l4d2_server/l4d2_update/restart.py,sha256=R4tSNgvbqtKCRTVdp41td2mkBNV96I35PfSetm9o5YU,2181
|
58
58
|
nonebot_plugin_l4d2_server/l4d2_update/update.py,sha256=h_YPzWWO6LY5v-m0Yg6fVUhHCvv4qOsdyk6vmotZETA,1465
|
59
|
-
nonebot_plugin_l4d2_server/l4d2_utils/classcal.py,sha256=
|
59
|
+
nonebot_plugin_l4d2_server/l4d2_utils/classcal.py,sha256=WqI1pHnTdrgjQ_9YULhaFhERkUYZ-WhtvKBHHaT6_Sg,1226
|
60
60
|
nonebot_plugin_l4d2_server/l4d2_utils/command.py,sha256=cCflT3o5hvE4k56Bbg2TtY5avyEM-Z8nY9GNU3KtoXo,629
|
61
|
-
nonebot_plugin_l4d2_server/l4d2_utils/config.py,sha256=
|
61
|
+
nonebot_plugin_l4d2_server/l4d2_utils/config.py,sha256=lhqJy93hzI_jpuJ0eGgZUhXbplM_YfJ2NtTx_s_-KmI,6114
|
62
62
|
nonebot_plugin_l4d2_server/l4d2_utils/message.py,sha256=VzLtK9iPjJHPS1I7cmEIBCxiCivH0xaoBX-S_S9izZY,1631
|
63
63
|
nonebot_plugin_l4d2_server/l4d2_utils/rule.py,sha256=A_lC5i8hiQEZiTcCW_Pn2sldwuD5Pz3UdMHiozFqunc,1007
|
64
64
|
nonebot_plugin_l4d2_server/l4d2_utils/seach.py,sha256=ZAhwvS_xxSYg8AXIaRQTp9HzdAnSy2tHhxXrhR_YytQ,1230
|
@@ -67,4 +67,4 @@ nonebot_plugin_l4d2_server/l4d2_utils/utils.py,sha256=S1MYcfD38Fcvz4y1jEuoKWhc5L
|
|
67
67
|
nonebot_plugin_l4d2_server/l4d2_web/web.py,sha256=YvEMxG0nDrjbm4-IK9GkZlV7MPF9Nedc3goCnCUk_LA,9799
|
68
68
|
nonebot_plugin_l4d2_server/l4d2_web/webUI.py,sha256=1StBuG-crEli4M8AbPY4pd_zZi48veiZbeYO0KkOIh8,16217
|
69
69
|
nonebot_plugin_l4d2_server/l4d2_web/webUI_s.py,sha256=Y8PxkarJPsF9OvUVWCJ3SyhWYlYU5VQNnRGKG72KwFc,3339
|
70
|
-
nonebot_plugin_l4d2_server-0.6.
|
70
|
+
nonebot_plugin_l4d2_server-0.6.4.post1.dist-info/RECORD,,
|
File without changes
|