nonebot-plugin-l4d2-server 0.6.4.post1__py3-none-any.whl → 0.6.6__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.
@@ -15,7 +15,6 @@
15
15
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
16
16
  """
17
17
 
18
-
19
18
  from nonebot import get_driver, require
20
19
 
21
20
  require("nonebot_plugin_apscheduler") # noqa: F401
@@ -34,6 +33,7 @@ from .l4d2_data import sq_L4D2
34
33
 
35
34
  # from .l4d2_file.input_json import *
36
35
  from .l4d2_image.steam import url_to_byte_name
36
+ from .l4d2_push import scheduler # noqa: F401
37
37
  from .l4d2_utils.command import help_, search_api
38
38
  from .l4d2_utils.config import l4_config
39
39
  from .l4d2_utils.utils import upload_file
@@ -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.4"
44
+ __version__ = "0.6.6"
45
45
  __plugin_meta__ = PluginMetadata(
46
46
  name="求生之路小助手",
47
47
  description="可用于管理求生之路查服和本地管理",
@@ -59,18 +59,6 @@ __plugin_meta__ = PluginMetadata(
59
59
  """相当于启动就检查数据库"""
60
60
 
61
61
 
62
- # @search_api.handle()
63
- # async def _(matcher:Matcher,state:T_State,event:GroupMessageEvent,args:Message = CommandArg()): # noqa: E501
64
- # msg:str = args.extract_plain_text()
65
- # # if msg.startswith('代码'):
66
- # # 建图代码返回三方图信息
67
- # data = await seach_map(msg,l4_config.l4_master[0],l4_config.l4_key)
68
- # # else:
69
- # if type(data) == str:
70
- # await matcher.finish(data)
71
- # else:
72
- # state['maps'] = data
73
- # await matcher.send(await map_dict_to_str(data))
74
62
  @help_.handle()
75
63
  async def _(matcher: Matcher):
76
64
  msg = """=====求生机器人帮助=====
@@ -80,7 +68,10 @@ async def _(matcher: Matcher):
80
68
  4、创意工坊下载【创意工坊下载[物品id/链接]】
81
69
  5、指定ip查询【求生ip[ip]】(可以是域名)
82
70
  6、求生喷漆制作【求生喷漆】
83
- 7、本地服务器操作(略,详情看项目地址)
71
+ 7、本地服务器相关【l4地图上传】【l4地图改名】【l4地图删除】【l4路径】【l4插件】
72
+ 8、ip导入(私聊发送json文件,格式参考下方链接中readme)
73
+ 9、内置ip更新【l4公益服更新】【求生更新anne】
74
+ 项目地址:https://github.com/Agnes4m/nonebot_plugin_l4d2_server
84
75
  """
85
76
  await matcher.finish(msg)
86
77
 
@@ -2,12 +2,13 @@ import re
2
2
  from pathlib import Path
3
3
  from typing import Tuple
4
4
 
5
- from nonebot import on_command, on_notice, on_regex
6
- from nonebot.adapters.onebot.v11 import Message, NoticeEvent
5
+ from nonebot import on_command, on_regex
6
+ from nonebot.adapters.onebot.v11 import Event, Message, NoticeEvent
7
7
  from nonebot.log import logger
8
8
  from nonebot.matcher import Matcher
9
9
  from nonebot.params import ArgPlainText, CommandArg, RegexGroup
10
10
 
11
+ # from nonebot.typing import T_State
11
12
  from ..l4d2_utils.config import MASTER, config_manager, file_format, l4_config, vpk_path
12
13
  from ..l4d2_utils.rule import wenjian
13
14
  from ..l4d2_utils.txt_to_img import mode_txt_to_img
@@ -15,21 +16,26 @@ from ..l4d2_utils.utils import del_map, get_vpk, mes_list, rename_map
15
16
  from .input_json import upload # noqa: F401
16
17
  from .utils import updown_l4d2_vpk
17
18
 
18
- up = on_notice(rule=wenjian)
19
+ up = on_command(
20
+ "l4_upload",
21
+ aliases={"l4地图上传"},
22
+ priority=20,
23
+ block=True,
24
+ )
19
25
 
20
26
 
21
27
  rename_vpk = on_regex(
22
- r"^求生地图\s*(\S+.*?)\s*(改|改名)?\s*(\S+.*?)\s*$",
28
+ r"^l4地图\s*(\S+.*?)\s*(改|改名)?\s*(\S+.*?)\s*$",
23
29
  flags=re.S,
24
30
  block=True,
25
31
  priority=20,
26
32
  permission=MASTER,
27
33
  )
28
34
 
29
- find_vpk = on_command("l4_map", aliases={"求生地图"}, priority=25, block=True)
35
+ find_vpk = on_command("l4_map", aliases={"l4地图"}, priority=25, block=True)
30
36
  del_vpk = on_command(
31
37
  "l4_del_map",
32
- aliases={"求生地图删除", "地图删除"},
38
+ aliases={"l4地图删除", "地图删除"},
33
39
  priority=20,
34
40
  permission=MASTER,
35
41
  )
@@ -37,14 +43,14 @@ del_vpk = on_command(
37
43
 
38
44
  check_path = on_command(
39
45
  "l4_check",
40
- aliases={"求生路径"},
46
+ aliases={"l4路径"},
41
47
  priority=20,
42
48
  block=True,
43
49
  permission=MASTER,
44
50
  )
45
51
  smx_file = on_command(
46
52
  "l4_smx",
47
- aliases={"求生插件"},
53
+ aliases={"l4插件"},
48
54
  priority=20,
49
55
  block=True,
50
56
  permission=MASTER,
@@ -52,8 +58,13 @@ smx_file = on_command(
52
58
 
53
59
 
54
60
  @up.handle()
55
- async def _(matcher: Matcher, event: NoticeEvent):
56
- if not l4_config.l4_group_upload:
61
+ async def _(): ...
62
+
63
+
64
+ @up.got("map_url", prompt="图来")
65
+ async def _(matcher: Matcher, event: Event):
66
+ if not isinstance(event, NoticeEvent) or not wenjian(event):
67
+ await matcher.finish("未检测到地图")
57
68
  return
58
69
  args = event.dict()
59
70
  if args["notice_type"] != "offline_file":
@@ -66,7 +66,7 @@ def open_packet(name: str, down_file: Path) -> str:
66
66
  ".7z": unpack_7zfile,
67
67
  ".rar": unpack_rarfile,
68
68
  }
69
- unpack_func = unpack_funcs.get(ext, None)
69
+ unpack_func = unpack_funcs.get(ext)
70
70
  if not unpack_func:
71
71
  raise ValueError(f"不支持的拓展名: {ext}")
72
72
  unpack_func(down_file, down_path)
@@ -51,6 +51,7 @@ async def dict_to_html(usr_id, detail_map: dict):
51
51
  detail_right["url"] = detail_map["个人资料"]
52
52
  detail_right["one_msg"] = detail_map["一言"]
53
53
  detail_right["last_one"] = detail_map["救援关"]
54
+
54
55
  # html_text = soup.prettify()
55
56
  # for key, value in detail_right.items():
56
57
  # html_text = html_text.replace(key,value)
@@ -74,12 +75,12 @@ async def server_ip_pic(msg_list: List[ServerStatus]):
74
75
  server_info.rank_players = f"{server_info.players}/{server_info.max_players}"
75
76
  players_list: List[PlayerInfo] = []
76
77
  # logger.info(server_info.name)
77
-
78
- sorted_players = sorted(server_info.Players, key=lambda x: x.Score)[:4]
78
+ max_number = l4_config.l4_img_name
79
+ sorted_players = sorted(server_info.Players, key=lambda x: x.Score)[:max_number]
79
80
  for player_info in sorted_players:
80
81
  # player_str = f"{player_info.name} | {player_info.Duration}"
81
82
  players_list.append(player_info)
82
- while len(players_list) < 4:
83
+ while len(players_list) < max_number:
83
84
  players_list.append(PlayerInfo())
84
85
  server_info.Players = players_list
85
86
  # logger.info(server_info.Players)
@@ -48,23 +48,19 @@ bg_path = CU_BG_PATH if list(CU_BG_PATH.iterdir()) != [] else NM_BG_PATH
48
48
 
49
49
 
50
50
  @overload
51
- async def convert_img(img: Image.Image, is_base64: bool = False) -> bytes:
52
- ...
51
+ async def convert_img(img: Image.Image, is_base64: bool = False) -> bytes: ...
53
52
 
54
53
 
55
54
  @overload
56
- async def convert_img(img: Image.Image, is_base64: bool = True) -> str:
57
- ...
55
+ async def convert_img(img: Image.Image, is_base64: bool = True) -> str: ...
58
56
 
59
57
 
60
58
  @overload
61
- async def convert_img(img: bytes, is_base64: bool = False) -> str:
62
- ...
59
+ async def convert_img(img: bytes, is_base64: bool = False) -> str: ...
63
60
 
64
61
 
65
62
  @overload
66
- async def convert_img(img: Path, is_base64: bool = False) -> str:
67
- ...
63
+ async def convert_img(img: Path, is_base64: bool = False) -> str: ...
68
64
 
69
65
 
70
66
  async def convert_img(
@@ -15,6 +15,7 @@ from nonebot.log import logger
15
15
  from nonebot.matcher import Matcher
16
16
  from nonebot.params import CommandArg
17
17
  from nonebot.permission import SUPERUSER
18
+ from nonebot_plugin_saa import MessageFactory
18
19
 
19
20
  from ..l4d2_queries import get_ip_to_mes
20
21
  from ..l4d2_queries.utils import json_server_to_tag_dict
@@ -22,8 +23,10 @@ from ..l4d2_utils.config import l4_config
22
23
  from ..l4d2_utils.utils import extract_last_digit, split_maohao
23
24
 
24
25
  require("nonebot_plugin_apscheduler")
25
- # from nonebot_plugin_apscheduler import scheduler
26
-
26
+ try:
27
+ scheduler = require("nonebot_plugin_apscheduler").scheduler
28
+ except Exception:
29
+ scheduler = None
27
30
  driver = get_driver()
28
31
  sch_json = Path("data/L4D2/scheduler.json")
29
32
  if not sch_json.exists():
@@ -58,12 +61,13 @@ async def _(event: GroupMessageEvent, matcher: Matcher, args: Message = CommandA
58
61
  await matcher.finish("无响应的服务器,请检查")
59
62
  else:
60
63
  return_msg = await add_or_update_data(group_id, msg)
61
- if isinstance(push_msg, bytes):
62
- await matcher.finish(MessageSegment.image(push_msg))
63
- elif isinstance(push_msg, Union[Message, MessageSegment]):
64
- await matcher.finish(push_msg)
65
- else:
66
- await matcher.send(push_msg)
64
+ await MessageFactory(push_msg).send()
65
+ # if isinstance(push_msg, bytes):
66
+ # await matcher.finish(MessageSegment.image(push_msg))
67
+ # elif isinstance(push_msg, Union[Message, MessageSegment]):
68
+ # await matcher.finish(push_msg)
69
+ # else:
70
+ # await matcher.send(push_msg)
67
71
  if return_msg == "add":
68
72
  await matcher.send(f"已添加群定时任务【{msg}】{l4_config.l4_push_times}次")
69
73
  elif return_msg in ["update", "change"]:
@@ -211,9 +215,11 @@ async def server_is_change():
211
215
  """检测服务器是否发生变化"""
212
216
 
213
217
 
214
- # @driver.on_bot_connect
215
- # async def _():
216
- # logger.success("已成功启动求生定时推送")
217
- # scheduler.add_job(
218
- # rss_ip, "interval", minutes=l4_config.l4_push_interval, id="rss_ip"
219
- # )
218
+ if scheduler:
219
+ logger.success("已成功启动求生定时推送")
220
+ scheduler.add_job(
221
+ rss_ip,
222
+ "interval",
223
+ minutes=l4_config.l4_push_interval,
224
+ id="rss_ip",
225
+ )
@@ -8,9 +8,8 @@ from nonebot.adapters.onebot.v11 import GroupMessageEvent
8
8
  from nonebot.log import logger
9
9
  from nonebot.matcher import Matcher
10
10
  from nonebot.params import ArgPlainText, CommandArg, CommandStart, Keyword, RawCommand
11
- from nonebot_plugin_saa import Image, MessageFactory, Text
11
+ from nonebot_plugin_saa import Image, MessageFactory
12
12
 
13
- from ..l4d2_anne.server import updata_anne_server
14
13
  from ..l4d2_image import server_group_ip_pic
15
14
  from ..l4d2_queries.qqgroup import add_ip, del_ip, get_number_url, show_ip
16
15
  from ..l4d2_queries.utils import queries_server
@@ -162,23 +161,7 @@ async def get_read_ip(ip_anne_list: List[Tuple[str, str, str]]):
162
161
  if push_msg is None:
163
162
  return
164
163
 
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)
164
+ await MessageFactory(push_msg).send()
182
165
 
183
166
 
184
167
  # tests = on_command("测试1")
@@ -279,29 +262,6 @@ async def _():
279
262
  await init()
280
263
 
281
264
 
282
- updata = on_command(
283
- "updata_anne",
284
- aliases={"求生更新anne"},
285
- priority=20,
286
- block=True,
287
- permission=MASTER,
288
- )
289
-
290
-
291
- @updata.handle()
292
- async def _(matcher: Matcher, args: Message = CommandArg()):
293
- """更新"""
294
- if args:
295
- # 占位先,除了电信服还有再加
296
- ...
297
- anne_ip_dict = await updata_anne_server()
298
- if anne_ip_dict is None:
299
- await matcher.finish("网络开小差了捏")
300
- return
301
- server_number = len(anne_ip_dict["云"])
302
- await matcher.finish(f"更新成功\n一共更新了{server_number}个电信anne服ip")
303
-
304
-
305
265
  @add2_queries.handle()
306
266
  async def _(matcher: Matcher, arg: Message = CommandArg()):
307
267
  arg_list = arg.extract_plain_text().split(" ")
@@ -2,6 +2,7 @@ import asyncio
2
2
  from typing import Dict, List, Optional, Tuple
3
3
 
4
4
  from nonebot.log import logger
5
+ from nonebot_plugin_saa import Image, Text
5
6
 
6
7
  from ..l4d2_queries.local_ip import ALL_HOST
7
8
  from ..l4d2_queries.qqgroup import qq_ip_queries_pic
@@ -29,7 +30,7 @@ async def get_ip_to_mes(msg: str, command: str = ""):
29
30
  msg_tuple = (one_ip["id"], host, port)
30
31
  ip_list.append(msg_tuple)
31
32
  img = await qq_ip_queries_pic(ip_list, igr)
32
- return img if img else None
33
+ return [Image(img)] if img else None
33
34
 
34
35
  if not msg[0].isdigit():
35
36
  # if any(mode in msg for mode in gamemode_list):
@@ -46,10 +47,10 @@ async def get_ip_to_mes(msg: str, command: str = ""):
46
47
  try:
47
48
  msg_send: Optional[str] = await get_anne_server_ip(ip)
48
49
  if msg_send is not None:
49
- return msg_send
50
+ return [Text(msg_send)]
50
51
 
51
52
  except (OSError, asyncio.exceptions.TimeoutError):
52
- return "服务器无响应"
53
+ return [Text("服务器无响应")]
53
54
 
54
55
 
55
56
  # async def get_read_group_ip():
@@ -50,7 +50,9 @@ async def _():
50
50
  "更新记录",
51
51
  "更新记录",
52
52
  "查看插件最近的更新记录",
53
- detail_des=("介绍:\n查看插件最近的有效Git更新记录\n \n指令:\n- <ft color=(238,120,0)>更新记录</ft>"),
53
+ detail_des=(
54
+ "介绍:\n查看插件最近的有效Git更新记录\n \n指令:\n- <ft color=(238,120,0)>更新记录</ft>"
55
+ ),
54
56
  )
55
57
  async def send_updatelog_msg(
56
58
  matcher: Matcher,
@@ -55,6 +55,7 @@ class L4d2Config(BaseModel):
55
55
  web_username: str = Field("l4d2", alias="后台管理用户名")
56
56
  web_password: str = Field("admin", alias="后台管理密码")
57
57
  l4_style: str = Field("standard", alias="图片风格")
58
+ l4_img_name: int = Field(4, alias="图片显示玩家数量")
58
59
  l4_ipall: List[Dict[str, Any]] = Field(
59
60
  [
60
61
  {
@@ -86,15 +87,19 @@ class L4d2Config(BaseModel):
86
87
  "49c294d32f69b732ef6447c18379451ce1738922a75cd1d4812ef150318a2ed0",
87
88
  alias="后台管理token密钥",
88
89
  )
89
- l4_master: List[str] = Field(["114514919"], alias="求生地图全局管理员qq")
90
+ l4_master: List[str] = Field(default=["114514919"], alias="求生地图全局管理员qq")
90
91
  # l4_ip:bool = Field(False, alias='查询地图是否显示ip')
91
- l4_font: str = Field("simsun.ttc", alias="字体")
92
- l4_only: bool = Field(False, alias="下载地图是是否阻碍其他指令")
93
- l4_push_interval: int = Field(3, alias="定时任务间隔")
94
- l4_push_times: int = Field(10, alias="定时任务次数")
95
- l4_connect: bool = Field(True, alias="是否在查服命令后加入connect ip")
96
- l4_group_upload: bool = Field(False, alias="是否在群里传地图的时候,提示上传服务器")
97
- group_config: Dict[int, L4d2GroupConfig] = Field({}, alias="分群配置")
92
+ l4_font: str = Field(default="simsun.ttc", alias="字体")
93
+ l4_only: bool = Field(default=False, alias="下载地图是是否阻碍其他指令")
94
+ l4_push_interval: int = Field(default=3, alias="定时任务间隔")
95
+ l4_push_times: int = Field(default=10, alias="定时任务次数")
96
+ l4_connect: bool = Field(default=True, alias="是否在查服命令后加入connect ip")
97
+ l4_group_upload: bool = Field(
98
+ default=False, alias="是否在群里传地图的时候,提示上传服务器"
99
+ )
100
+ group_config: Dict[int, L4d2GroupConfig] = Field(
101
+ default_factory=dict, alias="分群配置"
102
+ )
98
103
 
99
104
  def update(self, **kwargs):
100
105
  for key, value in kwargs.items():
@@ -98,7 +98,9 @@ global_config_form = Form(
98
98
  label="后台管理用户名",
99
99
  name="web_username",
100
100
  value="${web_username}",
101
- labelRemark=Remark(shape="circle", content="登录本后台管理所需要的用户名。"), # noqa: E501
101
+ labelRemark=Remark(
102
+ shape="circle", content="登录本后台管理所需要的用户名。"
103
+ ), # noqa: E501
102
104
  ),
103
105
  InputPassword(
104
106
  label="后台管理密码",
@@ -119,7 +121,9 @@ global_config_form = Form(
119
121
  label="字体",
120
122
  name="l4_font",
121
123
  value="${l4_font}",
122
- labelRemark=Remark(shape="circle", content="机器人返回图片中文字的字体。"), # noqa: E501
124
+ labelRemark=Remark(
125
+ shape="circle", content="机器人返回图片中文字的字体。"
126
+ ), # noqa: E501
123
127
  ),
124
128
  Switch(
125
129
  label="是否图片发送单服务器查询",
@@ -197,7 +201,9 @@ global_config_form = Form(
197
201
  visibleOn="${total_enable}",
198
202
  joinValues=False,
199
203
  extractValue=True,
200
- labelRemark=Remark(shape="circle", content="在这里加入的用户,才能上传地图"), # noqa: E501
204
+ labelRemark=Remark(
205
+ shape="circle", content="在这里加入的用户,才能上传地图"
206
+ ), # noqa: E501
201
207
  ),
202
208
  InputTag(
203
209
  label="坐牢三指令tag",
@@ -426,7 +432,9 @@ server_page = PageSchema(
426
432
  Alert(
427
433
  level=LevelEnum.info,
428
434
  className="white-space-pre-wrap",
429
- body=(f"此数据库记录了{NICKNAME}所在服务器下的求生服务器。\n· 功能暂未完善"), # noqa: E501
435
+ body=(
436
+ f"此数据库记录了{NICKNAME}所在服务器下的求生服务器。\n· 功能暂未完善"
437
+ ), # noqa: E501
430
438
  ),
431
439
  server_control,
432
440
  server_ditail,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nonebot-plugin-l4d2-server
3
- Version: 0.6.4.post1
3
+ Version: 0.6.6
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
@@ -16,7 +16,7 @@ Classifier: Operating System :: OS Independent
16
16
  Project-URL: Homepage, https://github.com/Agnes4m/nonebot_plugin_l4d2_server
17
17
  Requires-Python: <4.0,>=3.9
18
18
  Requires-Dist: nonebot2>=2.0.0
19
- Requires-Dist: nonebot-plugin-htmlrender==0.2.0.3
19
+ Requires-Dist: nonebot-plugin-htmlrender==0.2.2
20
20
  Requires-Dist: nonebot_plugin_txt2img>=0.3.0
21
21
  Requires-Dist: nonebot-plugin-apscheduler>=0.2.0
22
22
  Requires-Dist: nonebot-adapter-onebot>=2.2.3
@@ -28,9 +28,9 @@ Requires-Dist: srctools>=2.3.9
28
28
  Requires-Dist: bs4==0.0.1
29
29
  Requires-Dist: httpx>=0.22.0
30
30
  Requires-Dist: rcon==2.1.0
31
- Requires-Dist: pillow>=9.4.0
31
+ Requires-Dist: pillow<10.0.0
32
32
  Requires-Dist: pyunpack>=0.3.0
33
- Requires-Dist: ruamel.yaml>=0.17.21
33
+ Requires-Dist: ruamel.yaml==0.17.21
34
34
  Requires-Dist: rarfile>=4.0
35
35
  Requires-Dist: patool>=1.12
36
36
  Requires-Dist: python-a2s>=1.3.0
@@ -1,7 +1,7 @@
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
1
+ nonebot_plugin_l4d2_server-0.6.6.dist-info/METADATA,sha256=hOWgsfeQPRxxcSqhh8li9UNBlSZG0iZCQf2wwtCMyME,7938
2
+ nonebot_plugin_l4d2_server-0.6.6.dist-info/WHEEL,sha256=N2J68yzZqJh3mI_Wg92rwhw0rtJDFpZj9bwQIMJgaVg,90
3
+ nonebot_plugin_l4d2_server-0.6.6.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
4
+ nonebot_plugin_l4d2_server/__init__.py,sha256=DH9_eqAVxmEZicQPcmvkBVXjRSl2oI80SYMaAjv8XP4,4814
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
@@ -28,43 +28,43 @@ 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=4gRhIQ6-Fw0jyobgz4GJ0C-AQGmAe63YXYdvP2RITCA,6963
31
+ nonebot_plugin_l4d2_server/l4d2_file/__init__.py,sha256=CnkhLLELWxj9VUeQx8xB_KehyyfB_c9UgyEAeE_54b4,7177
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
- nonebot_plugin_l4d2_server/l4d2_file/utils.py,sha256=wYNYLqHDS6h5uEqdqpOlNXu-JKjCoEDAK2wNz5irdfg,3056
36
- nonebot_plugin_l4d2_server/l4d2_image/__init__.py,sha256=ib2nzMdXzVJ9N3fDuwGdslS2jSwDS1XWU8biJHRMJ1g,4484
35
+ nonebot_plugin_l4d2_server/l4d2_file/utils.py,sha256=-L_upM6cmVh5GhLyL1NneyEW_ewNOmnT2lcliRAAqe0,3050
36
+ nonebot_plugin_l4d2_server/l4d2_image/__init__.py,sha256=Y2y1Viy3mbgV8JA8vHHM23Z7Oaxx5-TVudC1ONzf_a0,4545
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
- nonebot_plugin_l4d2_server/l4d2_image/images.py,sha256=jZwwerx2oPDZ40VTYhWgMz5nUoRibOkyZFzSL9b4giE,2801
39
+ nonebot_plugin_l4d2_server/l4d2_image/images.py,sha256=wqtAuMfKPvFsgsvIGFYNsES2r1iCs5-yL0_zJo7PFjs,2785
40
40
  nonebot_plugin_l4d2_server/l4d2_image/one.py,sha256=8rZ5GD-F3mp_tXVsbPRoFV4xFiSVDMxMYV2GsAc6TUI,1142
41
41
  nonebot_plugin_l4d2_server/l4d2_image/send_image_tool.py,sha256=0qcce0wOI7liuwjsbUPbFhfMXG06hkrpoSpGlCbl3j4,922
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
- nonebot_plugin_l4d2_server/l4d2_push/__init__.py,sha256=-_iAQPvxYyO9yjv9yr1TM_NEjOPHnXx7CDZfD2CNxdw,7537
45
- nonebot_plugin_l4d2_server/l4d2_queries/__init__.py,sha256=g_8l3_3THyFPlk4t8HSzMc3CJlwEv6J2M-h2qN88a2w,11620
44
+ nonebot_plugin_l4d2_server/l4d2_push/__init__.py,sha256=trCYaSVr6im6ggQk5gedZJ3kZiOGs5UO8V7fl-pYfs0,7686
45
+ nonebot_plugin_l4d2_server/l4d2_queries/__init__.py,sha256=BK5Rqf4gDCcEkpHPtIVQeLz-PtSW09HBsG8WFsHqNuE,10312
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=qsOPh8z-A2fDUVHx8vSx0rr2gVC4qyhwrSCoVduig_s,4622
49
+ nonebot_plugin_l4d2_server/l4d2_queries/send_msg.py,sha256=rDh2mzq7QnG3eqSsUyGFY73erAHYP0L_3bNc0Q1dUj4,4690
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
53
53
  nonebot_plugin_l4d2_server/l4d2_server/rcon.py,sha256=1vz1CAZg0atqIk45d18273ubFd8rm8Y2iW2SK0F8s20,1669
54
54
  nonebot_plugin_l4d2_server/l4d2_server/workshop.py,sha256=m-ZdzYGOWOIxK_cSPAJ8tTr9NA16KpsQgauQt0PTs-g,2846
55
- nonebot_plugin_l4d2_server/l4d2_update/__init__.py,sha256=M8KTxo250GQ-3CZw3fSmgfsOIxCe4tHkIyzmtGnD3uk,4029
55
+ nonebot_plugin_l4d2_server/l4d2_update/__init__.py,sha256=F--dU5arxQztldaH6pr5e-js5UYVksTk9i9mRq3VYGc,4043
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
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=lhqJy93hzI_jpuJ0eGgZUhXbplM_YfJ2NtTx_s_-KmI,6114
61
+ nonebot_plugin_l4d2_server/l4d2_utils/config.py,sha256=4fz-VqAFLEIZw9O-08f52MzVqqzS_WIV2XIOno5Gw4w,6282
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
65
65
  nonebot_plugin_l4d2_server/l4d2_utils/txt_to_img.py,sha256=GNbveJi5sFlyqIpcBjHmyib2_of2kBs7lfq0VqLT83w,794
66
66
  nonebot_plugin_l4d2_server/l4d2_utils/utils.py,sha256=S1MYcfD38Fcvz4y1jEuoKWhc5LYYT-Skk2K7iVCr7P0,5898
67
67
  nonebot_plugin_l4d2_server/l4d2_web/web.py,sha256=YvEMxG0nDrjbm4-IK9GkZlV7MPF9Nedc3goCnCUk_LA,9799
68
- nonebot_plugin_l4d2_server/l4d2_web/webUI.py,sha256=1StBuG-crEli4M8AbPY4pd_zZi48veiZbeYO0KkOIh8,16217
68
+ nonebot_plugin_l4d2_server/l4d2_web/webUI.py,sha256=sk0rcF3EnwLr2yTvLAu-BKmAixZTLLPZ1vvE54ym1tc,16345
69
69
  nonebot_plugin_l4d2_server/l4d2_web/webUI_s.py,sha256=Y8PxkarJPsF9OvUVWCJ3SyhWYlYU5VQNnRGKG72KwFc,3339
70
- nonebot_plugin_l4d2_server-0.6.4.post1.dist-info/RECORD,,
70
+ nonebot_plugin_l4d2_server-0.6.6.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: pdm-backend (2.1.6)
2
+ Generator: pdm-backend (2.1.8)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any