nonebot-plugin-l4d2-server 1.0.9__tar.gz → 1.1.0__tar.gz

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.
Files changed (96) hide show
  1. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/PKG-INFO +1 -1
  2. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/__main__.py +6 -18
  3. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/__init__.py +1 -1
  4. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_request/__init__.py +25 -4
  5. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_request/draw_msg.py +1 -20
  6. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_request/utils.py +2 -0
  7. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/utils/utils.py +23 -0
  8. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/pyproject.toml +1 -1
  9. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/LICENSE +0 -0
  10. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/README.md +0 -0
  11. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/__init__.py +0 -0
  12. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/config.py +0 -0
  13. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/data/font/loli.ttf +0 -0
  14. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/Help.json +0 -0
  15. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/draw.py +0 -0
  16. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//344/273/213/347/273/215.png" +0 -0
  17. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//344/273/273/345/212/241.png" +0 -0
  18. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//344/277/241/346/201/257.png" +0 -0
  19. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//345/205/254/345/221/212.png" +0 -0
  20. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//345/210/200/345/211/221.png" +0 -0
  21. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//345/210/207/346/215/242.png" +0 -0
  22. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//345/210/240/351/231/244.png" +0 -0
  23. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//345/210/267/346/226/260.png" +0 -0
  24. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//345/215/241/347/273/204.png" +0 -0
  25. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//345/223/252/351/207/214.png" +0 -0
  26. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//345/234/260/345/233/276.png" +0 -0
  27. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//345/257/274/345/205/245.png" +0 -0
  28. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//345/257/274/345/207/272.png" +0 -0
  29. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//345/275/261.png" +0 -0
  30. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//346/213/274/345/233/276.png" +0 -0
  31. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//346/216/242/347/264/242.png" +0 -0
  32. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//346/216/250/351/200/201.png" +0 -0
  33. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//346/224/266/351/233/206.png" +0 -0
  34. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//346/224/273/347/225/245.png" +0 -0
  35. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//346/233/264/346/226/260.png" +0 -0
  36. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//346/235/220/346/226/231.png" +0 -0
  37. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//346/237/245/350/257/242.png" +0 -0
  38. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//346/240/241/351/252/214.png" +0 -0
  39. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//346/257/217/346/234/210.png" +0 -0
  40. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//346/267/261/346/270/212.png" +0 -0
  41. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//346/267/273/345/212/240.png" +0 -0
  42. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//346/270/205/351/231/244.png" +0 -0
  43. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//347/212/266/346/200/201.png" +0 -0
  44. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//347/255/276/345/210/260.png" +0 -0
  45. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//347/273/221/345/256/232.png" +0 -0
  46. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//350/241/250.png" +0 -0
  47. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//350/241/250/346/203/205.png" +0 -0
  48. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//350/247/222/350/211/262.png" +0 -0
  49. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//350/256/260/345/275/225.png" +0 -0
  50. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//351/205/215/347/275/256.png" +0 -0
  51. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/icon//351/207/215/345/220/257.png" +0 -0
  52. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/texture2d/badge.png +0 -0
  53. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/texture2d/banner.png +0 -0
  54. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/texture2d/bg.jpg +0 -0
  55. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/texture2d/button.png +0 -0
  56. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_help/texture2d/icon.png +0 -0
  57. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/__init__.py +0 -0
  58. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/convert.py +0 -0
  59. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/download.py +0 -0
  60. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/html_img.py +0 -0
  61. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/image_tools.py +0 -0
  62. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/anne/anne.html +0 -0
  63. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/anne/back.png +0 -0
  64. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/anne/back1.jpg +0 -0
  65. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/anne/group_ip.html +0 -0
  66. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/anne/ip.html +0 -0
  67. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/head/head.png +0 -0
  68. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/header/logo.png +0 -0
  69. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/header/player1.jpg +0 -0
  70. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/template/Bocchi_The_Rock.html +0 -0
  71. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/template/Bocchi_The_Rock.png +0 -0
  72. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/template/HYPixel11pxU-2.ttf +0 -0
  73. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/template/Pixel.html +0 -0
  74. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/template/Pixel.png +0 -0
  75. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/template/Rainbow.html +0 -0
  76. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/template/Rainbow.png +0 -0
  77. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/template/Tutumianhuatang-Bold-2.ttf +0 -0
  78. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/template/bilibili.svg +0 -0
  79. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/template/fingerprint.svg +0 -0
  80. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/template/github.svg +0 -0
  81. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/template/l.svg +0 -0
  82. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/template/m.svg +0 -0
  83. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/template/normal.html +0 -0
  84. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/template/vac.png +0 -0
  85. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/template/vac_white.png +0 -0
  86. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/template/vue.css +0 -0
  87. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/img/template/w.svg +0 -0
  88. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/model.py +0 -0
  89. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_image/vtfs.py +0 -0
  90. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_local/__init__.py +0 -0
  91. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/l4_local/file.py +0 -0
  92. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/utils/api/api.py +0 -0
  93. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/utils/api/models.py +0 -0
  94. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/utils/api/request.py +0 -0
  95. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/utils/api/utils.py +0 -0
  96. {nonebot_plugin_l4d2_server-1.0.9 → nonebot_plugin_l4d2_server-1.1.0}/nonebot_plugin_l4d2_server/utils/database/models.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nonebot-plugin-l4d2-server
3
- Version: 1.0.9
3
+ Version: 1.1.0
4
4
  Summary: L4D2 server related operations plugin for NoneBot2
5
5
  Keywords: steam,game,l4d2,nonebot2,plugin
6
6
  Author-Email: Agnes_Digital <Z735803792@163.com>
@@ -42,7 +42,7 @@ from .l4_request import (
42
42
  )
43
43
  from .utils.api.request import L4API
44
44
  from .utils.api.utils import out_msg_out
45
- from .utils.utils import split_maohao
45
+ from .utils.utils import log_and_send, read_config, split_maohao, write_config
46
46
 
47
47
  if TYPE_CHECKING:
48
48
  from .utils.api.models import OutServer
@@ -131,6 +131,8 @@ async def _(
131
131
  ):
132
132
  # 以后有时间补img格式
133
133
  msg: str = args.extract_plain_text().strip()
134
+ if not msg:
135
+ return UniMessage.text("请在指令后添加要找的昵称哦")
134
136
  tag_list: List[str] = msg.split(" ", maxsplit=1)
135
137
  if len(tag_list) == 1:
136
138
  await UniMessage.text("未设置组,正在全服查找,时间较长").send()
@@ -202,29 +204,15 @@ l4_add_ban = on_command("l4addban", aliases={"l4添加ban"})
202
204
  @l4_add_ban.handle()
203
205
  async def _(args: Message = CommandArg()):
204
206
  arg = args.extract_plain_text().strip().split(" ")
205
-
206
207
  if len(arg) != 2:
207
208
  await UniMessage.text("请在命令后增加响应指令名和网址").finish()
208
209
 
209
- if not config_path.is_file():
210
- config_data = {}
211
- else:
212
- try:
213
- with config_path.open("r") as f:
214
- config_data = json.load(f)
215
- except (json.JSONDecodeError, FileNotFoundError):
216
- config_data = {}
217
-
210
+ config_data = read_config(config_path)
218
211
  config_data.update({arg[0]: arg[1]})
219
-
220
- try:
221
- with config_path.open("w") as f:
222
- json.dump(config_data, f, ensure_ascii=False, indent=4)
223
- except IOError as e:
224
- await UniMessage.text(f"文件写入失败: {e}").finish()
212
+ write_config(config_path, config_data)
225
213
 
226
214
  await L4API.get_sourceban(arg[0], arg[1])
227
- await out_msg_out(f"添加成功\n组名: {arg[0]}\n网址: {arg[1]}")
215
+ await log_and_send(l4_add_ban, f"添加成功\n组名: {arg[0]}\n网址: {arg[1]}")
228
216
 
229
217
 
230
218
  l4_del_ban = on_command("l4delban", aliases={"l4删除ban", "l4移除ban"})
@@ -10,7 +10,7 @@ from ..l4_image.convert import core_font
10
10
  from ..l4_image.model import PluginHelp
11
11
  from .draw import get_help
12
12
 
13
- __version__ = "1.0.9"
13
+ __version__ = "1.1.0"
14
14
  TEXT_PATH = Path(__file__).parent / "texture2d"
15
15
  HELP_DATA = Path(__file__).parent / "Help.json"
16
16
 
@@ -119,7 +119,8 @@ async def get_group_detail(
119
119
  command: str,
120
120
  ):
121
121
  server_json = _get_server_json(command, ALLHOST)
122
- logger.debug(server_json)
122
+ # logger.debug(f"获取组服务器信息: {server_json}")
123
+ logger.info(server_json)
123
124
  if server_json is None:
124
125
  logger.warning("未找到这个组")
125
126
  return None
@@ -212,12 +213,16 @@ async def tj_request(command: str = "云", tj="tj"):
212
213
 
213
214
 
214
215
  async def server_find(
215
- command: str = "",
216
+ command: str = "",
216
217
  _id: Optional[str] = None,
217
218
  is_img: bool = True,
218
219
  ):
219
- server_json = _get_server_json(command, ALLHOST)
220
- logger.debug(server_json)
220
+ all_command = get_all_json_filenames()
221
+ server_json = []
222
+ for one_command in all_command:
223
+ server_j = _get_server_json(one_command, ALLHOST)
224
+ server_json.extend(server_j)
225
+ logger.info(server_json)
221
226
  if server_json is None:
222
227
  logger.warning("未找到这个组")
223
228
  return None
@@ -239,3 +244,19 @@ async def server_find(
239
244
  if isinstance(out_msg, str):
240
245
  return UniMessage.text(out_msg)
241
246
  return None
247
+
248
+
249
+ def get_all_json_filenames():
250
+ """
251
+ 获取 server_all_path 路径下所有 json 文件的文件名(不带扩展名)的列表。
252
+ """
253
+ json_files = []
254
+ for item in server_all_path.iterdir():
255
+ if item.is_file() and item.suffix == ".json":
256
+ json_files.append(item.stem)
257
+ return json_files
258
+
259
+
260
+ # 使用示例
261
+
262
+ # all_json_names 现在是一个包含所有 json 文件名(不带扩展名)的 list
@@ -53,24 +53,7 @@ async def draw_one_ip(host: str, port: int, is_img: bool = config.l4_image):
53
53
  完整的服务器信息字符串
54
54
  """
55
55
 
56
- # 处理服务器类型显示
57
- type_map = {
58
- "d": "Dedicated",
59
- "l": "Listen",
60
- }
61
- platform_map = {
62
- "w": "Windows",
63
- "l": "Linux",
64
- }
65
- # 解析原始数据 (例如 "d(w)" -> type='d', platform='w')
66
- server_type = server.server_type[0] if server.server_type else "d"
67
- platform = server.platform[0] if server.platform else "w"
68
-
69
- # 处理VAC状态显示
70
56
  vac_status = "启用" if server.vac_enabled else "禁用"
71
- # 处理密码状态显示
72
- pw_status = "是" if server.password_protected else "否"
73
-
74
57
  msg = f"""-{server.server_name}-
75
58
  游戏: {server.folder}
76
59
  地图: {server.map_name}
@@ -78,9 +61,7 @@ async def draw_one_ip(host: str, port: int, is_img: bool = config.l4_image):
78
61
  if server.ping is not None:
79
62
  msg += f"""
80
63
  延迟: {server.ping * 1000:.0f} ms
81
- 类型: {type_map.get(server_type, '未知')} ({platform_map.get(platform, '未知')})
82
- VAC : {vac_status}
83
- 密码: {pw_status}\n
64
+ VAC : {vac_status}\n
84
65
  {player_info}"""
85
66
  if config.l4_show_ip:
86
67
  msg += f"""
@@ -22,11 +22,13 @@ def _get_server_json(
22
22
  Returns:
23
23
  Optional[list]: 服务器JSON列表,未找到组时返回None
24
24
  """
25
+ logger.debug(f"获取服务器组 {allhost} 的信息")
25
26
  if command:
26
27
  return allhost.get(command)
27
28
  server_json = []
28
29
  for servers in allhost.values():
29
30
  server_json.extend(servers)
31
+ logger.debug(f"获取到的服务器组信息: {server_json}")
30
32
  return server_json
31
33
 
32
34
 
@@ -13,6 +13,29 @@ from nonebot.log import logger
13
13
  from nonebot_plugin_alconna import UniMessage
14
14
 
15
15
 
16
+ async def log_and_send(matcher, message: str, level="info"):
17
+ getattr(logger, level)(message)
18
+ await matcher.finish(UniMessage.text(message))
19
+
20
+
21
+ def read_config(config_path: Path) -> dict:
22
+ if not config_path.is_file():
23
+ return {}
24
+ try:
25
+ with config_path.open("r", encoding="utf-8") as f:
26
+ return json.load(f)
27
+ except (json.JSONDecodeError, FileNotFoundError):
28
+ return {}
29
+
30
+
31
+ def write_config(config_path: Path, data: dict) -> None:
32
+ try:
33
+ with config_path.open("w", encoding="utf-8") as f:
34
+ json.dump(data, f, ensure_ascii=False, indent=4)
35
+ except IOError as e:
36
+ raise RuntimeError(f"配置写入失败: {e}") from e
37
+
38
+
16
39
  async def get_file(url: str, down_file: Path):
17
40
  """
18
41
  下载指定Url到指定位置
@@ -47,7 +47,7 @@ classifiers = [
47
47
  "Operating System :: OS Independent",
48
48
  ]
49
49
  readme = "README.md"
50
- version = "1.0.9"
50
+ version = "1.1.0"
51
51
 
52
52
  [project.license]
53
53
  text = "GPLv3"