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.
@@ -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.3"
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.number }}:{{ plugin.name }}</div>
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">{{ plugin.map_ }}</font><br>
237
- {% for Player in plugin.Players %}
238
- <font color="green">{{ Player }}</font><br>
239
- {% endfor %}
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">&nbsp{{ plugin.max_players }} </div>
246
246
  <div class="package_name">&nbsp{{ 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
- <link rel="stylesheet" type="text/css" href="vue.css">
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
- th, td {
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
- {% for i in range(0, data|length, 3) %}
25
- <tr>
26
- {% for j in range(i, i + 3) %}
27
- {% if j < data|length %}
28
- <td>
29
- <font color="red">{{ data[j].number }}</font><br>
30
- <font color="yellow">{{ data[j].name }}</font><br>
31
- <font color="gray">{{ data[j].ip }}</font><br>
32
- <font color="blue">{{ data[j].map_ }}</font><br>
33
- {% for Player in data[j].Players %}
34
- <font color="green">{{ Player }}</font><br>
35
- {% endfor %}
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
- {% endif %}
42
+ {% endif %}
43
+ {% endfor %}
44
+ </tr>
39
45
  {% endfor %}
40
- </tr>
41
- {% endfor %}
42
- </table>
43
- <h5><center>©爱丽数码</center></br>
44
- <center>
45
- github.com/Agnes4m/nonebot_plugin_l4d2_server
46
- </center>
47
- </h5>
48
- </div>
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>
@@ -53,6 +53,8 @@ smx_file = on_command(
53
53
 
54
54
  @up.handle()
55
55
  async def _(matcher: Matcher, event: NoticeEvent):
56
+ if not l4_config.l4_group_upload:
57
+ return
56
58
  args = event.dict()
57
59
  if args["notice_type"] != "offline_file":
58
60
  matcher.set_arg("txt", args) # type: ignore
@@ -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
- push_msg = await get_ip_to_mes(msg, command)
143
- if push_msg is None:
144
- return
145
-
146
- if isinstance(push_msg, bytes):
147
- logger.info("直接发送图片")
148
- await MessageFactory([Image(push_msg)]).finish()
149
- return
150
- if msg and type(push_msg) == list:
151
- logger.info("更加构造函数")
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
- logger.info("出错了")
158
- return
159
- logger.info(type(send_msg))
160
- if not send_msg:
161
- logger.warning("没有")
162
- await matcher.finish(send_msg)
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, str_to_picstr
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
- get_grou_ip = on_command("anne", aliases=group_key(), priority=80, block=True)
64
-
65
- @get_grou_ip.handle()
66
- async def _(
67
- matcher: Matcher,
68
- start: str = CommandStart(),
69
- command: str = RawCommand(),
70
- args: Message = CommandArg(),
71
- ):
72
- if start:
73
- command = command.replace(start, "")
74
- msg: str = args.extract_plain_text()
75
- push_msg = await get_group_ip_to_msg(msg, command)
76
- if isinstance(push_msg, bytes):
77
- await MessageFactory([Image(push_msg)]).finish()
78
- elif msg and type(push_msg) == list:
79
- await MessageFactory([Image(push_msg[0]), Text(push_msg[-1])]).finish()
80
- elif msg and isinstance(push_msg, str):
81
- await str_to_picstr(push_msg, matcher)
82
- await matcher.finish()
83
-
84
-
85
- async def get_group_ip_to_msg(command: str, text: str = ""):
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 not text:
82
+ if command in Group_All_HOST:
88
83
  group_tag_list: List[str] = Group_All_HOST[command]
89
- group_ip_dict: Dict[str, List[Dict[str, str]]] = {}
90
- tag = len(group_tag_list) == 0
91
- for tag, one_group in ALL_HOST.items():
92
- if tag in group_tag_list or tag:
93
- group_ip_dict.update({tag: one_group})
94
- ip_tuple_list: List[Tuple[str, str, int]] = []
95
- for one_server in one_group:
96
- number = one_server["id"]
97
- host, port = split_maohao(one_server["ip"])
98
- ip_tuple_list.append((number, host, int(port)))
99
- msg_group_server = await qq_ip_querie(ip_tuple_list)
100
- return await check_group_msg(msg_group_server)
101
- return None
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
- msg: Dict[str, List[ServerStatus]],
111
- ):
112
- send_msg: Dict[str, ServerGroup] = {}
113
- if msg:
114
- for tag, server_group in msg.items():
115
- # 服务器,服务器玩家数量
116
- # 当前/总数
117
- server_info = ServerGroup()
118
- for one_server in server_group:
119
- if one_server.name == "null":
120
- server_info.server_all_number += 1
121
- continue
122
- server_info.server_all_number += 1
123
- server_info.server_number += 1
124
- server_info.server_people += one_server.players
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
@@ -39,6 +39,10 @@ class ServerStatus(BaseModel):
39
39
  class ServerGroup(BaseModel):
40
40
  """组服务器信息"""
41
41
 
42
+ server_id: int = 0
43
+ """服务器序号"""
44
+ server_tag: str = "服务器"
45
+ """服务器组名字"""
42
46
  server_number: int = 0
43
47
  """群组当期启动服务器数量"""
44
48
  server_all_number: int = 0
@@ -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.post1
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.3.post1.dist-info/METADATA,sha256=2NITp8MRoEdz2Q9QTdtOEJXV_fNN3s-dJeng6Yqrxrg,7946
2
- nonebot_plugin_l4d2_server-0.6.3.post1.dist-info/WHEEL,sha256=1D4d-_ODszlK6-qFybc5BLF-ZhZvee-uKVh2hLa3IIc,90
3
- nonebot_plugin_l4d2_server-0.6.3.post1.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
4
- nonebot_plugin_l4d2_server/__init__.py,sha256=5G0hIyjbcfWBqp2pjm0EDMwcu2DBwv2pngFo-bOpzgc,4949
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=8SVaN-QO0Lu1NH0lVTwSUubAql9CF6BqqKNqHwNhKzk,7067
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=iKVCwXeTSrvtiAbhAv6_spUKb2NMZhUnnHAVZkaz3D4,1523
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=vkg_z1RATW8UvokS7lx_aiUpLRRjn2L9jbNnVwK2aYI,6910
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=1mNfLzVozF1G95VJN74fUxen-D9m2eX2IwSS9C_rl0o,3992
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=akiGQVrh0xqYme2x76z3PaJnX2tAqnM91HZowRlni4g,10784
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=VW3gMwlWB65QFR0OgUmfmkEzWOrP_XecsUolX6Mcs0E,4633
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=QTVYhoYCOul-uf3vZGbp2MdFWdef7lGsTBOqeP1o0s4,1114
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=25Hhng4HMCjhnRScyoYs-k-n9zae-JBF6YwrkOXVu0Y,6006
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.3.post1.dist-info/RECORD,,
70
+ nonebot_plugin_l4d2_server-0.6.4.post1.dist-info/RECORD,,